В настоящее время я работаю над функцией, которая будет вставлять номер страницы в PDF через ghostscript. В качестве первого подхода я пытался следовать тем же командам, что и для вставки водяного знака на страницу каждого файла, - следующим образом:
gs -dBATCH -dNOPAUSE -dSAFER -sDEVICE=pdfwrite -sOutputFile=out.pdf watermark.ps in.pdf
В этом случае водяной знак будет напечатан на странице каждого файла - такое поведение я ожидал. Однако для печати номера страницы на каждой странице используется инкрементный номер, который будет напечатан на каждой странице, например, для каждой страницы должен быть напечатан другой номер. В настоящее время мой код выглядит так:
<<
/EndPage
{
2 eq { pop false }
{
gsave
/Arial 8 selectfont
550 820 moveto (page 1) show
grestore
true
} ifelse
} bind
>> setpagedevice
И команда для вызова этого почти такая же для водяного знака, просто изменив второй параметр:
gs -dBATCH -dNOPAUSE -dSAFER -sDEVICE=pdfwrite -sOutputFile=out.pdf pages.ps in.pdf
Я пытаюсь вставить параметры в этот файл "pages.ps" для динамической печати страниц. Примерно так:
550 820 moveto (attr[0]) show
И вызов через командную строку так:
gs -dBATCH -dNOPAUSE -dSAFER -sDEVICE=pdfwrite -sOutputFile=out.pdf pages.ps "pageNumber" in.pdf
К сожалению, это не работает!
Я борюсь с этим в течение нескольких дней, и любая помощь будет оценена. Любой другой подход будет также полезен.
Ура!