2015-11-10 7 views
11

Я пытаюсь программно заполнить pdf, используя ruby. PDF содержит поля, позволяющие вводить текст:Заполните форму PDF с помощью Ruby

screenshot of pdf fields

Я имел успех в прошлом, используя pdftk через pdf_form драгоценный камень, однако он не находит поля в данном формате PDF:

$ pry 
[1] pry(main)> require 'pdf_forms' 
=> true 
[2] pry(main)> pdftk = PdfForms.new('/usr/local/bin/pdftk') 
=> #<PdfForms::PdftkWrapper:0x007fece7af6d98 @options={}, @pdftk="/usr/local/bin/pdftk"> 
[3] pry(main)> pdftk.get_field_names('designation.pdf') 
=> [] 

Как я могу заполнить pdf, используя ruby?

+0

Возможно, я не могу получить фактический файл PDF из ссылки, имеющейся в OP. Вы случайно не знаете, какую форму PDF вы имеете в документе?Существует несколько разных видов, и этот конкретный может быть неподдерживаемым. –

+0

не пробовал, но вы можете попробовать https://github.com/abevoelker/pdf_ravager [примечание: только Jruby] – Nimir

+0

PDF содержит чистую форму XFA (формы XFA не входят в спецификацию PDF и, следовательно, , не поддерживается повсеместно). – mkl

ответ

5

pdf-form gem будет работать только для pdf-файлов, созданных Adobe Acrobat. Пожалуйста, следуйте этим issue

Убедитесь в вашем PDF, вы создали текстовое поле с помощью Adobe Acrobat

+0

Установка pdftk не работает на El Capitan 10.11 –

+0

Подробнее здесь: https://gist.github.com/jvenator/9672772a631c117da151#gistcomment-1607813 – rylanb

5

Pdftk ничего более могущественная старая версия IText составленной с использованием GCJ. Заполнение форм с использованием PdfTk возможно, если форма содержит поля, определенные с использованием технологии AcroForm. Это не относится к форме, о которой вы говорите. Я открыл форму в iText RUPS и это то, что я вижу, когда я смотрю внутри вкладки формы:

enter image description here

Видит /Fields массив? Он пуст: []. Это означает, что PdfTk не заполняется. Тогда где - форма?

Форма описана с использованием архитектуры XML-форм (XFA). Существует не так много программных продуктов, которые могут заполнить форму XFA. Черт, нет просмотра PDF-файлов, которые позволяют просматривать форму. Например, это то, что я вижу, когда я открыть форму в браузере:

enter image description here

Я знаю двух производственных линий, которые могут удовлетворить ваши потребности:

  1. Adobe программное обеспечение: например Adobe LiveCycle ES.
  2. iText software: вы можете заполнить форму AGPL версией iText, введя XML (см. How can I set XFA data in a static XFA form in iTextSharp and get it to save?); вы можете сгладить форму с XFA Worker iText (см. How can I flatten a XFA PDF Form using iTextSharp?).

Будучи генеральным директором iText Group, я бы рекомендовал использовать iText (вы используете старую версию уже в любом случае, если используете PdfTk). iText доступен как библиотека Java, поэтому использование JRuby - ваш лучший шанс удовлетворить ваши требования.

Другим вариантом является полная переработка формы в форме, основанной на технологии AcroForm, а не технологии XFA.

Смежные вопросы