[SUGGESTION] switching trays in printjob

Philipp Morger morger at olmero.ch
Fri Sep 7 06:03:35 PDT 2007


Hi Kurt

thanks for the infor about modifying the ppd, So I proceeded as follows:

Today I'm sitting in front of a HP4650, which is able to process PS...

I took the PPD from here:
http://www.linuxprinting.org/foomatic-db/db/source/PPD/HP/hp_color_LaserJet_4650.ppd
and modified it as you said, as it has no "Auto"

and verified it:
lpoptions -p HPLJ4650HDN_PS -l | grep InputSlot
InputSlot/Paper Source: *Auto Tray1 Tray2 Tray3 Tray4

created a document as outlined in a previous post by you, Page 1 on Tray 3, Page 2 on Tray 4.... crossed fingers - didn't help.

So I stopped the printer in cups, to fetch the control and print file, did a "strings" over it, here is the output:




~ strings c00087
-- 8< --
attributes-charset
utf-8H
attributes-natural-language
en-us
printer-uri
'ipp://localhost/printers/HPLJ4650HDN_PSB
job-originating-user-name
pmorgerB
job-name
fooI
document-format
application/postscriptB
PageSize
        InputSlot
Tray3!
job-priority
job-uuid
-urn:uuid:3082de6d-3320-3905-55be-d2e0e89ac6d3B
job-originating-host-name
        localhost!
time-at-creation
time-at-processing
time-at-completed
job-id
        job-state
job-media-sheets-completed
job-printer-uri
3ipp://charon.olmero.net:631/printers/HPLJ4650HDN_PSB
job-name
foo!
job-k-octets
job-hold-until
no-holdB
job-sheets
noneB
none
-- 8< --

