Как выполнить файл postscript для определенного номера страницы? - PullRequest
0 голосов
/ 20 марта 2012

У меня есть постскриптум из 100 строк.Я пытаюсь объединить 2 PDF в один с помощью Ghostscript.Я хочу объединить оба файла pdf в один, а затем применить мой код postscript следующим образом:

1) первые 50 строк файла postscript должны быть применены только к первой странице сгенерированного файла pdf * 1003.*

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 ]

3 голосов
/ 20 марта 2012

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

2 голосов
/ 22 мая 2012

Вы можете указать все имена файлов ps в одной команде, рядом с каждым именем выходного файла pdf. Это создаст требуемые PDF-файлы с выходным кодом PS, а затем вы можете объединить их в соответствии с требованиями, используя любую библиотеку PDF.

0 голосов
/ 18 апреля 2012

Вы можете разбить код PS на несколько итераций. Просто создайте один PDF с одной частью кода PS, а затем сгенерируйте другой PDF с оставшейся частью PS. После этого вы можете объединить оба PDF-файла с помощью ghost-скрипта и получить желаемый результат.

Я знаю, что это не мудрое решение, но пока вы можете двигаться вперед с этим.

Спасибо

...