Хорошо, файл примера, на который вы ссылаетесь, ведет себя хорошо (и не переопределил оператор showpage
).
Итак, я предполагаю следующее:
- Все ваши файлы .ps аналогичны вашему файлу примера.
- Все ваши файлы .ps имеют размер только одну страницу (например, файлы .eps).
- Все ваши имена файлов похожи на
gnp-NNN.ps
(например, gnp-544.ps is).
- Номер, который вы хотите отобразить в верхнем правом углу, -
NNN
от имени файла.
Я также предполагаю, что у вас установлен Ghostscript, и это самая последняя версия , 8.71. Я в настоящее время на Windows - если вы на Linux / Unix, просто замените gswin32c.exe
на gs
и все окончания строк ^
на \
.
Тестовый вывод PDF
Теперь попробуйте сначала эту команду:
gswin32c.exe ^
-o gnp-with-number-544.pdf ^
-sDEVICE=pdfwrite ^
-g5030x5320 ^
-c "/Helvetica-Italic findfont 15 scalefont setfont 453 482 moveto (544) show" ^
-f gnp-544.ps
и посмотрите, выглядит ли полученный gnp-with-number-544.pdf
так, как вы этого хотите.
-c "..."
используется для передачи фрагментов PostScript в Ghostscript и его обработки вместе с основным файлом .ps, который затем должен следовать в качестве следующего параметра, с -f ...
.
Вы можете изменить параметры:
- Замените
/Helvetica-Italic
имя шрифта на /Helvetica
, /Courier
, /Times
, Helvetica-Bold
или на все, что у вас есть и вы предпочитаете.
- Или измените размер шрифта:
15
здесь означает 15 точек (в PDF 72 точки == 1 дюйм ).
- Или измените положение:
453 482
перемещает текущую точку PostScript на "453 точки влево, 482 точки на вершину" (с oringin 0,0 , установленным на нижний левый угол).
- Или настроить размер носителя:
-g5030x5320
дает вам 503x532 точек (из-за разрешения по умолчанию 720 точек на дюйм, используемого -sDEVICE=pdfwrite
.
- Или установите печатаемую строку на
(File No. 544) show
или что хотите.
Вы также можете добавить немало параметров, чтобы настроить качество выходного файла (разрешение, внедрение шрифтов и т. Д.), Но эти подойдут пока.
Изменить на вывод PostScript
Если вам нужен вывод PostScript по какой-то причине вместо PDF, измените команду следующим образом:
gswin32c.exe ^
-o gnp-with-number-544.ps ^
-sDEVICE=ps2write ^
-g5030x5320 ^
-c "/Helvetica-Italic findfont 15 scalefont setfont 453 482 moveto (544) show" ^
-f gnp-544.ps
Пакетное конвертирование множества файлов
Теперь, как это конвертировать? Для этого последнего шага я предполагаю:
- ваша схема нумерации
NNN
не использует ведущие 0
с.
- Ваш диапазон файлов для преобразования: gnp-1.ps..gnp-1000.ps.
- вы хотите вывод PDF с добавленными числами, а не PS.
В Windows создайте файл addnumbers-make-pdf.bat
с таким содержанием:
gswin32c.exe ^
-o gnp-with-number-%1.pdf ^
-sDEVICE=pdfwrite ^
-g5030x5320 ^
-c "/Helvetica-Italic findfont 15 scalefont setfont 453 482 moveto (%1) show" ^
-f gnp-%1.ps
Теперь запустите эту команду в консоли cmd.exe
:
for /l %i in (1,1,100) do (addnumbers-make-pdfvim.bat %i)
В Linux создайте сценарий addnumbers-make-pdf.sh
Bash shell со следующим содержимым:
#!/bin/bash
gs \
-o gnp-with-number-${1}.pdf \
-sDEVICE=pdfwrite \
-g5030x5320 \
-c "/Helvetica-Italic findfont 15 scalefont setfont 453 482 moveto (${1}) show" \
-f gnp-${1}.ps
Теперь запустите эту команду в оболочке:
for i in $(seq 1 1000); do addnumbers-make-pdf.sh ${i} ; done
Обновление:
Ха !, это даже работает ;-) Я только что проверил это на Windows. Вот скриншот с оригиналом и наложенным файлом (в формате PDF):