Как выполнить файл postscript для определенного номера страницы?
У меня есть постскриптум из 100 строк. Я пытаюсь объединить 2 PDF в один с помощью Ghostscript. То, что я хочу сделать, это объединить оба PDF в один, а затем применить мой код PostScript следующим образом:
1) первые 50 строк файла postscript должны быть применены только к первой странице сгенерированного PDF
2) оставшиеся 50 строк для применения на 2-й странице сгенерированного PDF.
Я использовал следующий код для этого:
gs -q -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -sOutputFile=output.pdf test.ps pdf_1.pdf pdf_2.pdf;
я пытался showpage
вариант postscript, но который вставляет пустую страницу в сгенерированный выходной pdf, и это не мое требование.
Кто-нибудь знает, как я могу это сделать?
3 ответа
Вы можете разбить код PS на несколько итераций. Просто создайте один PDF с одной частью кода PS, а затем сгенерируйте другой PDF с оставшейся частью PS. После этого вы можете объединить оба PDF-файла с помощью ghost-скрипта и получить желаемый результат.
Я знаю, что это не мудрое решение, но пока вы можете двигаться вперед с этим.
Спасибо
showpage не является опцией Ghostscript, а оператором PostScript.
Поскольку ваши входные файлы в формате PDF, это нетривиальная задача. Интерпретатор PDF выполнит системное определение showpage для каждой страницы во входном PDF-файле, переопределяя все, что вы вставляете в PostScript.
Не пытаясь это сделать, я считаю, что вам нужно создать процедуру EndPage, которая выполняет различные действия в зависимости от количества страниц (это техника программирования PostScript).
Например:
/DoPage1 {
%% Your code goes in here
} def
/DoPage2 {
%% Your code goes in here
}
<<
/EndPage {
2 lt{
1 eq {
DoPage1
}{
DoPage2
} ifelse
}{
pop
} ifelse
}
>> setpagedevice
Вам нужно будет запустить этот код до 2 файлов PDF, например:
gs .... setup.ps file1.pdf file2.pdf
Вы можете указать все имена файлов ps в одной команде, рядом с каждым именем выходного файла pdf. Это сгенерирует требуемые PDF-файлы с выходным кодом PS, а затем вы сможете объединить их в соответствии с требованиями, используя любую библиотеку PDF.