Стек PDF изображений: вывод одной страницы
Как я могу сложить изображения PDF (по вертикали) в один выходной PDF-файл страницы? То есть:
|-----|
| 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.
Более наглядно:
1 ответ
Итак, программа 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 в будущем выпуске.