diff options
Diffstat (limited to 'Master/tlpkg/tlgs/Resource/Init/pdf_ops.ps')
-rw-r--r-- | Master/tlpkg/tlgs/Resource/Init/pdf_ops.ps | 53 |
1 files changed, 31 insertions, 22 deletions
diff --git a/Master/tlpkg/tlgs/Resource/Init/pdf_ops.ps b/Master/tlpkg/tlgs/Resource/Init/pdf_ops.ps index 8672d617f36..285e582eff2 100644 --- a/Master/tlpkg/tlgs/Resource/Init/pdf_ops.ps +++ b/Master/tlpkg/tlgs/Resource/Init/pdf_ops.ps @@ -1,4 +1,4 @@ -% Copyright (C) 2001-2018 Artifex Software, Inc. +% Copyright (C) 2001-2019 Artifex Software, Inc. % All Rights Reserved. % % This software is provided AS-IS with no warranty, either express or @@ -24,6 +24,7 @@ systemdict /pdfmark known not { userdict /pdfmark { cleartomark } bind executeonly put } if +systemdict /pdfdict where { pop } { /pdfdict 325 dict put } ifelse userdict /GS_PDF_ProcSet 256 dict dup begin % ---------------- Abbreviations ---------------- % @@ -174,24 +175,24 @@ currentdict /gput_always_allow .undef { (\n **** Error: File has unbalanced q/Q operators \(too many Q's\)\n Output may be incorrect.\n) - pdfdict /.Qqwarning_issued .knownget + //pdfdict /.Qqwarning_issued .knownget { { pop } { - currentglobal pdfdict gcheck .setglobal - pdfdict /.Qqwarning_issued //true .forceput + currentglobal //pdfdict gcheck .setglobal + //pdfdict /.Qqwarning_issued //true .forceput .setglobal pdfformaterror - } ifelse + } executeonly ifelse } { - currentglobal pdfdict gcheck .setglobal - pdfdict /.Qqwarning_issued //true .forceput + currentglobal //pdfdict gcheck .setglobal + //pdfdict /.Qqwarning_issued //true .forceput .setglobal pdfformaterror - } ifelse + } executeonly ifelse } if } bind executeonly odef @@ -315,7 +316,7 @@ currentdict /gput_always_allow .undef ( Output may be incorrect.\n) print } if setcolorspace - /ICCProfileNError where {/ICCProfileNError true put} if + /ICCProfileNError where {/ICCProfileNError //true put} if } ifelse }ifelse }{ @@ -349,7 +350,7 @@ currentdict /gput_always_allow .undef ( Output may be incorrect.\n) print } if setcolorspace - /ICCProfileNError where {/ICCProfileNError true put} if + /ICCProfileNError where {/ICCProfileNError //true put} if } ifelse }ifelse }{ @@ -439,7 +440,8 @@ currentdict /gput_always_allow .undef dup type /booleantype eq { .currentSMask type /dicttype eq { .currentSMask /Processed 2 index .forceput - } { + } executeonly + { .setSMask }ifelse }{ @@ -456,7 +458,7 @@ currentdict /gput_always_allow .undef /BM { /.setblendmode where { pop [ exch dup type /nametype ne { aload pop } if /Normal ] { - { .setblendmode } .internalstopped not { exit } if pop + { .setblendmode } //.internalstopped exec not { exit } if pop } forall } { pop @@ -468,7 +470,7 @@ currentdict /gput_always_allow .undef /UseBlackPtComp { %% Our implementation of black point compensation uses 0 or 1, not a boolean - /.setblackptcomp where {pop false eq {0}{1}ifelse .setblackptcomp }{ pop } ifelse + /.setblackptcomp where {pop //false eq {0}{1}ifelse .setblackptcomp }{ pop } ifelse } bind executeonly def % ---------------- Color installation ---------------- % @@ -573,7 +575,7 @@ currentdict /gput_always_allow .undef ( Output may be incorrect.\n) print } if setcolorspace - /ICCProfileNError true def + /ICCProfileNError //true def } ifelse }ifelse }{ @@ -691,7 +693,14 @@ end def { PDFusingtransparency { .currentSMask //null ne { - mark /Subtype /Group /Isolated //true .dicttomark pathbbox .begintransparencygroup + mark /Subtype /Group /Isolated //true .dicttomark + 1 index /stroke eq { + % BBox needs to include line width / line join expansion. + gsave strokepath pathbbox grestore + } { + pathbbox % fill/eofill cases + } ifelse + .begintransparencygroup .currentshapealpha .currentopacityalpha 3 -1 roll % avoid double application 1 .setopacityalpha 1 .setshapealpha } if @@ -973,9 +982,9 @@ end readonly def 3 1 roll mul exch sub 0 eq { - true + //true }{ - false + //false } ifelse } bind executeonly def @@ -1120,19 +1129,19 @@ end readonly def %% Set the special version of the path constructoin operators, so that %% they will work as expected if they are illgeally present in a text block. switch_to_text_marking_ops - + %% If needed, let the pdf14 device know we are in a BT condition. This %% distinguishes BT from an Annotation /FreeText show command which also %% can come into pdf_text_begin with an opacity not equal to 1. PDFusingtransparency .currenttextknockout and { .begintransparencytextgroup } if - + } bind executeonly def /ET_NO_TXT_KO { currentdict /TextSaveMatrix known { - .currenttextrenderingmode 4 ge { .currentfilladjust 0 .setfilladjust clip .setfilladjust} if + .currenttextrenderingmode 4 ge { .currentfilladjust2 0 dup .setfilladjust2 clip .setfilladjust2} if newpath TextSaveMatrix setmatrix currentdict /TextSaveMatrix undef @@ -1160,7 +1169,7 @@ end readonly def % Group push occurred in pdf14_text_begin. PDFusingtransparency .currenttextknockout and { .endtransparencytextgroup - } if + } if } bind executeonly def /Tc { .settextspacing { showfirst } /Show gput } bind executeonly def @@ -1920,7 +1929,7 @@ end readonly def { /FDepVector get 0 get /FontBBox get} { - pop null % force an error + pop //null % force an error } ifelse }if dup 1 get neg exch 3 get % MaxLen (V) Ff Q dx dy yy desc asc |