Xerox 7750 Media Size switching

Helge Blischke h.blischke at srz.de
Thu Feb 2 07:13:34 PST 2006


Anonymous wrote:
> 
> > Anonymous wrote:
> > >
> > > <SNIP/>
> > >
> > > > > > Here is the sample control file (with the non-printable characters removed) when the pdf is printed from our application or with the command 'lp -d printer -o media=tabloid file.pdf' :
> > > > > > G
> > > > > > attributes-charset utf-8 H
> > > > > > attributes-natural-language en E
> > > > > > printer-uri;ipp://127.0.0.1:631/printers/10.10.14.249 B
> > > > > > requesting-user-password 002a003300240 B
> > > > > > job-originating-user-name - B
> > > > > > document-format application/pdf A
> > > > > > media tabloid!
> > > > > > copies I
> > > > > > document-format application/pdf!job-priority 2B
> > > > > > job-name UntitledB
> > > > > > job-originating-host-name localhost!
> > > > > > job-id .#
> > > > > > job-state !
> > > > > > job-media-sheets-completed E
> > > > > > job-printer-uri <http://127.0.0.1:631/printers/10.10.14.249B
> > > > > > job-name Untitled!job-k-octets !
> > > > > > time-at-creation C�? N!
> > > > > > time-at-processing C�? N!
> > > > > > time-at-completed C�? OD
> > > > > > job-hold-until no-holdB
> > > > > > job-sheets noneB none
> > > >
> > > <SNIP/>
> > >
> > > > The PDF is OK, the MediaBox specifies tabloid size exactly. I'd strongly suggest to
> > > > convert the PDF to a PostScript job by
> > > >       pdftops -paper match your_PDF_file your_PS_file
> > > > (using the pdtfops utility from the xpdf suire; make sure using a version of 3.0x at least)
> > > > and print the PS file. If it then prints on the correct media size, your issue is due to
> > > > the restrictions of CUPS' pdftops filter (which seems to support only letter, legal, A4, A3,
> > > > and a "universal" format which has dimensions someshere between letter and A4.
> > > >
> > > > If what I suspect s true, you could resort to the "alternate pdftops filter" as I suggested
> > > > earlier.
> > > >
> > > > Helge
> > > >
> > >
> > > Hi,
> > >
> > > I installed the xpdf tools package on the Mac and converted the pdf as you suggested.  When I print the ps file with the command:
> > > lp -d printer -o media=tabloid file.ps
> > > It prints as before, by shrinking the document onto Letter paper.
> > >
> > > When I print the pdf file from the Preview application (setting the page setup for tabloid) it prints ok on tabloid paper.  The control file that is created looks like the following with the apple and XRX name/value pairs embedded - is this what we are trying to get in the control file? Or is this here because of some preprocessing that Preview has done?
> > >
> > > G
> > > attributes-charset utf-8H
> > > attributes-natural-language en-usE
> > > printer-uri ;ipp://localhost:631/printers/10.10.14.249 B
> > > job-originating-user-name admin B
> > > job-name 10160319f.pdfI
> > > document-format application/pdf "
> > > XRXJog B
> > > XRXLastPageSource SameB
> > > XRXPrintingOptimization SpeedB
> > > XRXStapling NoneB
> > > XRXMismatch PromptTypeMismatchB
> > > XRXJobType Normal"
> > > XRXImageSmoothing B
> > > XRXColor AutomaticB
> > > MediaType AutoSelectB
> > > Slipsheet NoneB
> > > XRXGrayline AutomaticB
> > > XRXJobPassword 9102B
> > > OutputBin TopBinB
> > > OutputMode StandardB
> > > XRXJobName 10160319f.pdfB
> > > XRXSlipSheetSource Tray1B
> > > AP_D_InputSlot !
> > > copies "
> > > collate D
> > > sides   one-sidedD
> > > media TabloidB/
> > > com.apple.print.PrinterInfo.PMColorDeviceID..n.-1946474323B
> > > OutputOrder NormalB 5
> > > com.apple.print.PrintSettings.PMPrimaryPaperFeed..a.0 PageSizeB 5
> > > com.apple.print.PrintSettings.PMPrimaryPaperFeed..a.1 B,
> > > com.apple.print.PrintSettings.PMLastPage..n.2147483647B)
> > > com.apple.print.JobInfo.PMApplicationName PreviewB,
> > > com.apple.print.DocumentTicket.PMSpoolFormat application/pdfB*
> > > com.apple.print.PrintSettings.PMCopies..n. 1" /
> > > com.apple.print.PrintSettings.PMCopyCollate..b. B
> > > job-hold-until no-holdB 9
> > > com.apple.print.PrintSettings.PMLayoutTileOrientation..n. 1B
> > > DestinationPrinterID 10.10.14.249B-
> > > com.apple.print.PrintSettings.PMDuplexing..n. 1B 3
> > > com.apple.print.PrintSettings.PMLayoutDirection..n. 1B -
> > > com.apple.print.PrintSettings.PMFirstPage..n. 1B 2
> > > com.apple.print.PrintSettings.PMPageRange..a.0..n. 1B 2
> > > com.apple.print.PrintSettings.PMPageRange..a.1..n. 2147483647B 5
> > > com.apple.print.PrintSettings.PMColorMatchingMode..n. 0B 6
> > > com.apple.print.PrintSettings.PMColorSyncProfileID..n. -247571178B $
> > > com.apple.print.JobInfo.PMOutputType application/postscriptB 3
> > > com.apple.print.PrintSettings.PMTotalBeginPages..n. 1B /
> > > com.apple.print.PrintSettings.PMOrientation..n. 1B !
> > > com.apple.print.JobInfo.PMJobName 10160319f.pdfB 1
> > > com.apple.print.PrintSettings.PMLayoutColumns..n. 1B 4
> > > com.apple.print.PrintSettings.PMTotalSidesImaged..n. 1" *
> > > com.apple.print.PrintSettings.PMBorder..b. B 3
> > > com.apple.print.PrintSettings.PMDestinationType..n. 1" -
> > > com.apple.print.PrintSettings.PMLayoutNUp..b. B 3
> > > com.apple.print.PrintSettings.PMColorSpaceModel..n. 3B "
> > > com.apple.print.JobInfo.PMJobOwner AdministratorB .
> > > com.apple.print.PrintSettings.PMLayoutRows..n. 1B
> > > job-priority..n. 50!
> > > job-priority 2B
> > > job-originating-host-name localhost!
> > > job-id 8#
> > > job-state !
> > > job-media-sheets-completed E
> > > job-printer-uri <http://127.0.0.1:631/printers/10.10.14.249B
> > > job-name 10160319f.pdf!
> > > job-k-octets !
> > > time-at-creation C� ¸]!
> > > time-at-processing C� ¸]!
> > > time-at-completed C� ¸^B
> > > job-sheets noneB none
> > >
> > > Thanks for your ideas,
> > > RG
> >
> > I have no idea what is happening. Could you post an excerpt from your CUPS' error_log file
> > (preferably under loglevel debug) showing all messages when this job is printed?
> > And, please post (an URL to) the PPD yyour printer is confiured with.
> >
> > Perhaps we can get more insight then ...
> >
> > Helge
> >
> Hi,
> 
> I was not able to get much output from the CUPS' error_log file with debug (or debug2 on), it just appears to be normal setup communication stuff:
> 
> D [30/Jan/2006:09:15:45 -0500] ProcessIPPRequest: 8 status_code=1
> d [30/Jan/2006:09:15:45 -0500] ProcessIPPRequest: Adding fd 8 to OutputSet...
> d [30/Jan/2006:09:15:45 -0500] WriteClient: Removing fd 8 from OutputSet...
> d [30/Jan/2006:09:15:50 -0500] ReadClient() 8, used=0
> D [30/Jan/2006:09:15:50 -0500] ReadClient() 8 POST / HTTP/1.1
> d [30/Jan/2006:09:15:50 -0500] decode_auth(0x405000): Authorization string = ""
> d [30/Jan/2006:09:15:50 -0500] decode_auth() 8 username=""
> d [30/Jan/2006:09:15:50 -0500] IsAuthorized: con->uri = "/"
> d [30/Jan/2006:09:15:50 -0500] FindBest: uri = "/"...
> d [30/Jan/2006:09:15:50 -0500] FindBest: Location CUPS_INTERNAL_BROWSE_ACL Limit 0
> d [30/Jan/2006:09:15:50 -0500] FindBest: Location / Limit 7f
> d [30/Jan/2006:09:15:50 -0500] FindBest: Location /admin Limit 7f
> d [30/Jan/2006:09:15:50 -0500] FindBest: best = "/"
> d [30/Jan/2006:09:15:50 -0500] IsAuthorized: auth = 0, satisfy=0...
> d [30/Jan/2006:09:15:50 -0500] POST /
> d [30/Jan/2006:09:15:50 -0500] CONTENT_TYPE = application/ipp
> d [30/Jan/2006:09:15:50 -0500] ReadClient() 8 con->data_encoding = length, con->data_remaining = 224, con->file = 0
> d [30/Jan/2006:09:15:50 -0500] ProcessIPPRequest(0x405000[8]): operation_id = 4002
> d [30/Jan/2006:09:15:50 -0500] get_printers(0x405000[8], 0)
> d [30/Jan/2006:09:15:50 -0500] add_printer_state_reasons(0x405000[8], 0x1807a00[t_Printer_on_10.10.14.220])
> d [30/Jan/2006:09:15:50 -0500] add_queued_job_count(0x405000[8], 0x1807a00[t_Printer_on_10.10.14.220])
> d [30/Jan/2006:09:15:50 -0500] copy_attrs(0x691c00, 0x306490, 0x691b20, 0)
> d [30/Jan/2006:09:15:50 -0500] copy_attribute(0x691c00, 0x3065e0[printer-name,4,42])
> d [30/Jan/2006:09:15:50 -0500] copy_attribute(0x691c00, 0x306630[printer-location,4,41])
> d [30/Jan/2006:09:15:50 -0500] copy_attribute(0x691c00, 0x306680[printer-info,4,41])
> d [30/Jan/2006:09:15:50 -0500] copy_attrs(0x691c00, 0x300cc0, 0x691b20, 0)
> d [30/Jan/2006:09:15:50 -0500] add_printer_state_reasons(0x405000[8], 0x1809400[10.10.14.249])
> d [30/Jan/2006:09:15:50 -0500] add_queued_job_count(0x405000[8], 0x1809400[10.10.14.249])
> d [30/Jan/2006:09:15:50 -0500] copy_attrs(0x691c00, 0x30e6e0, 0x691b20, 0)
> d [30/Jan/2006:09:15:50 -0500] copy_attribute(0x691c00, 0x31e450[printer-name,4,42])
> d [30/Jan/2006:09:15:50 -0500] copy_attribute(0x691c00, 0x31ca00[printer-location,4,41])
> d [30/Jan/2006:09:15:50 -0500] copy_attribute(0x691c00, 0x31ca40[printer-info,4,41])
> d [30/Jan/2006:09:15:50 -0500] copy_attrs(0x691c00, 0x300cc0, 0x691b20, 0)
> d [30/Jan/2006:09:15:50 -0500] add_printer_state_reasons(0x405000[8], 0x1808e00[Printer_2])
> d [30/Jan/2006:09:15:50 -0500] add_queued_job_count(0x405000[8], 0x1808e00[Printer_2])
> d [30/Jan/2006:09:15:50 -0500] copy_attrs(0x691c00, 0x304f00, 0x691b20, 0)
> d [30/Jan/2006:09:15:50 -0500] copy_attribute(0x691c00, 0x31d3b0[printer-name,4,42])
> d [30/Jan/2006:09:15:50 -0500] copy_attribute(0x691c00, 0x31d3d0[printer-location,4,41])
> d [30/Jan/2006:09:15:50 -0500] copy_attribute(0x691c00, 0x31d420[printer-info,4,41])
> d [30/Jan/2006:09:15:50 -0500] copy_attrs(0x691c00, 0x300cc0, 0x691b20, 0)
> d [30/Jan/2006:09:15:50 -0500] add_printer_state_reasons(0x405000[8], 0x180a800[Printer_3])
> d [30/Jan/2006:09:15:50 -0500] add_queued_job_count(0x405000[8], 0x180a800[Printer_3])
> d [30/Jan/2006:09:15:50 -0500] copy_attrs(0x691c00, 0x31f260, 0x691b20, 0)
> d [30/Jan/2006:09:15:50 -0500] copy_attribute(0x691c00, 0x31fb90[printer-name,4,42])
> d [30/Jan/2006:09:15:50 -0500] copy_attribute(0x691c00, 0x31fbc0[printer-location,4,41])
> d [30/Jan/2006:09:15:50 -0500] copy_attribute(0x691c00, 0x31fc10[printer-info,4,41])
> d [30/Jan/2006:09:15:50 -0500] copy_attrs(0x691c00, 0x300cc0, 0x691b20, 0)
> d [30/Jan/2006:09:15:50 -0500] add_printer_state_reasons(0x405000[8], 0x180ae00[Printer_4])
> d [30/Jan/2006:09:15:50 -0500] add_queued_job_count(0x405000[8], 0x180ae00[Printer_4])
> d [30/Jan/2006:09:15:50 -0500] copy_attrs(0x691c00, 0x31ffc0, 0x691b20, 0)
> d [30/Jan/2006:09:15:50 -0500] copy_attribute(0x691c00, 0x3202f0[printer-name,4,42])
> d [30/Jan/2006:09:15:50 -0500] copy_attribute(0x691c00, 0x320330[printer-location,4,41])
> d [30/Jan/2006:09:15:50 -0500] copy_attribute(0x691c00, 0x320870[printer-info,4,41])
> d [30/Jan/2006:09:15:50 -0500] copy_attrs(0x691c00, 0x300cc0, 0x691b20, 0)
> D [30/Jan/2006:09:15:50 -0500] ProcessIPPRequest: 8 status_code=1
> d [30/Jan/2006:09:15:50 -0500] ProcessIPPRequest: Adding fd 8 to OutputSet...
> d [30/Jan/2006:09:15:50 -0500] WriteClient: Removing fd 8 from OutputSet...
> d [30/Jan/2006:09:15:50 -0500] ReadClient() 8, used=0
> D [30/Jan/2006:09:15:50 -0500] ReadClient() 8 POST / HTTP/1.1
> d [30/Jan/2006:09:15:50 -0500] decode_auth(0x405000): Authorization string = ""
> d [30/Jan/2006:09:15:50 -0500] decode_auth() 8 username=""
> d [30/Jan/2006:09:15:50 -0500] IsAuthorized: con->uri = "/"
> d [30/Jan/2006:09:15:50 -0500] FindBest: uri = "/"...
> d [30/Jan/2006:09:15:50 -0500] FindBest: Location CUPS_INTERNAL_BROWSE_ACL Limit 0
> d [30/Jan/2006:09:15:50 -0500] FindBest: Location / Limit 7f
> d [30/Jan/2006:09:15:50 -0500] FindBest: Location /admin Limit 7f
> d [30/Jan/2006:09:15:50 -0500] FindBest: best = "/"
> d [30/Jan/2006:09:15:50 -0500] IsAuthorized: auth = 0, satisfy=0...
> d [30/Jan/2006:09:15:50 -0500] POST /
> d [30/Jan/2006:09:15:50 -0500] CONTENT_TYPE = application/ipp
> d [30/Jan/2006:09:15:50 -0500] ReadClient() 8 con->data_encoding = length, con->data_remaining = 224, con->file = 0
> d [30/Jan/2006:09:15:50 -0500] ProcessIPPRequest(0x405000[8]): operation_id = 4005
> d [30/Jan/2006:09:15:50 -0500] get_printers(0x405000[8], 1)
> d [30/Jan/2006:09:15:50 -0500] add_printer_state_reasons(0x405000[8], 0x180b400[t_Printers])
> d [30/Jan/2006:09:15:50 -0500] add_queued_job_count(0x405000[8], 0x180b400[t_Printers])
> d [30/Jan/2006:09:15:50 -0500] copy_attrs(0x691cb0, 0x323bf0, 0x691c20, 0)
> d [30/Jan/2006:09:15:50 -0500] copy_attribute(0x691cb0, 0x323ac0[printer-name,4,42])
> d [30/Jan/2006:09:15:50 -0500] copy_attribute(0x691cb0, 0x323b00[printer-location,4,41])
> d [30/Jan/2006:09:15:50 -0500] copy_attribute(0x691cb0, 0x323c40[printer-info,4,41])
> d [30/Jan/2006:09:15:50 -0500] copy_attrs(0x691cb0, 0x300cc0, 0x691c20, 0)
> D [30/Jan/2006:09:15:50 -0500] ProcessIPPRequest: 8 status_code=1
> d [30/Jan/2006:09:15:50 -0500] ProcessIPPRequest: Adding fd 8 to OutputSet...
> d [30/Jan/2006:09:15:50 -0500] WriteClient: Removing fd 8 from OutputSet...
> d [30/Jan/2006:09:15:50 -0500] ReadClient() 8, used=0
> D [30/Jan/2006:09:15:50 -0500] ReadClient() 8 POST / HTTP/1.1
> d [30/Jan/2006:09:15:50 -0500] decode_auth(0x405000): Authorization string = ""
> d [30/Jan/2006:09:15:50 -0500] decode_auth() 8 username=""
> d [30/Jan/2006:09:15:50 -0500] IsAuthorized: con->uri = "/"
> d [30/Jan/2006:09:15:50 -0500] FindBest: uri = "/"...
> d [30/Jan/2006:09:15:50 -0500] FindBest: Location CUPS_INTERNAL_BROWSE_ACL Limit 0
> d [30/Jan/2006:09:15:50 -0500] FindBest: Location / Limit 7f
> d [30/Jan/2006:09:15:50 -0500] FindBest: Location /admin Limit 7f
> d [30/Jan/2006:09:15:50 -0500] FindBest: best = "/"
> d [30/Jan/2006:09:15:50 -0500] IsAuthorized: auth = 0, satisfy=0...
> d [30/Jan/2006:09:15:50 -0500] POST /
> d [30/Jan/2006:09:15:50 -0500] CONTENT_TYPE = application/ipp
> d [30/Jan/2006:09:15:50 -0500] ReadClient() 8 con->data_encoding = length, con->data_remaining = 236, con->file = 0
> d [30/Jan/2006:09:15:50 -0500] ProcessIPPRequest(0x405000[8]): operation_id = 000a
> d [30/Jan/2006:09:15:50 -0500] get_jobs(0x405000[8], ipp://localhost/jobs)
> d [30/Jan/2006:09:15:50 -0500] get_jobs: job->id = 218
> d [30/Jan/2006:09:15:50 -0500] get_jobs: job->id = 219
> ..
> d [30/Jan/2006:09:15:50 -0500] get_jobs: job->id = 219
> d [30/Jan/2006:09:15:50 -0500] get_jobs: count = 2
> d [30/Jan/2006:09:15:50 -0500] copy_attrs(0x691dc0, 0x3177a0, 0x691cd0, 2)
> d [30/Jan/2006:09:15:50 -0500] copy_attribute(0x691dc0, 0x317e60[job-priority,2,21])
> d [30/Jan/2006:09:15:50 -0500] copy_attribute(0x691dc0, 0x318070[job-id,2,21])
> d [30/Jan/2006:09:15:50 -0500] copy_attribute(0x691dc0, 0x318110[job-state,2,23])
> d [30/Jan/2006:09:15:50 -0500] copy_attribute(0x691dc0, 0x318260[job-printer-uri,2,45])
> d [30/Jan/2006:09:15:50 -0500] copy_attribute(0x691dc0, 0x3186a0[job-hold-until,2,44])
> d [30/Jan/2006:09:15:50 -0500] add_job_state_reasons(0x405000[8], 219)
> d [30/Jan/2006:09:15:50 -0500] get_jobs: job->id = 220
> d [30/Jan/2006:09:15:50 -0500] get_jobs: count = 3
> d [30/Jan/2006:09:15:50 -0500] copy_attrs(0x691dc0, 0x3188f0, 0x691cd0, 2)
> d [30/Jan/2006:09:15:50 -0500] copy_attribute(0x691dc0, 0x318fb0[job-priority,2,21])
> d [30/Jan/2006:09:15:50 -0500] copy_attribute(0x691dc0, 0x3191c0[job-id,2,21])
> d [30/Jan/2006:09:15:50 -0500] copy_attribute(0x691dc0, 0x319260[job-state,2,23])
> d [30/Jan/2006:09:15:50 -0500] copy_attribute(0x691dc0, 0x3193b0[job-printer-uri,2,45])
> d [30/Jan/2006:09:15:50 -0500] copy_attribute(0x691dc0, 0x3197f0[job-hold-until,2,44])
> d [30/Jan/2006:09:15:50 -0500] add_job_state_reasons(0x405000[8], 220)
> d [30/Jan/2006:09:15:50 -0500] get_jobs: job->id = 221
> ..
> 
> You will find the PPD at:
> http://rg415.bravehost.com/ppd/Xerox%20Phaser%207750GX.txt
> 
> In my continuing hunt for a solution, I found this page:
> http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection/CUPS-printing.html#id2603130
> 
> At the very end of it there is a diagram outlining the CUPS system.
> Notice that Mac OS/X systems use their own Apple PDF-RIP.  Since I am connecting directly to CUPS via IPP from my application, am I bypassing this Apple PDF-RIP and therefore not getting the control file that is produced when printing through other Mac applications?
> If so, how can I programmatically initiate the same printing path thru the Apple PDF-RIP?
> 
> Thanks,
> RG


Well, if the printer really is a Phaser 7750 GX, it is equipped with a hard disk and 
digests PDF (up to 1.4) directly. You log file snippet seems to assert that the PDF is
fed unprocessed to the printer.

As for PostScript jobs, your PPD references a filter named pstoxeroxps, the properties of which 
are not found anywhere.

>From my experience with a similar printer I suspect that printing to a specific media size
only works if either
- the media is installed (in your case, one of the input trays must be configured to hold
  tabloid sized paper),
or
- the paper mismatch handling must be configured to operator prompt (in which case a prompt
  should occur on printer's tiny display, and somebody has to either accept or change paper.

So, these probably are the final hints I am able to give to you.

Helge

-- 
Helge Blischke
Softwareentwicklung
SRZ Berlin | Firmengruppe besscom
http://www.srz.de




More information about the cups mailing list