% Copyright (C) 2001-2018 Artifex Software, Inc. % All Rights Reserved. % % This software is provided AS-IS with no warranty, either express or % implied. % % This software is distributed under license and may not be copied, % modified or distributed except as expressly authorized under the terms % of the license contained in the file LICENSE in this distribution. % % Refer to licensing information at http://www.artifex.com or contact % Artifex Software, Inc., 1305 Grant Avenue - Suite 200, Novato, % CA 94945, U.S.A., +1(415)492-9861, for further information. % % Emulate the Level 2 dictionary-based image operator in Level 1, % except for Interpolate (ignored) and MultipleDataSources = true; % also, we require that the data source be either a procedure of a % particular form or a stream, not a string or a general procedure. % pdf2ps copies the portion of this file from %BEGIN to %END if Level 1 % compatible output is requested. /currentglobal where { pop currentglobal { setglobal } //true setglobal } { { } } ifelse /packedarray where { pop } { /packedarray { array astore readonly } bind def } ifelse %BEGIN 11 dict /.csncompdict 1 index def begin /DeviceGray { 1 /setgray load } bind def /DeviceRGB { 3 /setrgbcolor load } bind def /DeviceCMYK { 4 /setcmykcolor load } bind def /Indexed { dup 1 index 1 get //.csncompdict exch get exec % Stack: [/Indexed base hival map] ncomp basesetcolor 3 -1 roll 3 get mark 3 1 roll % Stack: ncomp -mark- basesetcolor map dup type /stringtype eq { { - { exch round cvi get 255 div } - { exch round cvi 3 mul 2 copy 2 copy get 255 div 3 1 roll 1 add get 255 div 4 2 roll 2 add get 255 div } { exch round cvi 4 mul 2 copy 2 copy 2 copy get 255 div 3 1 roll 1 add get 255 div 4 2 roll 2 add get 255 div 5 3 roll 3 add get 255 div } } 4 index get aload pop counttomark -1 roll } { /exec load 3 -1 roll % Stack: -mark- mapproc --exec-- basesetcolor } ifelse .packtomark cvx exch pop 1 exch } bind def /Separation { dup 2 index //.csncompdict exch get exec % Stack: [/Separation name alt xform] ncomp altsetcolor 3 -1 roll 3 get /exec load 3 -1 roll 3 array astore readonly cvx exch pop 1 exch } bind def % Substitute device spaces for CIE spaces. /CIEBasedA /DeviceGray load def /CIEBasedABC /DeviceRGB load def /CIEBasedDEF /DeviceRGB load def /CIEBasedDEFG /DeviceCMYK load def end /.packtomark { counttomark packedarray exch pop } bind def /.csinextbits % - .csinextbits <bits> % Uses b, nnb, i, row, mask, BitsPerComponent; % sets b, nnb, i. { /nnb nnb BitsPerComponent add { dup 0 le { exit } if /b b 8 bitshift row i get add def /i i 1 add def 8 sub } loop def b nnb bitshift mask and } bind def % Note that the ColorSpace key must be present in the image dictionary. /.colorspaceimage % <imagedict> .colorspaceimage - { save exch dup length 15 add dict begin { cvlit def } forall ColorSpace dup dup type /nametype ne { 0 get } if .csncompdict exch get exec /setpixelcolor exch def /ncomp exch def pop /row ncomp BitsPerComponent mul Width mul 7 add 8 idiv string def /mask 1 BitsPerComponent bitshift 1 sub def /nextbits BitsPerComponent 8 eq { { row i get /i i 1 add def } } { /.csinextbits load } ifelse def /nextpixel mark 0 2 ncomp 1 sub 2 mul { /nextbits cvx exch Decode exch 2 getinterval dup aload pop exch sub dup mask eq { pop } { mask div /mul load 3 -1 roll } ifelse 0 get dup 0 eq { pop } { /sub load 3 -1 roll } ifelse } for /setpixelcolor load dup type /operatortype ne { /exec load } if .packtomark cvx def /readrow /DataSource load dup type dup /arraytype eq exch /packedarraytype eq or { % Must be { <file> <string> ... } aload length 1 add array /pop load exch astore dup 1 row put cvx } { pop % Adobe requires readstring to signal an error if given % an empty string. Work around this nonsense here. row length 0 eq { { } } { { DataSource row readstring pop pop } } ifelse } ifelse def ImageMatrix matrix invertmatrix concat /imat matrix def 0 1 Height 1 sub { imat 5 3 -1 roll neg put readrow /b 0 def /nnb 0 def /i 0 def 0 1 Width 1 sub { imat 4 3 -1 roll neg put nextpixel 1 1 //true imat {<80>} imagemask } for } for end restore } bind def %END exec currentfile closefile % Patch for testing. /.cincompdict 3 dict begin 1 { {0 1} {/DeviceGray} } def 3 { {0 1 0 1 0 1} {/DeviceRGB} } def 4 { {0 1 0 1 0 1 0 1} {/DeviceCMYK} } def currentdict end def /.imagekeys [ /Decode /DataSource /ImageMatrix /BitsPerComponent /Height /Width ] def /colorimage % <width> <height> <bits/comp> <matrix> % <datasrc> false <ncomp> colorimage - { 1 index { /colorimage .systemvar /rangecheck signalerror } if exch pop //.cincompdict exch get exec 7 dict begin /ColorSpace exch cvlit def .imagekeys { exch cvlit def } forall currentdict end .colorspaceimage } bind odef /image { dup type /dicttype ne { 7 dict begin /ColorSpace /DeviceGray def [0 1] .imagekeys { exch cvlit def } forall currentdict end } { dup length 1 add dict .copydict dup /ColorSpace currentcolorspace put } ifelse .colorspaceimage } bind odef exec
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
FAPIcidfmap | File | 1.45 KB | 0644 |
|
FAPIconfig | File | 815 B | 0644 |
|
FAPIfontmap | File | 1.43 KB | 0644 |
|
FCOfontmap-PCLPS2 | File | 2.79 KB | 0644 |
|
Fontmap | File | 109 B | 0644 |
|
Fontmap.GS | File | 11.79 KB | 0644 |
|
cidfmap | File | 2.11 KB | 0644 |
|
gs_agl.ps | File | 212.91 KB | 0644 |
|
gs_btokn.ps | File | 11.9 KB | 0644 |
|
gs_cet.ps | File | 3.4 KB | 0644 |
|
gs_cff.ps | File | 6.71 KB | 0644 |
|
gs_cidcm.ps | File | 16.43 KB | 0644 |
|
gs_ciddc.ps | File | 8.31 KB | 0644 |
|
gs_cidfm.ps | File | 7.14 KB | 0644 |
|
gs_cidfn.ps | File | 13.22 KB | 0644 |
|
gs_cidtt.ps | File | 5.7 KB | 0644 |
|
gs_cmap.ps | File | 17.94 KB | 0644 |
|
gs_cspace.ps | File | 5.84 KB | 0644 |
|
gs_dbt_e.ps | File | 2.08 KB | 0644 |
|
gs_diskn.ps | File | 6.68 KB | 0644 |
|
gs_dpnxt.ps | File | 4.74 KB | 0644 |
|
gs_dps.ps | File | 8.15 KB | 0644 |
|
gs_dps1.ps | File | 4.57 KB | 0644 |
|
gs_dps2.ps | File | 8.28 KB | 0644 |
|
gs_dscp.ps | File | 3.85 KB | 0644 |
|
gs_epsf.ps | File | 8.62 KB | 0644 |
|
gs_fapi.ps | File | 15.13 KB | 0644 |
|
gs_fntem.ps | File | 11.04 KB | 0644 |
|
gs_fonts.ps | File | 44.83 KB | 0644 |
|
gs_frsd.ps | File | 3.07 KB | 0644 |
|
gs_icc.ps | File | 2.99 KB | 0644 |
|
gs_il1_e.ps | File | 2.66 KB | 0644 |
|
gs_img.ps | File | 24.28 KB | 0644 |
|
gs_init.ps | File | 89.73 KB | 0644 |
|
gs_l2img.ps | File | 5.74 KB | 0644 |
|
gs_lev2.ps | File | 43.65 KB | 0644 |
|
gs_ll3.ps | File | 18.51 KB | 0644 |
|
gs_mex_e.ps | File | 3.75 KB | 0644 |
|
gs_mgl_e.ps | File | 2.13 KB | 0644 |
|
gs_mro_e.ps | File | 2.45 KB | 0644 |
|
gs_pdf_e.ps | File | 1.52 KB | 0644 |
|
gs_pdfwr.ps | File | 31.68 KB | 0644 |
|
gs_res.ps | File | 40.08 KB | 0644 |
|
gs_resmp.ps | File | 21.94 KB | 0644 |
|
gs_setpd.ps | File | 38.25 KB | 0644 |
|
gs_statd.ps | File | 13.6 KB | 0644 |
|
gs_std_e.ps | File | 3.07 KB | 0644 |
|
gs_sym_e.ps | File | 3.03 KB | 0644 |
|
gs_trap.ps | File | 2.85 KB | 0644 |
|
gs_ttf.ps | File | 61.82 KB | 0644 |
|
gs_typ32.ps | File | 4.45 KB | 0644 |
|
gs_typ42.ps | File | 1.98 KB | 0644 |
|
gs_type1.ps | File | 12.12 KB | 0644 |
|
gs_wan_e.ps | File | 1.53 KB | 0644 |
|
pdf_base.ps | File | 50.68 KB | 0644 |
|
pdf_draw.ps | File | 166.95 KB | 0644 |
|
pdf_font.ps | File | 88.77 KB | 0644 |
|
pdf_main.ps | File | 120.23 KB | 0644 |
|
pdf_ops.ps | File | 71.77 KB | 0644 |
|
pdf_rbld.ps | File | 18.96 KB | 0644 |
|
pdf_sec.ps | File | 24.15 KB | 0644 |
|
xlatmap | File | 1.73 KB | 0644 |
|