/usr/share/cagefs-skeleton/usr/share/ghostscript/lib
% Copyright (C) 2001-2021 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. % % pdf2dsc.ps % read pdf file and produce DSC "index" file. % % Input file is named PDFname % Output file is named DSCname % % Run using: % gs -dNODISPLAY -sPDFname=pdffilename -sDSCname=tempfilename pdf2dsc.ps % Then display the PDF file with % gs tempfilename % % Modified by Jason McCarty, bug 688071 % Add PageLabels support. % Modified by Geoff Keating <geoffk@ozemail.com.au> 21/12/98: % Add DocumentMedia, PageMedia comments % Use inherited BoundingBox and Orientation % Reformat, add new macro 'puts', generally clean up % Modified by Johannes Plass <plass@dipmza.physik.uni-mainz.de> 1996-11-05: % Adds BoundingBox and Orientation if available. % Modified by rjl/lpd 9/19/96 % Updates for compatibility with modified pdf_*.ps code for handling % page ranges (i.e., partial files) better. % Modified by Geoff Keating <Geoff.Keating@anu.edu.au> 7/3/96: % include Title and CreationDate DSC comments (these are displayed by % Ghostview); % reduce the size of typical output files by a factor of about 3. % Modified by L. Peter Deutsch 3/18/96: % Removes unnecessary and error-prone code duplicated from pdf_main.ps % Modified by L. Peter Deutsch for GS 3.33 % Originally by Russell Lang 1995-04-26 /PDFfile PDFname (r) file def /DSCfile DSCname (w) file def systemdict /.setsafe known { .setsafe } if /puts { DSCfile exch writestring } bind def /DSCstring 255 string def /MediaTypes 10 dict def PDFfile runpdfbegin /FirstPage where { pop } { /FirstPage 1 def } ifelse /LastPage where { pop } { /LastPage pdfpagecount def } ifelse % scan through for media sizes, keep them in the dictionary FirstPage 1 LastPage { pdfgetpage /MediaBox pget pop % MediaBox is a required attribute aload pop 3 -1 roll sub 3 1 roll exch sub exch 2 array astore aload 3 1 roll 10 string cvs exch 10 string cvs (x) 3 -1 roll concatstrings concatstrings cvn MediaTypes 3 1 roll exch put } for % write header and prolog (%!PS-Adobe-3.0\n) puts Trailer /Info knownoget { dup /Title knownoget { (%%Title: ) puts DSCfile exch write== } if /CreationDate knownoget { (%%CreationDate: ) puts DSCfile exch write== } if } if % This is really supposed to be sorted by frequency of usage... (%%DocumentMedia: ) MediaTypes { exch pop 1 index puts (y) puts dup 1 get DSCstring cvs puts (x) puts dup 0 get DSCstring cvs puts ( ) puts dup 0 get DSCstring cvs puts ( ) puts 1 get DSCstring cvs puts ( 70 white ()\n) puts pop (%%+ ) } forall pop (%%Pages: ) puts LastPage FirstPage sub 1 add DSCstring cvs puts (\n%%EndComments\n) puts (%%BeginProlog\n) puts (/Page null def\n/Page# 0 def\n/PDFSave null def\n) puts (/DSCPageCount 0 def\n) puts (/DoPDFPage {dup /Page# exch store dup dopdfpages } def\n) puts (%%EndProlog\n) puts (%%BeginSetup\n) puts DSCfile PDFname write==only ( \(r\) file { DELAYSAFER { .setsafe } if } stopped pop\n) puts ( runpdfbegin\n) puts ( process_trailer_attrs\n) puts (%%EndSetup\n) puts /.hasPageLabels false def % see "Page Labels" in the PDF Reference Trailer /Root knownoget { /PageLabels knownoget { /PageLabels exch def /.pageCounter 1 def /.pageCounterType /D def /.pagePrefix () def % (TEXT) .ToLower (text) -- convert text to lowercase -- only letters! /.ToLower { dup length 1 sub -1 0 { 1 index exch 2 copy get 2#00100000 or put } for } def % int .CvAlpha (int in alphabetic base 26) -- convert a positive % integer to base 26 in capital letters, with 1=A; i.e. A..Z, AA..AZ, ... /.CvAlpha { % using cvrs seems futile since this isn't zero-based ... [ exch % construct an array of ASCII values, in reverse { % the remainder stays on the top of stack dup 0 eq { pop exit } if % quit if the value is zero dup 26 mod dup 0 eq { 26 add } if % so that the division is correct dup 64 add 3 1 roll sub 26 idiv % save the ASCII value and iterate } loop ] dup length dup string 3 1 roll dup -1 1 { % put the letters in a string 4 copy sub exch 4 -1 roll 1 sub get put } for pop pop } def % int .CvRoman (int in capital Roman numerals) % convert a positive integer to capital Roman numerals % return a decimal string if >= 4000 /.CvRoman { dup DSCstring cvs % start with the decimal representation exch 4000 lt { % convert only if Roman numerals can represent this dup length [ [ () (I) (II) (III) (IV) (V) (VI) (VII) (VIII) (IX) ] [ () (X) (XX) (XXX) (XL) (L) (LX) (LXX) (LXXX) (XC) ] [ () (C) (CC) (CCC) (CD) (D) (DC) (DCC) (DCCC) (CM) ] [ () (M) (MM) (MMM) ] ] % Roman equivalents () % append the Roman equivalent of each decimal digit to this string 2 index -1 1 { 2 index 1 index 1 sub get 5 index 5 index 4 -1 roll sub get 48 sub get concatstrings } for 4 1 roll pop pop pop } if } def /PageToString << /D { DSCstring cvs } /R { .CvRoman } /r { .CvRoman .ToLower } /A { .CvAlpha } /a { .CvAlpha .ToLower } >> def /.hasPageLabels true def } if } if % process each page FirstPage 1 LastPage { (%%Page: ) puts .hasPageLabels { dup 1 sub PageLabels exch numoget dup null ne { % page labels changed at this page, reset the values dup /S known { dup /S get } { null } ifelse /.pageCounterType exch def dup /P known { dup /P get } { () } ifelse /.pagePrefix exch def dup /St known { /St get } { pop 1 } ifelse /.pageCounter exch def } { pop } ifelse % output the page label (\() .pagePrefix .pageCounterType //null ne dup { PageToString .pageCounterType known and } if { % format the page number .pageCounter dup 0 gt { % don't try to format nonpositive numbers PageToString .pageCounterType get exec } { DSCstring cvs } ifelse } { () } ifelse (\)) concatstrings concatstrings concatstrings puts /.pageCounter .pageCounter 1 add def } { dup DSCstring cvs puts } ifelse ( ) puts dup DSCstring cvs puts (\n) puts dup pdfgetpage dup /MediaBox pget pop (%%PageMedia: y) puts aload pop 3 -1 roll sub DSCstring cvs puts (x) puts exch sub DSCstring cvs puts (\n) puts dup /CropBox pget { (%%PageBoundingBox: ) puts {DSCfile exch write=only ( ) puts} forall (\n) puts } if /Rotate pget { (%%PageOrientation: ) puts 90 div cvi 4 mod dup 0 lt {4 add} if [(Portrait) (Landscape) (UpsideDown) (Seascape)] exch get puts (\n) puts } if DSCfile exch DSCstring cvs writestring ( DoPDFPage\n) puts } for runpdfend % write trailer (%%Trailer\n) puts (runpdfend\n) puts (%%EOF\n) puts % close output file and exit DSCfile closefile quit % end of pdf2dsc.ps
.
Edit
..
Edit
PDFA_def.ps
Edit
PDFX_def.ps
Edit
PM760p.upp
Edit
PM760pl.upp
Edit
PM820p.upp
Edit
PM820pl.upp
Edit
Stc670p.upp
Edit
Stc670pl.upp
Edit
Stc680p.upp
Edit
Stc680pl.upp
Edit
Stc740p.upp
Edit
Stc740pl.upp
Edit
Stc760p.upp
Edit
Stc760pl.upp
Edit
Stc777p.upp
Edit
Stc777pl.upp
Edit
Stp720p.upp
Edit
Stp720pl.upp
Edit
Stp870p.upp
Edit
Stp870pl.upp
Edit
acctest.ps
Edit
align.ps
Edit
bj8.rpd
Edit
bj8gc12f.upp
Edit
bj8hg12f.upp
Edit
bj8oh06n.upp
Edit
bj8pa06n.upp
Edit
bj8pp12f.upp
Edit
bj8ts06n.upp
Edit
bjc6000a1.upp
Edit
bjc6000b1.upp
Edit
bjc610a0.upp
Edit
bjc610a1.upp
Edit
bjc610a2.upp
Edit
bjc610a3.upp
Edit
bjc610a4.upp
Edit
bjc610a5.upp
Edit
bjc610a6.upp
Edit
bjc610a7.upp
Edit
bjc610a8.upp
Edit
bjc610b1.upp
Edit
bjc610b2.upp
Edit
bjc610b3.upp
Edit
bjc610b4.upp
Edit
bjc610b6.upp
Edit
bjc610b7.upp
Edit
bjc610b8.upp
Edit
caption.ps
Edit
cbjc600.ppd
Edit
cbjc800.ppd
Edit
cdj550.upp
Edit
cdj690.upp
Edit
cdj690ec.upp
Edit
cid2code.ps
Edit
dnj750c.upp
Edit
dnj750m.upp
Edit
docie.ps
Edit
font2pcl.ps
Edit
ghostpdf.ppd
Edit
gs_ce_e.ps
Edit
gs_css_e.ps
Edit
gs_il2_e.ps
Edit
gs_kanji.ps
Edit
gs_ksb_e.ps
Edit
gs_l.xbm
Edit
gs_l.xpm
Edit
gs_l_m.xbm
Edit
gs_lgo_e.ps
Edit
gs_lgx_e.ps
Edit
gs_m.xbm
Edit
gs_m.xpm
Edit
gs_m_m.xbm
Edit
gs_s.xbm
Edit
gs_s.xpm
Edit
gs_s_m.xbm
Edit
gs_t.xbm
Edit
gs_t.xpm
Edit
gs_t_m.xbm
Edit
gs_wl1_e.ps
Edit
gs_wl2_e.ps
Edit
gs_wl5_e.ps
Edit
gslp.ps
Edit
gsnup.ps
Edit
ht_ccsto.ps
Edit
image-qa.ps
Edit
jispaper.ps
Edit
landscap.ps
Edit
lines.ps
Edit
mkcidfm.ps
Edit
necp2x.upp
Edit
necp2x6.upp
Edit
pdf2dsc.ps
Edit
pdf_info.ps
Edit
pf2afm.ps
Edit
pfbtopfa.ps
Edit
ppath.ps
Edit
pphs.ps
Edit
prfont.ps
Edit
printafm.ps
Edit
ps2ai.ps
Edit
ps2epsi.ps
Edit
ras1.upp
Edit
ras24.upp
Edit
ras3.upp
Edit
ras32.upp
Edit
ras4.upp
Edit
ras8m.upp
Edit
rollconv.ps
Edit
s400a1.upp
Edit
s400b1.upp
Edit
sharp.upp
Edit
sipixa6.upp
Edit
st640ih.upp
Edit
st640ihg.upp
Edit
st640p.upp
Edit
st640pg.upp
Edit
st640pl.upp
Edit
st640plg.upp
Edit
stc.upp
Edit
stc1520h.upp
Edit
stc2.upp
Edit
stc200_h.upp
Edit
stc2_h.upp
Edit
stc2s_h.upp
Edit
stc300.upp
Edit
stc300bl.upp
Edit
stc300bm.upp
Edit
stc500p.upp
Edit
stc500ph.upp
Edit
stc600ih.upp
Edit
stc600p.upp
Edit
stc600pl.upp
Edit
stc640p.upp
Edit
stc740ih.upp
Edit
stc800ih.upp
Edit
stc800p.upp
Edit
stc800pl.upp
Edit
stc_h.upp
Edit
stc_l.upp
Edit
stcany.upp
Edit
stcany_h.upp
Edit
stcinfo.ps
Edit
stcolor.ps
Edit
stocht.ps
Edit
traceimg.ps
Edit
traceop.ps
Edit
uninfo.ps
Edit
viewcmyk.ps
Edit
viewgif.ps
Edit
viewjpeg.ps
Edit
viewmiff.ps
Edit
viewpbm.ps
Edit
viewpcx.ps
Edit
viewps2a.ps
Edit
winmaps.ps
Edit
zeroline.ps
Edit