Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.
Aspose.PDF for .NET предоставляет возможность создавать, редактировать и заполнять уже созданные PDF-формы. Пространство имён Aspose.Pdf.Facades содержит класс Form, который содержит функцию с именем FillField, и она принимает два аргумента, то есть имя поля и значение поля. Итак, чтобы заполнить поля формы, вы должны знать точное имя поля формы.
Мы часто сталкиваемся со сценарием, когда нам нужно заполнить форму, созданную в каком-либо инструменте, например, в Adobe Designer, и мы не уверены в именах полей формы. Итак, чтобы заполнить поля формы, сначала нам нужно прочитать имена всех полей PDF-формы. Класс Form предоставляет свойство с именем FieldNames, которое возвращает имена всех полей и возвращает null, если PDF не содержит ни одного поля. Однако при использовании этого свойства мы получаем имена всех полей в форме PDF, и мы можем не быть уверены, какое имя соответствует какому полю в форме.
В качестве решения этой проблемы мы будем использовать атрибуты внешнего вида каждого поля. Класс Form имеет функцию с именем GetFieldFacade, которая возвращает атрибуты, включая расположение, цвет, стиль границы, шрифт, элемент списка и так далее. Чтобы сохранить эти значения, нам нужно использовать класс FormFieldFacade, который используется для записи визуальных атрибутов полей. Получив эти атрибуты, мы можем добавить текстовое поле под каждым полем, которое будет отображать имя поля.
В пространстве имён Aspose.Pdf.Facades у нас есть класс с именем FormEditor, который позволяет управлять PDF-формами. Откройте PDF-форму, добавьте текстовое поле под каждое существующее поле формы и сохраните PDF-форму под новым именем.
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void IdentifyFormFieldsNames()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdfFacades_TechnicalArticles();
// First a input pdf file should be assigned
var form = new Aspose.Pdf.Facades.Form(dataDir + "FilledForm.pdf");
// Get all field names
var allfields = form.FieldNames;
// Create an array which will hold the location coordinates of Form fields
var box = new System.Drawing.Rectangle[allfields.Length];
for (int i = 0; i < allfields.Length; i++)
{
// Get the appearance attributes of each field, consequtively
var facade = form.GetFieldFacade(allfields[i]);
// Box in FormFieldFacade class holds field's location
box[i] = facade.Box;
}
// Save PDF document
form.Save(dataDir + "IdentifyFormFields_1_out.pdf");
// Create PDF document
using (var document = new Aspose.Pdf.Document(dataDir + "FilledForm - 2.pdf"))
{
// Now we need to add a textfield just upon the original one
using (var editor = new Aspose.Pdf.Facades.FormEditor(document))
{
for (int i = 0; i < allfields.Length; i++)
{
// Add text field beneath every existing form field
editor.AddField(Aspose.Pdf.Facades.FieldType.Text,
"TextField" + i, allfields[i], 1,
box[i].Left, box[i].Top, box[i].Left + 50, box[i].Top + 10);
}
// Save PDF document
editor.Save(dataDir + "IdentifyFormFields_out.pdf");
}
}
}
Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.