Form alan adlarını pdf belgesinde nasıl görüntüleyebilirim?


25

Üzerinde birçok form alanı bulunan bir pdf belgesine sahibim. Form alanlarının adlarını görmem gerekiyor. Bunu Adobe Reader ile yapabilir miyim? Belki bir üçüncü taraf aracı ..?

Yanıtlar:


3

Sizin için bunu yapmak için kullanıcı dostu bir uygulama bulacaksınız, ancak bu biraz VBScript ile nasıl elde edeceğim ...

  1. ABCpdf'yi webSupergoo'dan indirip, burada bulabilirsiniz ...

  2. Aşağıdaki betiği bir metin dosyasına kopyalayın ve '.vbs' dosya uzantısıyla kaydedin.

  3. PDF dosyanızın bir kopyasını 'myForm.pdf' olarak adlandırıp, komut dosyasıyla aynı klasöre yerleştirin.

  4. Çalıştırmak için komut dosyasını çift tıklayın.


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"

Betik bittikten sonra, 'output.pdf' adında başka bir PDF belgesi bulmalısınız, aynı klasörde, tüm alan adları alanların üzerine yerleştirilmiştir.


37

Bu sorunun biraz eski olduğunu biliyorum, ancak başka birisinin karşısına çıkması durumunda, PDF Araç Takımı bunu çok basit bir şekilde yapmanıza izin verecek bir komutla (form alanlarını istediğiniz PDF'nin docsOfInterest.pdf olarak adlandırıldığı) yapmanıza izin verecektir:

pdftk docOfInterest.pdf dump_data_fields

Alanlar çok fazlaysa, çıktı argümanını kullanarak başka bir yere çıkarmak daha iyi olur. örneğin myDataFields'ı çıktı dosyası olarak kullanmak:pdftk docOfInterest.pdf dump_data_fields output myDataFields
Jaider

2

Bildiğim kadarıyla Acrobat Reader ile yapamazsınız. PDF yazıcı programlarını (Şu anda Acrobat XI) kullanabilirsiniz, ancak oldukça pahalıdır.

Sadece birkaç belge için aynı şeyi yapmak zorunda kaldım. Az önce deskPDF Studio X'un deneme sürümünü indirdim . Menüden Formlar> Form Düzenini Değiştir seçeneğine gitmek alanların adını görmenizi sağlar.

Ücretsiz deneme sürümleriyle çalışmanın, belgeyi kaydederseniz filigranla damgalayacağını unutmayın.


1

Aspose.com'da PDF'ler için form alanı adlarının nasıl tanımlanacağını açıklayan teknik bir makale var. Bu makaleye göre, sayfadaki Java kodunu kullanarak bunu başarabilirsiniz.

//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();

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.