PDFドキュメントでフォームフィールド名を表示する方法


25

多くのフォームフィールドを含むPDFドキュメントがあります。フォームフィールドの名前を確認する必要があります。Adobe Readerでこれを行うことはできますか?おそらくサードパーティのツール..?

回答:


3

これを行うためのユーザーフレンドリーなアプリケーションを見つける可能性がありますが、これは私が小さなVBScriptでそれを達成する方法です...

  1. webSupergooからABCpdfをダウンロードしてインストールします。こちらから入手できます...

  2. 次のスクリプトをテキストファイルにコピーし、「。vbs」ファイル拡張子で保存します。

  3. PDFファイルのコピーをスクリプトと同じフォルダーに配置し、「myForm.pdf」という名前を付けます。

  4. 実行するスクリプトファイルをダブルクリックします。


Set theDoc = CreateObject("ABCpdf8.Doc")
theDoc.Read "myForm.pdf"
theDoc.AddFont "Helvetica-Bold"
theDoc.FontSize=16
theDoc.Rect.Pin=1

Dim theIDs, theList
theIDs = theDoc.GetInfo(theDoc.Root, "Field IDs")
theList = Split(theIDs, ",")

For Each id In theList
    theDoc.Page = theDoc.GetInfo(id, "Page")
    theDoc.Rect.String = theDoc.GetInfo(id, "Rect")
    theDoc.Color.String = "240 240 255"
    theDoc.FillRect()
    theDoc.Rect.Height = 16
    theDoc.Color.String = "220 0 0"
    theDoc.AddText(theDoc.GetInfo(id, "Name"))
    theDoc.Delete(id)
Next

theDoc.Save "output.pdf"
theDoc.Clear
MsgBox "Finished"

スクリプトが終了すると、同じフォルダーに「output.pdf」という名前の別のPDFドキュメントが表示され、すべてのフィールド名がフィールドの上にオーバーレイされます。


37

私はこの質問が少し古いことを感謝していますが、他の誰かがそれに出くわした場合、PDF Toolkitを使用すると、次のようなコマンドで簡単にこれを行うことができます(フォームフィールドの元のPDFはdocsOfInterest.pdfと呼ばれます:

pdftk docOfInterest.pdf dump_data_fields

フィールドが多すぎる場合は、出力引数を使用して別の場所に抽出する方が適切です。出力ファイルとしてmyDataFieldsを使用して例えば: pdftk docOfInterest.pdf dump_data_fields output myDataFields
Jaider

2

私の知る限り、Acrobat Readerではできません。PDFライタープログラム(現在はAcrobat XI)を使用して実行できますが、かなり高価です。

いくつかのドキュメントで同じことをしなければなりませんでした。deskPDF Studio Xの試用版をダウンロードしました。メニューから[フォーム]> [フォームレイアウトの変更]に移動すると、フィールドの名前が表示されます。

無料試用版を使用すると、ドキュメントを保存すると、ドキュメントに透かしがスタンプされることに注意してください。


1

Aspose.comには、PDFのフォームフィールド名を識別する方法を説明する技術記事があります。この記事によると、ページ上のJavaコードを使用してこれを実現できます。

//First a input pdf file should be assigne
Form form = new Form("FilledForm.pdf");
//get all field names
String[] allfields = form.getFieldsNames();
// Create an array which will hold the location coordinates of Form fields
Rectangle[] box = new Rectangle[allfields.Length];
for (int i = 0; i < allfields.Length; i++)
{
  // Get the appearance attributes of each field, consequtively
  FormFieldFacade facade = form.getFieldFacade(allfields[i]);
  //Box in FormFieldFacade class holds field's location.
  box[i] = facade.getBox();
}
form.save();

// Now we need to add a textfield just upon the original one
FormEditor editor = new FormEditor("FilledForm.pdf", ”form_updated.pdf");
for (int i = 0; i < allfields.Length; i++)
{
  // add text field beneath every existing form field
  editor.addField(FormEditor.FLDTYP_TXT, "TextField" + i, allfields[i], 1, box[i].getX, box[i].getY(), box[i].getX() + 50, box[i].getY() + 10);
}
//Close the document
editor.save();

1

AspPDFと呼ばれるパッケージのオンラインライブデモがあるようです。こちらから直接リンクを見つけることができます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.