Действительно ли возможно объединить серию PDFs в одно использование Ruby?

Вы не можете ссылаться на сам документ в обновлении (пока). Вам нужно будет перебирать документы и обновлять каждый документ с помощью функции. См. этот ответ для примера, или этот для серверной стороны eval().

10
задан Community 23 May 2017 в 12:09
поделиться

7 ответов

Сообщение Разговора Ruby предлагает использовать pdftk инструментарий для слияния PDFs.

Это должно быть относительно просто для вызова pdftk, поскольку внешний процесс и иметь его обрабатывает слияние. PDF:: Устройство записи может быть излишеством, потому что все, что Вы надеетесь выполнять, является простым, добавляют.

14
ответ дан 3 December 2019 в 20:07
поделиться

Можно сделать это путем преобразования в 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() (просто предположение)), который вызовет данную командную строку.

2
ответ дан 3 December 2019 в 20:07
поделиться

Если Вы имеете ghostscript на своей платформе, выходите из оболочки и выполняете эту команду:

gs-dBATCH-dNOPAUSE-q-sDEVICE=pdfwrite -sOutputFile=finished.pdf <Ваш источник файлы PDF>

2
ответ дан 3 December 2019 в 20:07
поделиться

Любой код Ruby, чтобы сделать это в реальном приложении, вероятно, будет крайне медленным. Я попытался бы выследить инструменты Unix, чтобы сделать задание. Это - одна из красот использования Mac OS X, это имеет очень быстрые встроенные возможности PDF. Следующей лучшей вещью является, вероятно, инструмент Unix.

На самом деле я имел некоторый успех с rtex. Если Вы посмотрите здесь, то Вы найдете некоторую информацию об этом. Это намного быстрее, чем какая-либо библиотека Ruby, которой я пользовался, и я - вполне уверенный латекс, имеет функцию для введения данных PDF из других источников.

-1
ответ дан 3 December 2019 в 20:07
поделиться

Я не думаю, что Ruby имеет инструменты для этого. Вы могли бы проверить ImageMagick и Каир. ImageMagick может использоваться для того, чтобы связать несколько изображений/документов, но я не уверен в случае PDF.

С другой стороны существуют, конечно, инструменты Windows (коммерческие), чтобы сделать такого рода вещь.

Я использую Каир сам для генерации PDF. Если бы PDF прибывает от Вас, возможно, который был бы решением (он действительно поддерживает несколько страниц).Удачи!

0
ответ дан 3 December 2019 в 20:07
поделиться

Я предложил бы смотреть на код для PDFCreator (VB, если бы я не ошибаюсь, но это не должно иметь значения, так как Вы просто реализовали бы подобный код на другом языке), который использует GhostScript (лицензия GNU). Или просто выройте прямо в сам GhostScript; существует также слой фасада доступный названный GhostPDF, который может сделать то, что Вы хотите.

Если можно управлять GhostScript с VB, можно сделать это с C, что означает, что можно сделать это с Ruby.

Ruby также имеет IO.popen, который позволяет Вам обращаться к внешним программам, которые могут сделать это.

0
ответ дан 3 December 2019 в 20:07
поделиться

Я попробовал решение pdftk, и у меня возникли проблемы как на SnowLeopard, так и на Tiger. Установка на Tiger фактически нанесла ущерб моей системе и оставила меня неспособным запускать скрипт / сервер, к счастью, это машина, которая не использовалась для веб-разработки.

Впоследствии нашел другой вариант: - joinPDF. Установка прошла безболезненно и быстро, и она отлично работает.

Также попробовал GhostScript, и он с треском провалился (не смог прочитать шрифты, и в итоге я получил PDF-файлы, в которых были только изображения).

Но если вы ищете решение этой проблемы, вы можете попробовать joinPDF.

2
ответ дан 3 December 2019 в 20:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: