Ü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ı ..?
Ü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:
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 ...
ABCpdf'yi webSupergoo'dan indirip, burada bulabilirsiniz ...
Aşağıdaki betiği bir metin dosyasına kopyalayın ve '.vbs' dosya uzantısıyla kaydedin.
PDF dosyanızın bir kopyasını 'myForm.pdf' olarak adlandırıp, komut dosyasıyla aynı klasöre yerleştirin.
Ç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.
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
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.
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();
Görünüşe göre AspPDF adında bir paketin çevrimiçi canlı demosu var. Burada doğrudan bir link bulabilirsiniz .
pdftk docOfInterest.pdf dump_data_fields output myDataFields