From edb2136c619d2c59bcb6dfd431c4c7636ff8913d Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sun, 7 Apr 2013 18:42:53 +0000 Subject: texmf -> texmf-dist: scripts git-svn-id: svn://tug.org/texlive/trunk@29719 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/scripts/tlgs/gswin32/eps2eps.tlu | 70 +++++++++++++ Master/texmf-dist/scripts/tlgs/gswin32/pdf2dsc.tlu | 56 ++++++++++ Master/texmf-dist/scripts/tlgs/gswin32/pdfopt.tlu | 64 ++++++++++++ .../texmf-dist/scripts/tlgs/gswin32/ps2ascii.tlu | 74 ++++++++++++++ Master/texmf-dist/scripts/tlgs/gswin32/ps2pdf.tlu | 113 +++++++++++++++++++++ .../texmf-dist/scripts/tlgs/gswin32/ps2pdf12.tlu | 113 +++++++++++++++++++++ .../texmf-dist/scripts/tlgs/gswin32/ps2pdf13.tlu | 113 +++++++++++++++++++++ .../texmf-dist/scripts/tlgs/gswin32/ps2pdf14.tlu | 113 +++++++++++++++++++++ Master/texmf-dist/scripts/tlgs/gswin32/ps2ps.tlu | 76 ++++++++++++++ Master/texmf-dist/scripts/tlgs/gswin32/ps2ps2.tlu | 79 ++++++++++++++ 10 files changed, 871 insertions(+) create mode 100755 Master/texmf-dist/scripts/tlgs/gswin32/eps2eps.tlu create mode 100755 Master/texmf-dist/scripts/tlgs/gswin32/pdf2dsc.tlu create mode 100755 Master/texmf-dist/scripts/tlgs/gswin32/pdfopt.tlu create mode 100755 Master/texmf-dist/scripts/tlgs/gswin32/ps2ascii.tlu create mode 100755 Master/texmf-dist/scripts/tlgs/gswin32/ps2pdf.tlu create mode 100755 Master/texmf-dist/scripts/tlgs/gswin32/ps2pdf12.tlu create mode 100755 Master/texmf-dist/scripts/tlgs/gswin32/ps2pdf13.tlu create mode 100755 Master/texmf-dist/scripts/tlgs/gswin32/ps2pdf14.tlu create mode 100755 Master/texmf-dist/scripts/tlgs/gswin32/ps2ps.tlu create mode 100755 Master/texmf-dist/scripts/tlgs/gswin32/ps2ps2.tlu (limited to 'Master/texmf-dist/scripts/tlgs/gswin32') diff --git a/Master/texmf-dist/scripts/tlgs/gswin32/eps2eps.tlu b/Master/texmf-dist/scripts/tlgs/gswin32/eps2eps.tlu new file mode 100755 index 00000000000..fe862ec81b5 --- /dev/null +++ b/Master/texmf-dist/scripts/tlgs/gswin32/eps2eps.tlu @@ -0,0 +1,70 @@ +#!/usr/bin/env texlua +--*-Lua-*- +-- $Id$ + +-- Copyright (C) 2008 Reinhard Kotucha. +-- You may freely use, modify and/or distribute this file. + +-- Replacement for eps2eps.bat. +-- 'Distill' Encapsulated PostScript. + +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 + +if os.type == 'windows' then + gs='gswin32c' +else + gs='gs' +end + +command={gs, '-q', '-sDEVICE=epswrite'} + +if os.type=='unix' then + command[#command+1]='-sstdout=%stderr' +end + + +for _,v in ipairs{'-dNOPAUSE', '-sOutputFile='..arg[#arg], + '-dBATCH', '-dSAFER', '-dDEVICEWIDTH=250000', + '-dDEVICEHEIGHT=250000'} do + command[#command+1]=v +end + + +files=0 + +for i=1, #arg do + if not string.find(arg[i], '^%-') then + files=files+1 + end + command[#command+1]=arg[i] +end + +if files < 2 then + io.stderr:write('Usage: eps2eps [options] input.eps output.eps\n') + os.exit(0) +end + +command[#command]=nil -- already processed at -sOutputFile + +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) diff --git a/Master/texmf-dist/scripts/tlgs/gswin32/pdf2dsc.tlu b/Master/texmf-dist/scripts/tlgs/gswin32/pdf2dsc.tlu new file mode 100755 index 00000000000..442284b4a17 --- /dev/null +++ b/Master/texmf-dist/scripts/tlgs/gswin32/pdf2dsc.tlu @@ -0,0 +1,56 @@ +#!/usr/bin/env texlua +--*-Lua-*- +-- $Id$ + +-- Copyright (C) 2007 Reinhard Kotucha. +-- You may freely use, modify and/or distribute this file. + +-- Replacement for pdf2dsc.bat. +-- Convert PDF to DSC + +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 + +if os.type == 'windows' then + gs='gswin32c' +else + gs='gs' +end + +if #arg == 0 or #arg > 2 then + io.stderr:write('Usage: pdf2dsc input.pdf [output.dsc]\n') + os.exit(0) +end + +pdffile=arg[1] +if #arg==2 then + dscfile=arg[2] +else + dscfile=string.gsub(pdffile, '\.%a+$', '.dsc') +end + +command={gs, '-q', '-dNODISPLAY', '-dSAFER', '-dDELAYSAFER', + '-sPDFname='..pdffile, '-sDSCname='..dscfile, 'pdf2dsc.ps', + '-c', 'quit'} + +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) diff --git a/Master/texmf-dist/scripts/tlgs/gswin32/pdfopt.tlu b/Master/texmf-dist/scripts/tlgs/gswin32/pdfopt.tlu new file mode 100755 index 00000000000..2169407a198 --- /dev/null +++ b/Master/texmf-dist/scripts/tlgs/gswin32/pdfopt.tlu @@ -0,0 +1,64 @@ +#!/usr/bin/env texlua +--*-Lua-*- +-- $Id$ + +-- Copyright (C) 2008 Reinhard Kotucha. +-- You may freely use, modify and/or distribute this file. + +-- Replacement for pdfopt.bat. +-- Linearize 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 + +if os.type == 'windows' then + gs='gswin32c' +else + gs='gs' +end + +command={gs, '-q', '-dNODISPLAY', '-dSAFER', '-dDELAYSAFER'} + +files={} + +for i=1, #arg do + if string.find(arg[i], '^%-') then + command[#command+1]=arg[i] + else + files[#files+1]=arg[i] + end +end + +command[#command+1]='--' +command[#command+1]='pdfopt.ps' + +if #files ~= 2 then + io.stderr:write('Usage: pdfopt [options] input.pdf output.pdf\n') + os.exit(0) +else + for i=1, #files do + command[#command+1]=files[i] + end +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) diff --git a/Master/texmf-dist/scripts/tlgs/gswin32/ps2ascii.tlu b/Master/texmf-dist/scripts/tlgs/gswin32/ps2ascii.tlu new file mode 100755 index 00000000000..2bc31ef26d9 --- /dev/null +++ b/Master/texmf-dist/scripts/tlgs/gswin32/ps2ascii.tlu @@ -0,0 +1,74 @@ +#!/usr/bin/env texlua +--*-Lua-*- +-- $Id$ + +-- Copyright (C) 2008 Reinhard Kotucha. +-- You may freely use, modify and/or distribute this file. + +-- Replacement for ps2ascii.bat. +-- Convert PostScript to ASCII + +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 remove_tmpfiles (tmpfiles) + for i=1, #tmpfiles do + if lfs.isfile(tmpfiles[i]) then + os.remove(tmpfiles[i]) + end + end +end + +if os.type == 'windows' then + gs='gswin32c' +else + gs='gs' +end + +command={gs, '-q', '-dNODISPLAY', '-dBATCH', '-dSAFER', '-dDELAYBIND', + '-dWRITESYSTEMDICT', '-dSIMPLE', '-c', 'save', + '-f', 'ps2ascii.ps'} + +if #arg < 2 then + if #arg == 0 then + command[#command+1]='-' + elseif #arg == 1 then + command[#command+1]=arg[1] + end + command=fixwin(command) +elseif #arg == 2 then + -- We need a shell for I/O redirection. + command=gs..' -q -dNODISPLAY -dBATCH -dSAFER -dDELAYBIND '.. + '-dWRITESYSTEMDICT -dSIMPLE -c save '.. + '-f ps2ascii.ps "'..arg[1]..'" > "'..arg[2]..'"' +end + +--[[ prepend an additional hyphen to activate this code +if type(command) == 'string' then + print(command) +else + for i=0, #command do + print (command[i]) + end +end +os.exit(ret) +--]] + +if type(command) == 'string' then + ret=os.execute(command) +else + ret=os.spawn(command) +end + +remove_tmpfiles{'_temp_.err', '_temp_.out'} +os.exit(ret) 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) diff --git a/Master/texmf-dist/scripts/tlgs/gswin32/ps2pdf12.tlu b/Master/texmf-dist/scripts/tlgs/gswin32/ps2pdf12.tlu new file mode 100755 index 00000000000..5ee91548751 --- /dev/null +++ b/Master/texmf-dist/scripts/tlgs/gswin32/ps2pdf12.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) diff --git a/Master/texmf-dist/scripts/tlgs/gswin32/ps2pdf13.tlu b/Master/texmf-dist/scripts/tlgs/gswin32/ps2pdf13.tlu new file mode 100755 index 00000000000..5ee91548751 --- /dev/null +++ b/Master/texmf-dist/scripts/tlgs/gswin32/ps2pdf13.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) diff --git a/Master/texmf-dist/scripts/tlgs/gswin32/ps2pdf14.tlu b/Master/texmf-dist/scripts/tlgs/gswin32/ps2pdf14.tlu new file mode 100755 index 00000000000..5ee91548751 --- /dev/null +++ b/Master/texmf-dist/scripts/tlgs/gswin32/ps2pdf14.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) diff --git a/Master/texmf-dist/scripts/tlgs/gswin32/ps2ps.tlu b/Master/texmf-dist/scripts/tlgs/gswin32/ps2ps.tlu new file mode 100755 index 00000000000..2d414700ebb --- /dev/null +++ b/Master/texmf-dist/scripts/tlgs/gswin32/ps2ps.tlu @@ -0,0 +1,76 @@ +#!/usr/bin/env texlua +--*-Lua-*- +-- $Id$ + +-- Copyright (C) 2010 Reinhard Kotucha. +-- You may freely use, modify and/or distribute this file. + +-- Replacement for ps2ps.bat. +-- 'Distill' PostScript. + +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 + +if os.type == 'windows' then + gs='gswin32c' +else + gs='gs' +end + + +files={} +options={'-dNOPAUSE', '-dBATCH', '-dSAFER'} + +for i=1, #arg do + if string.find(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 ~= 2 then + io.stderr:write('Usage: ps2ps [options] input.ps output.ps\n') + io.stderr:write(' e.g. ps2ps -sPAPERSIZE=a4 input.ps output.ps\n') + os.exit(1) +end + + +command={gs, '-q', '-sDEVICE=pswrite'} + +if os.type=='unix' then + command[#command+1]='-sstdout=%stderr' +end + +command[#command+1]='-sOutputFile='..files[2] + +for i=1, #options do + command[#command+1]=options[i] +end + +command[#command+1]=files[1] + +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) diff --git a/Master/texmf-dist/scripts/tlgs/gswin32/ps2ps2.tlu b/Master/texmf-dist/scripts/tlgs/gswin32/ps2ps2.tlu new file mode 100755 index 00000000000..5fa86abf0d2 --- /dev/null +++ b/Master/texmf-dist/scripts/tlgs/gswin32/ps2ps2.tlu @@ -0,0 +1,79 @@ +#!/usr/bin/env texlua +--*-Lua-*- +-- $Id$ + +-- Copyright (C) 2010 Reinhard Kotucha. +-- You may freely use, modify and/or distribute this file. + +-- Replacement for ps2ps2.bat. +-- Converting PostScript 3 or PDF into PostScript 2 with the +-- Ghostscript 'ps2write' device. +-- This generates a PDF-style stream with an attached +-- PostScript program to interpret it. + +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 + +if os.type == 'windows' then + gs='gswin32c' +else + gs='gs' +end + + +files={} +options={'-dNOPAUSE', '-dBATCH', '-dSAFER'} + +for i=1, #arg do + if string.find(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 ~= 2 then + io.stderr:write('Usage: ps2ps2 [options] input.ps output.ps\n') + io.stderr:write(' e.g. ps2ps2 -sPAPERSIZE=a4 input.ps output.ps\n') + os.exit(1) +end + + +command={gs, '-q', '-sDEVICE=ps2write'} + +if os.type=='unix' then + command[#command+1]='-sstdout=%stderr' +end + +command[#command+1]='-sOutputFile='..files[2] + +for i=1, #options do + command[#command+1]=options[i] +end + +command[#command+1]=files[1] + +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) -- cgit v1.2.3