Хтось знає про хороший спосіб розділити сторінки PDF у середині на дві нові сторінки?
Щоб було зрозуміло, я не намагаюся розділити вже наявні сторінки з pdf; Я намагаюся створити дві нові сторінки з існуючої однієї сторінки.
Хтось знає про хороший спосіб розділити сторінки PDF у середині на дві нові сторінки?
Щоб було зрозуміло, я не намагаюся розділити вже наявні сторінки з pdf; Я намагаюся створити дві нові сторінки з існуючої однієї сторінки.
Відповіді:
Спробуйте BRISS .
Це дозволяє розділити кожну сторінку на стільки підсторінок, як визначити регіони з графічним інтерфейсом. Він об'єднує всі подібні сторінки в групи для вас, так що ви можете визначити регіони для цієї групи один раз.
Це кросплатформна, безкоштовна та з відкритим кодом.
Вирішити це можна за допомогою Ghostscript. pdftk
один не може цього зробити (наскільки мені відомо). Я дам вам кроки командного рядка, щоб зробити це вручну. Сценарій це як процедуру буде легко, також з різними параметрами для розмірів сторінки та номерів сторінок. Але ви сказали, що можете це зробити самі ;-)
... і для задоволення від цього, я нещодавно це робив не з вхідним файлом, на якому розміщені сторінки "подвоєння", а з "високими рівнями". Ви можете прочитати відповідь на цей випадок у цій іншій відповіді .
Ваш випадок ще простіший. У вас, здається, є щось подібне до цього:
+------------+------------+ ^
| | | |
| 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 A B \
output single-pages-output.pdf
verbose
Зроблено. Ось бажаний результат. 4 різні сторінки розміром 421x595 пт.
Результат:
+------------+ +------------+ +------------+ +------------+ ^
| | | | | | | | |
| 1 | | 2 | | 3 | | 4 | |
| | | | | | | | 595 pt
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
+------------+ +------------+ +------------+ +------------+ v
<-- 421 pt --> <-- 421 pt --> <-- 421 pt --> <-- 421 pt -->
"<</PageOffset [-421 0]>> setpagedevice"
. Я думаю, це залежить від орієнтації вихідного файлу. Тим не менш, чудова відповідь. :)
Завдяки @marttt та їхній відповіді в Unix & Linux .
Ви можете використовувати mutool
(що входить до складу mupdf
):
mutool poster -x 2 input.pdf output.pdf
Ви також можете використовувати, -y
якщо ви хочете виконати вертикальний розкол.
Щоб розширити відповідь @ Курта (оскільки мені не вистачає репутаційних балів для коментарів), спершу переконайтесь, що використовувані вами розміри не базуються на розмірах Crop Box, якщо вони відрізняються від розмірів Media Box. Розмір виходу базується на розмірах Media Box, але, схоже, для зміщення використовується розмір Crop Box.
Для сторінки з воротами, на якій розміщено медіа-скриньку розміром 20.0833 х 13.833 і поле для обрізки розміром 19,25 х 13,0, що було таким же, як вікно обрізки в моєму документі, розділити його на дві сторінки в Ubuntu для лівої сторони:
gs -o left.pdf -sDEVICE=pdfwrite -g7230x9960 -c "<</PageOffset [0 0]>> setpagedevice" -f gatefold.pdf
Права сторона:
gs -o right.pdf -sDEVICE=pdfwrite -g7230x9960 -c "<</PageOffset [-693 0]>> setpagedevice" -f gatefold.pdf
А потім зшити їх pdftk left.pdf right.pdf output final.pdf
.
Альтернативою було б встановити поле обрізання таким же, як медіабокс; тоді зміщення складе -723. Але тоді обрізання доведеться скинути, щоб обрізати, щоб сторінки виглядали безшовними. В іншому випадку встановіть носій для обрізання.