summaryrefslogtreecommitdiff
path: root/Master/tlpkg/tlgs/lib/pdf_cslayer.ps
diff options
context:
space:
mode:
authorReinhard Kotucha <reinhard.kotucha@web.de>2008-04-27 12:21:15 +0000
committerReinhard Kotucha <reinhard.kotucha@web.de>2008-04-27 12:21:15 +0000
commit1561025730401799ab38b5568fefdb44f3c7cd90 (patch)
tree9633f052e1d7b82b26f0cae0641a67a15d9c8336 /Master/tlpkg/tlgs/lib/pdf_cslayer.ps
parenta256edfd694e954c747687da218917244add5bd9 (diff)
tlpkg/tlgs: Update to gs 8.62.
git-svn-id: svn://tug.org/texlive/trunk@7680 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/tlpkg/tlgs/lib/pdf_cslayer.ps')
-rw-r--r--Master/tlpkg/tlgs/lib/pdf_cslayer.ps121
1 files changed, 121 insertions, 0 deletions
diff --git a/Master/tlpkg/tlgs/lib/pdf_cslayer.ps b/Master/tlpkg/tlgs/lib/pdf_cslayer.ps
new file mode 100644
index 00000000000..7178d5eb4e3
--- /dev/null
+++ b/Master/tlpkg/tlgs/lib/pdf_cslayer.ps
@@ -0,0 +1,121 @@
+% Copyright (C) 2007 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 that
+% license. Refer to licensing information at http://www.artifex.com/
+% or contact Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134,
+% San Rafael, CA 94903, U.S.A., +1(415)492-9861, for further information.
+%
+% $Id: pdf_cslayer.ps 8284 2007-10-10 17:40:38Z giles $
+%
+% Layer data extraction from Illustator CS2/CS3 files
+%
+
+.languagelevel dup 2 .max .setlanguagelevel
+.currentglobal //true .setglobal
+/pdfdict load dup /pdfopdict get dup length dict copy dup begin /pdfopdict exch put
+
+/BMC {
+ currentdevice //null //false mark
+ /MarkType (BMC)
+ /BMC_Tag 8 1 roll 256 string cvs
+ //systemdict /CSLAYERDEBUG .knownget {
+ { (### BMC to deviceparams, tag: ) print dup = flush } if
+ } if
+ .putdeviceparamsonly dup type /booleantype ne {
+ cleartomark pop
+ } if
+ pop pop % discard the device and flag
+ pop pop % discard /BMC_Tag and the tag name
+} bind def
+
+/BDC { % send selected BDC info to the device as properties
+ 10 dict begin % private working dictionary
+ /MarkType (BDC) def % BDC code
+ % process the tag and Title for now
+ exch 256 string cvs /BDC_Tag exch def % convert tag to a string
+ dup type /nametype eq {
+ dup Page /Properties rget not {
+ pop 0 dict % empty dict in case missing Properties Resource
+ } if
+ exch pop % discard the resource name
+ } if
+
+ dup /Type knownoget { /OCG eq } { //false } ifelse {
+ % Illustrator CS3 and higher
+ dup /Name knownoget not { () } if % no Name, use an empty string
+ /BDC_Title exch def
+
+ dup /Usage knownoget not { 0 dict } if
+ dup /View knownoget { /ViewState knownoget { /OFF ne } { //true } ifelse } { //true } ifelse
+ /BDC_Visible exch def
+ dup /Print knownoget { /PrintState knownoget { /OFF ne } { //true } ifelse } { //true } ifelse
+ /BDC_Printed exch def
+ pop % Usage dict
+
+ dup /Intent knownoget {
+ dup type /nametype eq {
+ /Design eq
+ } {
+ //false exch { oforce /Design eq or } forall
+ } ifelse
+ } {
+ //false
+ } ifelse
+ /BDC_Editable exch def
+
+ /BDC_Preview //true def
+ /BDC_Dimmed //false def
+ /BDC_Transparency //true def
+ /BDC_FlatLayer //true def
+ } {
+ % Illustrator CS2
+ dup /Title knownoget not { () } if % no Title, use an empty string
+ /BDC_Title exch def
+ dup /Visible knownoget not { //true } if % no Visible flag, set true
+ /BDC_Visible exch def
+ dup /Preview knownoget not { //true } if % no preview flag, set true
+ /BDC_Preview exch def
+ dup /Editable knownoget not { //true } if % no Editable flag, set true
+ /BDC_Editable exch def
+ dup /Printed knownoget not { //true } if % no printed flag, set true
+ /BDC_Printed exch def
+ dup /Dimmed knownoget not { //true } if % no dimmed flag, set true
+ /BDC_Dimmed exch def
+ dup /Transparency knownoget not { //true } if % no Transparency flag, set true
+ /BDC_Transparency exch def
+ dup /FlatLayer knownoget not { //true } if % no flat layer flag, set true
+ /BDC_FlatLayer exch def
+ } ifelse
+
+ % now send the collected info to the device
+ //systemdict /CSLAYERDEBUG .knownget {
+ { (### BDC info to deviceparams: ) print currentdict === flush } if
+ } if
+ currentdevice //null //false mark currentdict { } forall
+ .putdeviceparamsonly dup type /booleantype ne {
+ cleartomark pop
+ } if
+ pop pop % discard the device and flag
+ end % discard private dict
+ pop % done with properties dict
+} bind def
+
+/EMC {
+ currentdevice //null //false mark /MarkType (EMC)
+ //systemdict /CSLAYERDEBUG .knownget {
+ { (### EMC to deviceparams) = flush } if
+ } if
+ .putdeviceparamsonly dup type /booleantype ne {
+ cleartomark pop
+ } if
+ pop pop % discard the device and flag
+} bind def
+
+currentdict readonly pop end
+.setglobal
+.setlanguagelevel