2015-11-10 46 views
11

Rubyを使ってプログラムでPDFを記入しようとしています。 PDFファイルは、テキストを入力する許可のフィールドがあります。Rubyを使ってPDFフォームに記入する

screenshot of pdf fields

私はしかし、それは、この特定のPDFファイル内のフィールドを見つけることができません、pdf_form宝石経由pdftkを使用して、過去に成功を収めてきました:

$ 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') 
=> [] 

ruby​​を使用してpdfを書き込むにはどうすればよいですか?

+0

OPのリンクから実際のPDFファイルを取得できないようです。文書にどのような種類のPDFがあるか知っていますか?いくつかの種類があり、この特定のものはサポートされていない可能性があります。 –

+0

試してみませんでしたが、https://github.com/abevoelker/pdf_ravagerを試してみてください。[note:Jrubyのみ] – Nimir

+0

PDFには純粋なXFAフォームが含まれています(XFAフォームはPDF仕様の一部ではないため、 、普遍的にはサポートされていません)。 – mkl

答えて

5

pdf-form gemは、によって生成されたpdfに対してのみ動作します。Adobe Acrobatこのissue

があなたのPDFに、あなたは私はあなたがJRubyとiTextのを使用するように強制することができる怖いですAdobe Acrobatの

+0

エルキャピタンでpdftkのインストールが失敗する10.11 –

+0

修正内容:https://gist.github.com/jvenator/9672772a631c117da151#gistcomment-1607813 – rylanb

5

PdfTkはGCJを使用してコンパイルiTextのの強大な古いバージョン以外の何ものでもありません。フォームにAcroFormテクノロジを使用して定義されたフィールドが含まれている限り、PdfTkを使用してフォームを記入することは可能です。これはあなたが参照しているフォームの場合ではありません。私はiText RUPSでフォームを開いたし、これは私がフォーム]タブの中を見たときに私が見たものである。

enter image description here

あなたが/Fields配列を参照していますか?それは空です:[]。これは、PdfTkが記入するものは何もないことを意味します。では、フォームはどこですか?

フォームは、XMLフォームアーキテクチャ(XFA)を使用して記述されています。 XFAフォームに記入できるソフトウェア製品はあまりありません。ヘック、あなたがフォームを表示できる多くのPDFビューアはありません。例えば、これは私が私のブラウザでフォームを開いたときに、私が見たものである。

enter image description here

私はあなたのニーズを満たすことができる2本の製品ラインを知っている:

  1. アドビソフトウェア:インスタンスのAdobeのためのLiveCycle ES。
  2. iTextソフトウェア:XMLを注入してiTextのAGPLバージョンでフォームを記入できます(How can I set XFA data in a static XFA form in iTextSharp and get it to save?参照)。 iTextのXFA Worker(How can I flatten a XFA PDF Form using iTextSharp?を参照)を使用してフォームを平坦化することができます。

iTextグループのCEOであり、私はiTextを使用することをお勧めします(PdfTkを使用している場合は古いバージョンを使用しています)。 iTextはJavaライブラリとして利用できるので、JRubyを使用するのがあなたの要求を満たす最良の機会です。

XFAテクノロジではなく、AcroFormテクノロジに基づいたフォームにフォームを完全に再設計することもできます。

関連する問題