summaryrefslogtreecommitdiff
path: root/Master/tlpkg/tlgs/Resource/Init/pdf_ops.ps
diff options
context:
space:
mode:
Diffstat (limited to 'Master/tlpkg/tlgs/Resource/Init/pdf_ops.ps')
-rw-r--r--Master/tlpkg/tlgs/Resource/Init/pdf_ops.ps53
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