Склеивание (верстка) PDF документов
У меня есть несколько PDF-документов формата A4, которые я бы хотел (два в один) "склеить" в PDF-документ формата A3. Таким образом, я получу от 2PDFs A4 односторонний PDF A3. Я нашел отличную утилиту PDFToolkit и некоторые другие, но ни один из них не может быть использован для "склеивания" двух соседних документов.
11 ответов
Нашел следующий (бесплатный и с открытым исходным кодом) инструмент для выполнения Imposition под названием Impose (спасибо danio за подсказку). Это решило мою проблему отлично.
РЕДАКТИРОВАТЬ: Вот как это делается:
Используйте PDF Toolkit для объединения двух файлов PDF в один (два формата A4)
pdftk File1.pdf File2.pdf cat output OutputFile.pdf
Создайте из этого одну страницу (одну A3):
java -cp Multivalent.jar tool.pdf.Impose -dim 2x1 -verbose -paper-size "42.2x29.9cm" -layout "1,2" OutputFile.pdf
Я только что натолкнулся на хороший инструмент на superuser.com под названием PDFjam, который может выполнить все вышеперечисленное одной командой:
pdfjam --nup 2x1 file1.pdf file2.pdf --outfile DONESKI.pdf
У него есть и другие стандартные функции, такие как размер страницы, плюс приятный синтаксис для более сложных сопоставлений страниц (сложное переупорядочение страниц, необходимое для правильной верстки страниц в стиле буклета).
Он построен поверх TeX, что бы это ни было. Установка очень проста в Ubuntu: вы можете просто apt-get install pdfjam
, В Mac OS я рекомендую получить BasicTeX (google "mactex basictex"; ТАК думает, что я спамер и не дам мне опубликовать ссылку).
Это намного проще и удобнее, чем устанавливать как pdftk, так и Multivalent (как на Mac OS для dev, так и на Ubuntu для развертывания), что в любом случае мне не удавалось...!
Я хотел бы рекламировать мои pdftools
Он написан на Python, поэтому должен работать на любой платформе. Это обертка для Latex (пакеты pdfpages), но она может многое сделать с помощью одной командной строки: объединить PDF-файлы, объединить их (несколько входных страниц на одну выходную страницу) и пронумеровать страницы выходного файла (вы указываете местоположение и формат числа) Это все еще нуждается в некоторой работе, но я думаю, что это довольно стабильно, чтобы быть пригодным для использования прямо сейчас:)
Хороший, мощный инструмент верстки с открытым исходным кодом включен в пакет PoDoFo: http://podofo.sourceforge.net/ Он работает для меня. С некоторыми планами наложения можно ознакомиться по адресу: http://www.av8n.com/computer/prepress/ PoDoFo может делать много других вещей, не только навязывание.
Другим полезным инструментом для наложения является Bookbinder (на сайте Quantumelephant). Он имеет графический интерфейс, который привлекает неспециалистов. Он не такой гибкий и мощный, как PoDoFo, но он может выполнять верстку.
pdftk более или менее необходим, но не будет навязываться.
pdfjam для меня бесполезен, потому что существует широкий диапазон допустимых файлов pdf, которые он не может обработать.
У меня никогда не было возможности заставить работать многовалентность.
Это помещает две страницы с буквами в альбомной ориентации на один лист с портретной буквой, который должен быть "связан" (то есть сложен) вдоль верхней части.
pdftops $1 - |
psbook |
pstops -w11in -h8.5in '4:1@.65(.5in,0in)+0@.65(.5in,5.5in),2U@.65(8in,5.5in)+3@.65U(8in,11in)' |
ps2pdf - $(basename $1 .pdf).psbook.pdf
Кстати, я делаю это часто, поэтому я, вероятно, отправлю больше "ответов" на этот вопрос, чтобы отслеживать успешные спецификации страниц pstops. Дайте мне знать, если это неуместное использование SO.
То, что вы хотите сделать, это наложение. Существуют коммерческие инструменты для наложения PDF-файлов, такие как ARTS crackerjack и Quite imposing, но они довольно дорогие (500 долларов США), требуют наличия копии acrobat professional и излишни для наложения 2 страниц формата A4 на лист формата A3.
Я бы объединил две страницы формата А4 в один двухстраничный PDF-файл, используя pdftk. Затем напечатайте в PDF, используя что-то вроде PrimoPDF, и попросите его печатать в формате A3, по две страницы на сторону.
Я только что проверил эту печать несколько слайдов из PowerPoint. Это работало отлично. Я выбрал формат бумаги A3 в качестве формата бумаги в PowerPoint, а затем решил напечатать 2 страницы с каждой стороны. Напечатано на Primo и вуаля, у меня есть два слайда формата A4 на A3.
Вы можете поместить несколько входных страниц на одну выходную страницу, используя BookletImposer.
И вы можете изменить порядок страниц и объединить несколько файлов PDF, используя PDF Mod.
С помощью этих двух инструментов вы можете делать практически все, что вам нужно, с PDF-файлами (кроме редактирования их содержимого).
Для пользователей Ubuntu оба эти инструмента доступны в Центре программного обеспечения Ubuntu.
Со стороны Postscript, инструмент с именем pstops способен перестраивать страницы файла Postscript любым способом, который вы можете себе представить. Я не слышал о таком инструменте для PDF. Но pdf2ps и ps2pdf существуют. Таким образом, не очень идеальное решение может быть комбинацией pdf2ps, pstops и ps2pdf.
У меня была похожая проблема. Я пытался наложить, но это давало мне
Exception in thread "main" java.lang.NoClassDefFoundError: tool/pdf/Impose
Caused by: java.lang.ClassNotFoundException: tool.pdf.Impose
(...)
Could not find the main class: tool.pdf.Impose. Program will exit.
Затем я попробовал PDF Snake, который не является бесплатным или открытым исходным кодом, но имеет абсолютно неограниченную 30-дневную пробную версию. Он работал отлично, после настройки параметров для достижения того, что я хотел. Это отличный инструмент. Я бы определенно купил его, если бы он не был таким дорогим! В любом случае, я решил оставить свои 2 цента на случай, если у кого-то возникнет та же проблема, что и с Impose.
Посмотри на это
http://sourceforge.net/projects/proposition/
Для запуска требуется laTex, но когда это происходит, работает очень хорошо
С уважением