Вирішити це можна за допомогою Ghostscript. pdftk
один не може цього зробити (наскільки мені відомо). Я дам вам кроки командного рядка, щоб зробити це вручну. Сценарій це як процедуру буде легко, також з різними параметрами для розмірів сторінки та номерів сторінок. Але ви сказали, що можете це зробити самі ;-)
Як вирішити це за допомогою Ghostscript ...
... і для задоволення це я нещодавно робив це не з вхідним файлом, на якому розміщені сторінки "подвійні", а з "високими". Відповідь на цей ви можете прочитати тут .
Ваш випадок ще простіший. У вас, здається, є щось подібне до цього:
+------------+------------+ ^
| | | |
| 1 | 2 | |
| | | 595 pt
| | | |
| | | |
| | | |
+------------+------------+ v
^
fold
v
+------------+------------+ ^
| | | |
| 3 | 4 | |
| | | 595 pt
| | | |
| | | |
| | | |
+------------+------------+ v
<---------- 842 pt -------->
Ви хочете створити 1 PDF з 4 сторінок, кожна з яких має розмір 421 pt x 595 pt.
Перший крок
Давайте спочатку витягнемо ліві розділи з кожної із вхідних сторінок:
gs \
-o left-sections.pdf \
-sDEVICE=pdfwrite \
-g4210x5950 \
-c "<</PageOffset [0 0]>> setpagedevice" \
-f double-page-input.pdf
Що зробили ці параметри?
По-перше, знайте, що в PDF 1 дюйм == 72 бали . Потім решта:
-o ...............:
Вихідний файл імен. Безслідно також використовує -dBATCH -dNOPAUSE -dSAFER
.
-sDEVICE=pdfwrite :
ми хочемо PDF як вихідний формат.
-g................:
встановлює розмір вихідного носія в пікселях. Роздільна здатність pdfwrite за замовчуванням - 720 dpi. Отже, помножте на 10, щоб отримати збіг для PageOffset.
-c "..............:
просить Ghostscript обробити даний фрагмент коду PostScript безпосередньо перед головним вхідним файлом (з яким потрібно слідувати -f
).
<</PageOffset ....:
встановлює зміщення зображення сторінки на носії. (Звичайно, для лівих сторінок зсув на [0 0]
реальну дію не має.)
-f ...............:
обробити цей вхідний файл.
Якого результату досяг остання команда?
Цей:
Output file: left-sections.pdf, page 1
+------------+ ^
| | |
| 1 | |
| |595 pt
| | |
| | |
| | |
+------------+ v
Output file: left-sections.pdf, page 2
+------------+ ^
| | |
| 3 | |
| |595 pt
| | |
| | |
| | |
+------------+ v
<-- 421 pt -->
Другий крок
Далі, правильні розділи:
gs \
-o right-sections.pdf \
-sDEVICE=pdfwrite \
-g4210x5950 \
-c "<</PageOffset [-421 0]>> setpagedevice" \
-f double-page-input.pdf
Зверніть увагу на негативне зміщення, оскільки ми зміщуємо сторінку вліво, зберігаючи зону перегляду нерухомою.
Результат:
Output file: right-sections.pdf, page 1
+------------+ ^
| | |
| 2 | |
| |595 pt
| | |
| | |
| | |
+------------+ v
Output file: right-sections.pdf, page 2
+------------+ ^
| | |
| 4 | |
| |595 pt
| | |
| | |
| | |
+------------+ v
<-- 421 pt -->
Останній крок
Тепер ми об’єднуємо сторінки в один файл. Ми могли б це зробити і з ghostscript, але будемо використовувати pdftk
замість цього, оскільки це швидше для цієї роботи:
pdftk \
A=right-sections.pdf \
B=left-sections.pdf \
shuffle \
output single-pages-output.pdf
verbose
Зроблено. Ось бажаний результат. 4 різні сторінки, розміром 421x595 пт.
Результат:
+------------+ +------------+ +------------+ +------------+ ^
| | | | | | | | |
| 1 | | 2 | | 3 | | 4 | |
| | | | | | | |5595 pt
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
+------------+ +------------+ +------------+ +------------+ v
<-- 421 pt --> <-- 421 pt --> <-- 421 pt --> <-- 421 pt -->