Как выполнить файл 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.

Другие вопросы по тегам