Как сделать слияние сверху PDF?

Как указано в комментарии, sqlalchemy поддерживает JSON в версии 1.3, которую можно скачать здесь , и в настоящее время это бета-версия. Документация для новой версии уже доступна , а также список изменений из версии 1.2.

12
задан 10 December 2008 в 16:25
поделиться

5 ответов

Вы могли, вероятно, посмотреть на библиотеку PDF как iText. Если у Вас есть некоторое знание программирования и немного времени, Вы могли бы написать некоторый код, который добавляет контактную информацию к PDFs

2
ответ дан 2 December 2019 в 19:56
поделиться

Если бы Вы не можете получить шаблон в другом формате, чем PDF, простое специальное решение было бы к

  • преобразуйте PDF в изображение
  • поместите изображение в backgroud Вашего (OpenOffice.org) документ
  • поля слияния положения сверху изображения
  • сделайте слияние и печать
1
ответ дан 2 December 2019 в 19:56
поделиться

Для решения без суеты, без путаницы используйте iText для простого добавления текста к PDF. Например, можно сделать следующее для добавления текста к документу PDF, однажды загруженному:

PdfContentByte cb= ...;
cb.BeginText();
cb.SetFontAndSize(font, fontSize);
float x = ...;
float y = ...;
cb.SetTextMatrix(x, y);
cb.ShowText(fieldValue);
cb.EndText();    

Оттуда на, сохраните его как другой файл и распечатайте его.

Однако я нашел, что поля формы являются способом пойти с генерацией документов PDF из шаблонов.

Если у Вас есть шаблон с полями формы (добавленный с Adobe Acrobat), у Вас есть один из двух вариантов:

  • Создайте файл FDF, который является по существу списком значений для полей на форме. FDF является простым текстовым документом, который ссылается на оригинал документа так, чтобы, когда Вы открываете PDF, загрузки документа со значениями полей, предоставленными FDF.
  • С другой стороны, загрузите шаблон с библиотекой как iText / iTextSharp, заполните поля формы вручную и сохраните его как отдельный PDF.

Демонстрационный файл FDF похож на это (украденный от Планеты PDF):

%FDF-1.2
%âãÏÓ
1 0 obj
<<<
 /F(Example PDF Form.pdf)
 /Fields[
  <<
  /T(myTextField)
  /V(myTextField default value)
  >>
  ]
 >>
>> endobj trailer
<>
%%EOF

Из-за простого формата и небольшого размера FDF, это - предпочтительный подход, и подход должен работать хорошо на любом языке.

Что касается заполнения полей программно, можно использовать iText следующим образом:

PdfAcroForm acroForm = writer.AcroForm;
acroForm.Put(new PdfName(fieldInfo.Name), new PdfString(fieldInfo.Value));
1
ответ дан 2 December 2019 в 19:56
поделиться

Вероятно, лучший способ состоял бы в том, чтобы генерировать другой PDF с недостающим текстом и наложить один PDF по другому. Быстрый Google нашел эту ссылку, показывающую, как сделать это в Acrobat, и я уверен, что также существуют другие методы.

http://forums.macrumors.com/showthread.php?t=508226

1
ответ дан 2 December 2019 в 19:56
поделиться

Теперь я сделал аккаунт. Я исправил это с помощью хитроумного pdftk.

В своих поисках я полностью упускал из виду функцию «фон» и «наложение». Мое решение было таким:

pdftk names.pdf background boat_background.pdf output out.pdf

Создание names.pdf , которое вы можете легко сделать с помощью Python reportlab или аналогичных сценариев создания PDF. Лучше всего использовать для этого код: создание 6К страниц заняло несколько часов в LibreOffice / OpenOffice, в то время как при использовании Python это заняло всего несколько секунд.

7
ответ дан 2 December 2019 в 19:56
поделиться
Другие вопросы по тегам:

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