Skip to content

Instantly share code, notes, and snippets.

@benjaminkott
Last active January 5, 2026 14:09
Show Gist options
  • Select an option

  • Save benjaminkott/e293147dd0ea9e6fa7f1194567a5d1ba to your computer and use it in GitHub Desktop.

Select an option

Save benjaminkott/e293147dd0ea9e6fa7f1194567a5d1ba to your computer and use it in GitHub Desktop.
CUPS Canon SELPHY CP1500 PostScript Printer Driver - PPD
*PPD-Adobe: "4.3"
*cupsMandatory: attributes-charset attributes-natural-language printer-uri
*% PPD created by ipp2ppd (v2:Feb 1 2018)
*FormatVersion: "4.3"
*FileVersion: "2.0"
*LanguageVersion: English
*LanguageEncoding: ISOLatin1
*PSVersion: "(3010.000) 0"
*LanguageLevel: "3"
*FileSystem: False
*cupsVersion: 2.0
*cupsModelNumber: 0
*cupsSNMPSupplies: False
*APAirPrint: True
*APAirPrintVersion: 1.4
*APURFVersion: 1.4
*APPrinterFWVersion: "IPP:2.0"
*cupsLanguages: "en"
*cupsIdentifyActions: "flash"
*APAcceptsMixedURF: True
*PCFileName: "APCANONS.PPD"
*ModelName: "Canon SELPHY CP1500 HTTP"
*Product: (Canon SELPHY CP1500 HTTP)
*ShortNickName: "Canon SELPHY CP1500 HTTP"
*Manufacturer: "Canon"
*NickName: "Canon SELPHY CP1500 AirPrint"
*Throughput: 1
*APSupplies: "http://CP150016eeb1.local:8008/supply/ink_content.html"
*cupsSingleFile: True
*cupsFilter2: "image/urf image/urf 10 -"
*cupsFilter: "image/urf 10 -"
*cupsFilter2: "image/jpeg image/jpeg 0 maxsize(33554432) -"
*cupsFilter: "image/jpeg 0 -"
*cupsMaxCopies: 99
*ColorDevice: True
*APColorSpaces: true
*DefaultColorSpace: RGB
*OpenUI *ColorModel/Color Mode: PickOne
*OrderDependency: 10 AnySetup *ColorModel
*DefaultColorModel: RGB
*ColorModel Gray/Grayscale: "<</cupsColorSpace 18/cupsBitsPerColor 8/cupsColorOrder 0/cupsCompression 0>>setpagedevice"
*ColorModel RGB/Color: "<</cupsColorSpace 19/cupsBitsPerColor 8/cupsColorOrder 0/cupsCompression 0>>setpagedevice"
*CloseUI: *ColorModel
*LandscapeOrientation: Minus90
*DefaultResolution: 300x300dpi
*OpenUI *cupsPrintQuality/Quality: PickOne
*OrderDependency: 10 AnySetup *cupsPrintQuality
*DefaultcupsPrintQuality: Normal
*cupsPrintQuality Normal: "<</cupsInteger1 4 /HWResolution[300 300]>>setpagedevice"
*CloseUI: *cupsPrintQuality
*cupsBackSide: Normal
*DefaultOutputOrder: Reverse
*APHasMediaReady: True
*OpenUI *PageSize/Media Size: PickOne
*OrderDependency: 10 AnySetup *PageSize
*DefaultPageSize: Postcard.Fullbleed
*PageSize 54x86mm: "<</PageSize[153.0709 243.7795]/ImagingBBox null/Orientation 0>>setpagedevice"
*PageSize 54x86mm.Fullbleed: "<</PageSize[153.0709 243.7795]/ImagingBBox null/Orientation 0>>setpagedevice"
*PageSize 89x119mm: "<</PageSize[252.2835 337.3228]/ImagingBBox null/Orientation 0>>setpagedevice"
*PageSize 89x119mm.Fullbleed: "<</PageSize[252.2835 337.3228]/ImagingBBox null/Orientation 0>>setpagedevice"
*PageSize Postcard: "<</PageSize[283.4646 419.5276]/ImagingBBox null/Orientation 0>>setpagedevice"
*PageSize Postcard.Fullbleed: "<</PageSize[283.4646 419.5276]/ImagingBBox null/Orientation 0>>setpagedevice"
*CloseUI: *PageSize
*OpenUI *PageRegion/Media Size: PickOne
*OrderDependency: 10 AnySetup *PageRegion
*DefaultPageRegion: Postcard.Fullbleed
*PageRegion 54x86mm: "<</PageSize[153.0709 243.7795]/ImagingBBox null/Orientation 0>>setpagedevice"
*PageRegion 54x86mm.Fullbleed: "<</PageSize[153.0709 243.7795]/ImagingBBox null/Orientation 0>>setpagedevice"
*PageRegion 89x119mm: "<</PageSize[252.2835 337.3228]/ImagingBBox null/Orientation 0>>setpagedevice"
*PageRegion 89x119mm.Fullbleed: "<</PageSize[252.2835 337.3228]/ImagingBBox null/Orientation 0>>setpagedevice"
*PageRegion Postcard: "<</PageSize[283.4646 419.5276]/ImagingBBox null/Orientation 0>>setpagedevice"
*PageRegion Postcard.Fullbleed: "<</PageSize[283.4646 419.5276]/ImagingBBox null/Orientation 0>>setpagedevice"
*CloseUI: *PageRegion
*DefaultImageableArea: Postcard.Fullbleed
*DefaultPaperDimension: Postcard.Fullbleed
*PaperDimension 54x86mm: "153.0709 243.7795"
*ImageableArea 54x86mm: "7.0866 18.1417 145.9843 225.6378"
*PaperDimension 54x86mm.Fullbleed: "153.0709 243.7795"
*ImageableArea 54x86mm.Fullbleed: "0.0000 0.0000 153.0709 243.7795"
*PaperDimension 89x119mm: "252.2835 337.3228"
*ImageableArea 89x119mm: "7.0866 9.6378 245.1969 327.6850"
*PaperDimension 89x119mm.Fullbleed: "252.2835 337.3228"
*ImageableArea 89x119mm.Fullbleed: "0.0000 0.0000 252.2835 337.3228"
*PaperDimension Postcard: "283.4646 419.5276"
*ImageableArea Postcard: "7.0866 10.4882 276.3780 409.0394"
*PaperDimension Postcard.Fullbleed: "283.4646 419.5276"
*ImageableArea Postcard.Fullbleed: "0.0000 0.0000 283.4646 419.5276"
*ParamCustomPageSize Width: 1 points 150 289
*ParamCustomPageSize Height: 2 points 241 434
*ParamCustomPageSize WidthOffset: 3 points 0 0
*ParamCustomPageSize HeightOffset: 4 points 0 0
*ParamCustomPageSize Orientation: 5 int 0 3
*CustomPageSize True: ""
*OpenUI *MediaType/MediaType: PickOne
*OrderDependency: 10 AnySetup *MediaType
*MediaType photographic/Photo: ""
*MediaType any/Any: ""
*DefaultMediaType: photographic
*CloseUI: *MediaType
*APPrinterPreset Gray_with_Paper_Auto-Detect/Black and White: "
*cupsPrintQuality Normal
*ColorModel Gray
com.apple.print.preset.graphicsType General
com.apple.print.preset.quality mid
com.apple.print.preset.media-front-coating autodetect
com.apple.print.preset.output-mode monochrome"
*End
*APPrinterPreset Color_with_Paper_Auto-Detect/Color: "
*cupsPrintQuality Normal
*ColorModel RGB
com.apple.print.preset.graphicsType General
com.apple.print.preset.quality mid
com.apple.print.preset.media-front-coating autodetect"
*End