~ strings d00087-001
-- 8< --
%!PS-Adobe-3.0
%%BoundingBox: (atend)
%%Creator: (OpenOffice.org 2.3)
%%For: (pmorger)
%%CreationDate: (Fri Sep  7 14:44:06 2007)
%%Title: (foo)
%%LanguageLevel: 3
%%DocumentData: Clean7Bit
%%Pages: (atend)
%%PageOrder: Ascend
%%EndComments
%%BeginProlog
%%BeginResource: procset PSPrint-Prolog 1.0 0
/ISO1252Encoding [
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quotesingle
/parenleft /parenright /asterisk /plus /comma /hyphen /period /slash
/zero /one /two /three /four /five /six /seven
/eight /nine /colon /semicolon /less /equal /greater /question
/at /A /B /C /D /E /F /G
/H /I /J /K /L /M /N /O
/P /Q /R /S /T /U /V /W
/X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore
/grave /a /b /c /d /e /f /g
/h /i /j /k /l /m /n /o
/p /q /r /s /t /u /v /w
/x /y /z /braceleft /bar /braceright /asciitilde /unused
/Euro /unused /quotesinglbase /florin /quotedblbase /ellipsis /dagger /daggerdbl
/circumflex /perthousand /Scaron /guilsinglleft /OE /unused /Zcaron /unused
/unused /quoteleft /quoteright /quotedblleft /quotedblright /bullet /endash /emdash
/tilde /trademark /scaron /guilsinglright /oe /unused /zcaron /Ydieresis
/space /exclamdown /cent /sterling /currency /yen /brokenbar /section
/dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron
/degree /plusminus /twosuperior /threesuperior /acute /mu /paragraph /periodcentered
/cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf /threequarters /questiondown
/Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla
/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis
/Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply
/Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls
/agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla
/egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis
/eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide
/oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis] def
/psp_definefont { exch dup findfont dup length dict begin { 1 index /FID ne
{ def } { pop pop } ifelse } forall /Encoding 3 -1 roll def
currentdict end exch pop definefont pop } def
/pathdict dup 8 dict def load begin
/rcmd { { currentfile 1 string readstring pop 0 get dup 32 gt { exit }
{ pop } ifelse } loop dup 126 eq { pop exit } if 65 sub dup 16#3 and 1
add exch dup 16#C and -2 bitshift 16#3 and 1 add exch 16#10 and 16#10
eq 3 1 roll exch } def
/rhex { dup 1 sub exch currentfile exch string readhexstring pop dup 0
get dup 16#80 and 16#80 eq dup 3 1 roll { 16#7f and } if 2 index 0 3
-1 roll put 3 1 roll 0 0 1 5 -1 roll { 2 index exch get add 256 mul }
for 256 div exch pop exch { neg } if } def
/xcmd { rcmd exch rhex exch rhex exch 5 -1 roll add exch 4 -1 roll add
1 index 1 index 5 -1 roll { moveto } { lineto } ifelse } def end
/readpath { 0 0 pathdict begin { xcmd } loop end pop pop } def
systemdict /languagelevel known not {
/xshow { exch dup length 0 1 3 -1 roll 1 sub { dup 3 index exch get
exch 2 index exch get 1 string dup 0 4 -1 roll put currentpoint 3 -1
roll show moveto 0 rmoveto } for pop pop } def
/rectangle { 4 -2 roll moveto 1 index 0 rlineto 0 exch rlineto neg 0
rlineto closepath } def
/rectfill { rectangle fill } def
/rectstroke { rectangle stroke } def } if
/bshow { currentlinewidth 3 1 roll currentpoint 3 index show moveto
setlinewidth false charpath stroke setlinewidth } def
/bxshow { currentlinewidth 4 1 roll setlinewidth exch dup length 1 sub
0 1 3 -1 roll { 1 string 2 index 2 index get 1 index exch 0 exch put dup
currentpoint 3 -1 roll show moveto currentpoint 3 -1 roll false charpath
stroke moveto 2 index exch get 0 rmoveto } for pop pop setlinewidth } def
/psp_lzwfilter { currentfile /ASCII85Decode filter /LZWDecode filter } def
/psp_ascii85filter { currentfile /ASCII85Decode filter } def
/psp_lzwstring { psp_lzwfilter 1024 string readstring } def
/psp_ascii85string { psp_ascii85filter 1024 string readstring } def
/psp_imagedict {
/psp_bitspercomponent { 3 eq { 1 }{ 8 } ifelse } def
/psp_decodearray { [ [0 1 0 1 0 1] [0 255] [0 1] [0 255] ] exch get }
def 7 dict dup
/ImageType 1 put dup
/Width 7 -1 roll put dup
/Height 5 index put dup
/BitsPerComponent 4 index psp_bitspercomponent put dup
/Decode 5 -1 roll psp_decodearray put dup
/ImageMatrix [1 0 0 1 0 0] dup 5 8 -1 roll put put dup
/DataSource 4 -1 roll 1 eq { psp_lzwfilter } { psp_ascii85filter } ifelse put
} def
%%EndResource
%%EndProlog
%%BeginSetup
%%BeginResource: font BitstreamVeraSans-RomanFID19HGSet1
%!PS-TrueTypeFont-1.0-2.0
%%Creator: SunTypeTools-TT 1.0 gelf
%- Font subset generated from a source font file: '/var/lib/defoma/fontconfig.d/B/Bitstream-Vera-Sans.ttf'
%- Original font name: BitstreamVeraSans-Roman
%- Original font family: Bitstream Vera Sans
%- Original font sub-family: Roman
11 dict begin
/FontName (BitstreamVeraSans-RomanFID19HGSet1) cvn def
/PaintType 0 def
/FontMatrix [1 0 0 1 0 0] def
/FontBBox [-183 -235 1287 928] def
/FontType 42 def
/Encoding 256 array def
    0 1 255 {Encoding exch /.notdef put} for
