virtuousgeek.org

So I have this fancy hp photosmart 7760 printer and my fiance (now wife) and I wanted to print some RSVP cards for our wedding invitations. Simple, right? Not so fast! First off, the printer drivers in my Fedora installation don't get along well enough for my applications to pass a custom page size down to CUPS, and secondly, bugs in Scribus cause it to forget what size it used last, resulting in the printer expecting a letter sized page when something other than letter was obviously intended. My solution for the first problem was to hack the PPD file for my printer to add a new page size type for our RSVP card like so:

--- photosmart7760.ppd.orig     2005-07-29 18:45:50.000000000 -0700
+++ photosmart7760.ppd  2005-07-29 19:21:41.000000000 -0700
@@ -134,6 +134,10 @@
 *FoomaticRIPOptionSetting PageSize=Letter: " -dDEVICEWIDTHPOINTS=612 -&&
 dDEVICEHEIGHTPOINTS=792"
 *End
+*PageSize RSVP/Kristen's RSVP card: "%% FoomaticRIPOptionSetting: PageSize=RSVP"
+*FoomaticRIPOptionSetting PageSize=RSVP: " -dDEVICEWIDTHPOINTS=288 -&&
+dDEVICEHEIGHTPOINTS=392"
+*End
 *PageSize A4/A4: "%% FoomaticRIPOptionSetting: PageSize=A4"
 *FoomaticRIPOptionSetting PageSize=A4: " -dDEVICEWIDTHPOINTS=595 -dDEV&&
 ICEHEIGHTPOINTS=842"
@@ -228,6 +232,7 @@
 *OrderDependency: 105 AnySetup *PageRegion
 *DefaultPageRegion: Letter
 *PageRegion Letter/Letter: "%% FoomaticRIPOptionSetting: PageSize=Letter"
+*PageRegion RSVP/Kristen's RSVP card: "%% FoomaticRIPOptionSetting: PageSize=RSVP"
 *PageRegion A4/A4: "%% FoomaticRIPOptionSetting: PageSize=A4"
 *PageRegion Photo/Photo/4x6 inch index card: "%%
FoomaticRIPOptionSetting: PageSize=Photo"
 *PageRegion PhotoTearOff/Photo with tear-off tab: "%%
FoomaticRIPOptionSetting: PageSize=PhotoTearOff"
@@ -254,6 +259,7 @@

 *DefaultImageableArea: Letter
 *ImageableArea Letter/Letter: "54 72 558 747"
+*ImageableArea RSVP/Kristen's RSVP card: "0 0 288 392"
 *ImageableArea A4/A4: "9.72 36 585.28 833"
 *ImageableArea Photo/Photo/4x6 inch index card: "0 36 288 432"
 *ImageableArea PhotoTearOff/Photo with tear-off tab: "0 0 288 432"
@@ -279,6 +285,7 @@

 *DefaultPaperDimension: Letter
 *PaperDimension Letter/Letter: "612 792"
+*PaperDimension RSVP/Kristen's RSVP card: "288 392"
 *PaperDimension A4/A4: "595 842"
 *PaperDimension Photo/Photo/4x6 inch index card: "288 432"
 *PaperDimension PhotoTearOff/Photo with tear-off tab: "288 432"

FYI, the units are 'points', which seem to be an invention of PostScript, and each is equal to 0.3527777778 mm, and there are 72 of them in an inch. I probably should have described the ImageableArea a bit better (this is what the printer is actually allowed to print on, describing the upper left and lower right hand points of a rectangle), but things seemed to work ok without that (and besides, my printer is supposedly capable of 'borderless' printing, so I figured I didn't have to bother).

I restarted CUPS after doing this, though I'm not sure if that's strictly necessary. Once I did that, the new paper size, 'RSVP' showed up in my size selection drop down. Yay!

For the second problem, I had to continually remind Scribus of what page size I meant to use by setting it to the wrong size, hitting ok, then selecting the new RSVP type again. Frustrating but effective (this is Scribus 1.3.0, not sure if earlier versions have this problem or if it's actually a KDE bug or what).

Webmeister: Jesse Barnes