Вы не можете ссылаться на сам документ в обновлении (пока). Вам нужно будет перебирать документы и обновлять каждый документ с помощью функции. См. этот ответ для примера, или этот для серверной стороны eval()
.
Сообщение Разговора Ruby предлагает использовать pdftk инструментарий для слияния PDFs.
Это должно быть относительно просто для вызова pdftk, поскольку внешний процесс и иметь его обрабатывает слияние. PDF:: Устройство записи может быть излишеством, потому что все, что Вы надеетесь выполнять, является простым, добавляют.
Можно сделать это путем преобразования в PostScript и назад. Файлы PostScript могут быть связаны тривиально. Например, вот сценарий Bash, который использует инструменты Ghostscript ps2pdf и pdf2ps:
#!/bin/bash for file in 01_foo.pdf 02_bar.pdf 03_baz.pdf; do pdf2ps $file - >> temp.ps done ps2pdf temp.ps output.pdf rm temp.ps
Я не знаком с Ruby, но существует почти наверняка некоторая функция (мог бы быть назван system()
(просто предположение)), который вызовет данную командную строку.
Если Вы имеете ghostscript на своей платформе, выходите из оболочки и выполняете эту команду:
gs-dBATCH-dNOPAUSE-q-sDEVICE=pdfwrite -sOutputFile=finished.pdf <Ваш источник файлы PDF>
Любой код Ruby, чтобы сделать это в реальном приложении, вероятно, будет крайне медленным. Я попытался бы выследить инструменты Unix, чтобы сделать задание. Это - одна из красот использования Mac OS X, это имеет очень быстрые встроенные возможности PDF. Следующей лучшей вещью является, вероятно, инструмент Unix.
На самом деле я имел некоторый успех с rtex. Если Вы посмотрите здесь, то Вы найдете некоторую информацию об этом. Это намного быстрее, чем какая-либо библиотека Ruby, которой я пользовался, и я - вполне уверенный латекс, имеет функцию для введения данных PDF из других источников.
Я не думаю, что Ruby имеет инструменты для этого. Вы могли бы проверить ImageMagick и Каир. ImageMagick может использоваться для того, чтобы связать несколько изображений/документов, но я не уверен в случае PDF.
С другой стороны существуют, конечно, инструменты Windows (коммерческие), чтобы сделать такого рода вещь.
Я использую Каир сам для генерации PDF. Если бы PDF прибывает от Вас, возможно, который был бы решением (он действительно поддерживает несколько страниц).Удачи!
Я предложил бы смотреть на код для PDFCreator (VB, если бы я не ошибаюсь, но это не должно иметь значения, так как Вы просто реализовали бы подобный код на другом языке), который использует GhostScript (лицензия GNU). Или просто выройте прямо в сам GhostScript; существует также слой фасада доступный названный GhostPDF, который может сделать то, что Вы хотите.
Если можно управлять GhostScript с VB, можно сделать это с C, что означает, что можно сделать это с Ruby.
Ruby также имеет IO.popen, который позволяет Вам обращаться к внешним программам, которые могут сделать это.
Я попробовал решение pdftk, и у меня возникли проблемы как на SnowLeopard, так и на Tiger. Установка на Tiger фактически нанесла ущерб моей системе и оставила меня неспособным запускать скрипт / сервер, к счастью, это машина, которая не использовалась для веб-разработки.
Впоследствии нашел другой вариант: - joinPDF. Установка прошла безболезненно и быстро, и она отлично работает.
Также попробовал GhostScript, и он с треском провалился (не смог прочитать шрифты, и в итоге я получил PDF-файлы, в которых были только изображения).
Но если вы ищете решение этой проблемы, вы можете попробовать joinPDF.