Encoding 49 /glyph1 put
Encoding 50 /glyph2 put
Encoding 84 /glyph3 put
/XUID [103 0 1 16#35D39B97 4 16#0AA5987D 16#859B9127] def
/sfnts [<
747275650009008000030010637674203A17D2C20000009C000001FC6670676D
CDF5B6DC000002980000008B676C7966443E7B49000003240000023468656164
3D39D01C00000558000000366868656122FE6E070000059000000024686D7478
D800DE12000005B4000000106C6F636104007901000005C40000000A6D617870
C8053604000005D0000000207072657066F004D9000005F000000568013500B8
00CB00CB00C100AA009C01A600B800660000007100CB00A002B20085007500B8
00C301CB0189022D00CB00A600F000D300AA008700CB03AA0400014A003300CB
000000D9050200F4015400B4009C01390114013907060400044E04B4045204B8
04E704CD0037047304CD04600473013303A2055605A60556053903C5021200C9
001F00B801DF007300BA03E9033303BC0444040E00DF03CD03AA00E503AA0404
000000CB008F00A4007B00B80014016F007F027B0252008F00C705CD009A009A
006F00CB00CD019E01D300F000BA018300D5009803040248009E01D500C100CB
00F600830354027F00000333026600D300C700A400CD008F009A0073040005D5
010A00FE022B00A400B4009C00000062009C0000001D032D05D505D505D505F0
007F007B005400A406B80614072301D300B800CB00A601C301EC069300A000D3
035C037103DB0185042304A80448008F0139011401390360008F05D5019A0614
072306660179046004600460047B009C00000277046001AA00E904600762007B
00C5007F027B000000B4025205CD006600BC00660077061000CD013B01850389
008F007B0000001D00CD074A042F009C009C0000077D006F0000006F0335006A
006F007B00AE00B2002D0396008F027B00F600830354063705F6008F009C04E1
0266008F018D02F600CD03440029006604EE007300001400B606050403020100
2C2010B002254964B040515820C859212D2CB002254964B040515820C859212D
2C20100720B00050B00D7920B8FFFF5058041B0559B0051CB0032508B0042523
E120B00050B00D7920B8FFFF5058041B0559B0051CB0032508E12D2C4B505820
B0FD454459212D2CB002254560442D2C4B5358B00225B0022545445921212D2C
45442D0000020066FE96046605A400030007001A400C04FB0006FB0108057F02
04002FC4D4EC310010D4ECD4EC301311211125211121660400FC73031BFCE5FE
96070EF8F2720629000100E10000045A05D5000A004B40154203A00402A00581
0700A009081F061C03001F010B10D4ECC4FCEC31002FEC32F4ECD4EC304B5358
5922014BB00F5458BD000BFFC00001000B000B00403811373859B40F030F0402
5D3721110535253311211521FE014AFE990165CA014AFCA4AA047348B848FAD5
AA00000100960000044A05F0001C00A54027191A1B03181C1105040011050504
4210A111940DA014910400A00200100A02010A1C171003061D10FCC4D4ECC0C0
11123931002FEC32F4ECF4EC304B5358071005ED0705ED1117395922014BB015
544BB016545B4BB014545B58BD001D00400001001D001DFFC038113738594032
5504560556077A047A05761B87190704000419041A041B051C74007606751A73
1B741C82008619821A821B821CA800A81B115D005D25211521353600373E0135
342623220607353E01333204151406070600018902C1FC4C73018D33614DA786
5FD3787AD458E80114455B19FEF4AAAAAA7701913A6D974977964243CC3132E8
C25CA5701DFEEB000001FFFA000004E905D50007004A400E0602950081040140
031C0040050810D4E4FCE431002FF4EC3230014BB00A5458BD00080040000100
080008FFC03811373859401300091F00100110021F071009400970099F09095D
03211521112311210604EFFDEECBFDEE05D5AAFAD5052B000001000000020000
61EE10E75F0F3CF5001F080000000000BAB9F0B80000000000000000FFFAFE96
04E905F000000008000100000000000000010000076DFE1D0000000000000000
000000010000000000000000000000000000000404CD0066051700E105170096
04E3FFFA00000022005F00E2011A0000000100000004001D0002000000000002
00100040000700000415056800030001B8028040FFFBFE03FA1403F92503F832
03F79603F60E03F5FE03F4FE03F32503F20E03F19603F02503EF8A4105EFFE03
EE9603ED9603ECFA03EBFA03EAFE03E93A03E84203E7FE03E63203E5E45305E5
9603E48A4105E45303E3E22F05E3FA03E22F03E1FE03E0FE03DF3203DE1403DD
9603DCFE03DB1203DA7D03D9BB03D8FE03D68A4105D67D03D5D44705D57D03D4
4703D3D21B05D3FE03D21B03D1FE03D0FE03CFFE03CEFE03CD9603CCCB1E05CC
FE03CB1E03CA3203C9FE03C6851105C61C03C51603C4FE03C3FE03C2FE03C1FE
03C0FE03BFFE03BEFE03BDFE03BCFE03BBFE03BA1103B9862505B9FE03B8B7BB
05B8FE03B7B65D05B7BB03B78004B6B52505B65D40FF03B64004B52503B4FE03
B39603B2FE03B1FE03B0FE03AFFE03AE6403AD0E03ACAB2505AC6403ABAA1205
AB2503AA1203A98A4105A9FA03A8FE03A7FE03A6FE03A51203A4FE03A3A20E05
A33203A20E03A16403A08A4105A096039FFE039E9D0C059EFE039D0C039C9B19
059C64039B9A10059B19039A1003990A0398FE0397960D0597FE03960D03958A
410595960394930E05942803930E0392FA039190BB0591FE03908F5D0590BB03
9080048F8E25058F5D038F40048E25038DFE038C8B2E058CFE038B2E038A8625
058A410389880B05891403880B03878625058764038685110586250385110384
FE038382110583FE0382110381FE0380FE037FFE0340FF7E7D7D057EFE037D7D
037C64037B5415057B25037AFE0379FE03780E03770C03760A0375FE0374FA03
73FA0372FA0371FA0370FE036FFE036EFE036C21036BFE036A1142056A530369
FE03687D036711420566FE0365FE0364FE0363FE0362FE03613A0360FA035E0C
035DFE035BFE035AFE0359580A0559FA03580A035716190557320356FE035554
150555420354150353011005531803521403514A130551FE03500B034FFE034E
4D10054EFE034D10034CFE034B4A13054BFE034A4910054A1303491D0D054910
03480D0347FE0346960345960344FE0343022D0543FA0342BB03414B0340FE03
3FFE033E3D12053E14033D3C0F053D12033C3B0D053C40FF0F033B0D033AFE03
39FE033837140538FA033736100537140336350B05361003350B03341E03330D
0332310B0532FE03310B03302F0B05300D032F0B032E2D09052E10032D09032C
32032B2A25052B64032A2912052A25032912032827250528410327250326250B
05260F03250B0324FE0323FE03220F03210110052112032064031FFA031E1D0D
051E64031D0D031C1142051CFE031BFA031A42031911420519FE031864031716
190517FE031601100516190315FE0314FE0313FE031211420512FE0311022D05
114203107D030F64030EFE030D0C16050DFE030C0110050C16030BFE030A1003
09FE0308022D0508FE030714030664030401100504FE03401503022D0503FE03
02011005022D0301100300FE0301B80164858D012B2B2B2B2B2B2B2B2B2B2B2B
2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B
2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B
2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B
2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B
2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B002B2B2B2B2B2B
2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B
2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B
2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B
2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B
2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B1D00
] def
/CharStrings 4 dict dup begin
/.notdef 0 def
/glyph1 1 def
/glyph2 2 def
/glyph3 3 def
end readonly def
FontName currentdict end definefont pop
%%EndResource
%%DocumentSuppliedResources: font BitstreamVeraSans-RomanFID19HGSet1
%%IncludeFeature: *PageSize A4
} stopped cleartomark
%%IncludeFeature: *InputSlot Tray3
} stopped cleartomark
%%EndSetup
%%Page: 1 1
%%PageBoundingBox: 12 12 583 830
%%BeginPageSetup
%%EndPageSetup
gsave
[0.12 0 0 -0.12 12 830] concat
gsave
373 465 moveto
0 0 0 setrgbcolor
(BitstreamVeraSans-RomanFID19HGSet1) cvn findfont 100 -100 matrix scale makefont setfont
<5431>
[60 0]
xshow
grestore grestore
showpage
%%PageTrailer
%%Page: 2 2
%%PageBoundingBox: 12 12 583 830
%%BeginPageSetup
%%IncludeFeature: *InputSlot Tray4
} stopped cleartomark
%%EndPageSetup
gsave
[0.12 0 0 -0.12 12 830] concat
gsave
373 465 moveto
0 0 0 setrgbcolor
(BitstreamVeraSans-RomanFID19HGSet1) cvn findfont 100 -100 matrix scale makefont setfont
<5432>
[60 0]
xshow
grestore grestore
showpage
%%PageTrailer
%%Trailer
%%BoundingBox: 0 0 595 842
%%Pages: 2
%%EOF
-- 8< --

As far as I'm able to read PS, I can see that the actual PS file contains the tray switching instructions, the only thing that worries me is the control file, which says something about Tray3 and nothing about "Auto" or "and Tray4"

I'm now about fideling with the RAW queue....

thanks and regards
Philipp





More information about the cups mailing list