Commands:

lpoptions -l Canon_SELPHY_CP1500
lpoptions -p Canon_SELPHY_CP1500 -o StpiShrinkOutput=Expand
lpoptions -p Canon_SELPHY_CP1500 -o StpBorderless=True

Print Command (%s for Filename):

lp -o media=Postcard.fullbleed -o landscape -o fit-to-page %s

Cups: Defaults: job-sheets=none, none media=om_postcard-fullbleed_100x148mm sides=one-sided

@baloe
Copy link

baloe commented Jul 28, 2025

In principal, the printer can be installed with the following command, where xxx.xxx.xxx.xxx is its static (IP) address.

lpadmin \
        -p Canon_SELPHY_CP1500 \
        -v 'ipps://xxx.xxx.xxx.xxx:443/ipp/print' \
        -P Canon_SELPHY_CP1500.ppd \
        -o StpiShrinkOutput=Expand \
        -o StpBorderless=True \
        -E

with the ppd from https://gist.github.com/benjaminkott/e293147dd0ea9e6fa7f1194567a5d1ba:

wget https://gist.githubusercontent.com/benjaminkott/e293147dd0ea9e6fa7f1194567a5d1ba/raw/00975a9a713e24417a476f923d8e2b4c2a6529b4/Canon_SELPHY_CP1500.ppd

However, unless we are able to assign the printer a static IP address we don't know the address at this point.
Not knowing the address of the printer we can do the following:

  1. Send a print job to the printer
    (have the paper cartridge removed to prevent it from actually printing)
wget -O test.jpg https://upload.wikimedia.org/wikipedia/commons/2/28/JPG_Test.jpg
lp -o media=Postcard.fullbleed -o landscape -o fit-to-page -d Canon_SELPHY_CP1500 test.jpg

The printer actually receives a job even though we had not set it up. It somehow gets installed automagically.

  1. Now we can use
lpoptions -d Canon_SELPHY_CP1500

to find the network address of the printer.
In my case, the command returned

... device-uri=ipps://CP1500d73593.local:443/ipp/print ... 

So there we have it, the network address is CP1500d73593.local regardless of the dynamic IP address it gets.
The address is printer specific. Running

sudo apt install arp-scan
sudo arp-scan --interface=wlan0 --localnet

tells us its current IP address and the MAC address. In my case this is dc:c2:c9:d7:35:93.
So the network address is actually

`CP1500`+`last six digits of MAC address + `.local`
  1. Remove the printer,
sudo lpadmin -x Canon_SELPHY_CP1500

and install it with the ppd file and the acquired network address.

lpadmin \
        -p Canon_SELPHY_CP1500 \
        -v 'ipps://CP1500d73593.local:443/ipp/print' \
        -P Canon_SELPHY_CP1500.ppd \
        -o StpiShrinkOutput=Expand \
        -o StpBorderless=True \
        -E

Print with lp -o media=Postcard.fullbleed -o landscape -o fit-to-page -d Canon_SELPHY_CP1500 %s

@christianherweg0807
Copy link

Thank you. You saved my day. Printer is working on my Photobox... ready for the party. :-)

@Wimag2921
Copy link

Hey, thank you so much for the Printer Driver. !

But Its my first time using Cups.

So I Can Import your PPD File when I Go inter Administration, Select my Printer (Connected Via USB), Select your PPD File and the Web Interface ist Happy.

But if I now want to Print my Print Doesn't go trough.

So where do I Need to set the things you have mentioned in the notes.md file ?
So I can Print ?
I Tired the Gutenprint Driver with the Shelly CP1300, but the Picture is only Monochrome

Best Regards

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment