Стек PDF-изображений: вывод одной страницы - PullRequest
0 голосов
/ 28 июня 2018

Как я могу сложить изображения PDF (по вертикали) в один выходной PDF-файл? I.e.:

|-----|
|  1  |
|  2  |
| ... |
|-----|

(См. Пример ниже.) Я ищу PDF-эквивалент этого инструмента , который укладывает SVG-графику.


Обратите внимание, что это заметно отличается от многостраничной комбинации

|-----|
|  1  |
|-----|
|  2  |
|-----|
| ... |
|-----|

который можно получить, используя

gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile=merged.pdf 1.pdf 2.pdf ...

(См. этот ответ .)


Пример

Моя цель отлично описана @KenS в комментариях: я беру страницы 1 и 2, каждая из которых имеет размер 612x792, который должен превратиться в PDF с одной страницей, содержащей содержание разметки со страницы 1 вверху и маркировка контента со страницы 2 внизу. Размер этой страницы должен быть 612x1584.

Более наглядно:

enter image description here

1 Ответ

0 голосов
/ 29 июня 2018

ОК, поэтому программа PostScript из этого ответа , я думаю, выполнит свою работу. Это работает так, что вы устанавливаете размер носителя Ghostscript таким, каким вы хотите, чтобы конечный вывод выглядел, а затем просто запускаете программу через Ghostscript, передавая GS имя файла PDF.

Программа получает текущий размер носителя, а затем пытается уместить страницы из PDF на этот носитель. Очевидно, у меня нет вашего тестового файла, но я полагаю, что если вы настроите GS на носитель 612x1584, а затем запустите его, то GS решит, что страницы лучше всего подойдут без масштабирования и без поворота. Если это не так, мне нужно увидеть пример, чтобы понять, почему.

Если вы скопируете программу из ответа и сохраните ее с именем 2-up.ps, использование в комментариях при запуске программы:

% usage: gs -dNODISPLAY -sFile=____.pdf [-dVerbose] 2-up.ps

Так что вам нужно что-то вроде:

gs -dNODISPLAY -dDEVICEWIDTHPOINTS=612 -dDEVICEHEIGHTPOINTS=1584 -dFIXEDMEDIA -sDEVICE=pdfwrite -sOutputFile=out.pdf -sFile=<insert your full path and filename here> 2-up.ps

Это займет исходный файл PDF (определенный -sFile) и попытается создать его представление в 2 раза, записав вывод в новый файл PDF.

Обратите внимание на комментарии; он не пытается сохранить метаданные, такие как гиперссылки, потому что они основаны на страницах и будут неверными при перенумерации страниц) и будут работать только с текущим PDF-интерпретатором в Ghostscript. Он не будет работать с любым другим интерпретатором PostScript, потому что программа использует внутренние компоненты интерпретатора Ghostscript PDF, с которыми он не должен вмешиваться.

О, и программа предполагает, что все страницы в файле PDF имеют одинаковый размер, размер первой страницы.

Предполагается, что в будущем выпуске мы добавим (лучше) поддержку наложения в Ghostscript.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...