summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/scripts/tlgs/gswin32/ps2pdf.tlu
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2013-04-07 18:42:53 +0000
committerKarl Berry <karl@freefriends.org>2013-04-07 18:42:53 +0000
commitedb2136c619d2c59bcb6dfd431c4c7636ff8913d (patch)
tree8aa04dd27bee1b2f2f9b3fd45dab41cf7771f82e /Master/texmf-dist/scripts/tlgs/gswin32/ps2pdf.tlu
parentb3efa3bb4509e7bd53d737fb729d0d92a76f1f98 (diff)
texmf -> texmf-dist: scripts
git-svn-id: svn://tug.org/texlive/trunk@29719 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/scripts/tlgs/gswin32/ps2pdf.tlu')
-rwxr-xr-xMaster/texmf-dist/scripts/tlgs/gswin32/ps2pdf.tlu113
1 files changed, 113 insertions, 0 deletions
diff --git a/Master/texmf-dist/scripts/tlgs/gswin32/ps2pdf.tlu b/Master/texmf-dist/scripts/tlgs/gswin32/ps2pdf.tlu
new file mode 100755
index 00000000000..5ee91548751
--- /dev/null
+++ b/Master/texmf-dist/scripts/tlgs/gswin32/ps2pdf.tlu
@@ -0,0 +1,113 @@
+#!/usr/bin/env texlua
+--*-Lua-*-
+-- $Id$
+
+-- Copyright (C) 2008 Reinhard Kotucha.
+-- You may freely use, modify and/or distribute this file.
+
+-- Replacement for ps2pdf*.bat.
+-- Convert PS to PDF
+
+function fixwin (args_unix)
+ if os.type == 'windows' then
+ local args_win={} -- new table
+ args_win[0]=args_unix[1]
+ for i=1, #args_unix do
+ args_win[i]='"'..args_unix[i]..'"'
+ end
+ return args_win
+ else
+ return args_unix
+ end
+end
+
+function filename (file)
+ if string.find(file, '[/\\]') then
+ return string.match(file, '.*[/\\](.*)$')
+ else
+ return file
+ end
+end
+
+function basename (file)
+ return string.match(filename(file), '(.*)[\.].*')
+end
+
+if os.type == 'windows' then
+ gs='gswin32c'
+else
+ gs='gs'
+end
+
+command={gs}
+files={}
+options={}
+
+PDF_level='1.4'
+if string.find(filename(arg[0]), 'ps2pdf12') then
+ PDF_level='1.2'
+elseif string.find(filename(arg[0]), 'ps2pdf13') then
+ PDF_level='1.3'
+elseif string.find(filename(arg[0]), 'ps2pdf14') then
+ PDF_level='1.4'
+end
+
+options[#options+1]='-dCompatibilityLevel='..PDF_level
+
+for i=1, #arg do
+ if arg[i] == '-' then
+ files[#files+1]=arg[i]
+ elseif string.find(arg[i], '^%-') then
+ options[#options+1]=arg[i]
+ else
+ files[#files+1]=arg[i]
+ end
+end
+
+if #files < 1 or #files > 2 then
+ io.stderr:write('Usage: ps2pdf [options] (input.[e]ps|-) [output.pdf]\n')
+ os.exit(0)
+end
+
+if #files == 1 then
+ if files[1] == '-' then
+ outfile='-'
+ elseif string.find(filename(files[1]), '\.[eE]?[pP][sS]$') then
+ outfile=basename(files[1])..'.pdf'
+ else
+ print ('xxx:'..files[1])
+ outfile=filename(files[1])..'.pdf'
+ end
+else
+ outfile=files[2]
+end
+
+for i=1, #options do
+ command[#command+1]=options[i]
+end
+
+other_opts={'-q', '-dSAFER', '-dNOPAUSE', '-dBATCH', '-sDEVICE=pdfwrite'}
+
+for i=1, #other_opts do
+ command[#command+1]=other_opts[i]
+end
+
+command[#command+1]='-sOutputFile='..outfile
+
+other_opts={'-c', '.setpdfwrite', '-f', files[1]}
+
+for i=1, #other_opts do
+ command[#command+1]=other_opts[i]
+end
+
+command=fixwin(command)
+
+--[[ prepend an additional hyphen to activate this code
+for i=0, #command do
+ print (command[i])
+end
+os.exit(ret)
+--]]
+
+ret=os.spawn(command)
+os.exit(ret)