Изучение возможностей класса FormEditor

Детали реализации

Разработчики могут использовать пространство имён Aspose.Pdf.Facades не только для добавления новых форм и полей форм в документ PDF, но и для редактирования существующих полей. Объём данной статьи ограничен возможностями Aspose.PDF for .NET, которые касаются редактирования форм.

[FormEditor] (https://reference.aspose.com/pdf/ru/net/aspose.pdf.facades/formeditor) — это класс, который содержит большинство методов и свойств, позволяющих разработчикам редактировать поля форм. Вы можете не только добавлять новые поля, но и удалять существующие поля, перемещать одно поле в другое место, изменять имя поля или атрибуты и т.д. Список функций, предоставляемых этим классом, довольно обширен, и работать с полями форм с его помощью очень просто.

Эти методы можно разделить на две основные категории, одна из которых используется для управления полями, а другая — для установки новых атрибутов этих полей. Методы, которые мы можем отнести к первой категории, включают AddField, AddListItem, RemoveListItem, CopyInnerField, CopyOuterField, DelListItem, MoveField, RemoveField и RenameField и т.д. Ко второй категории методов можно отнести SetFieldAlignment, SetFieldAppearance, SetFieldAttribute, SetFieldLimit и SetFieldScript. Следующий фрагмент кода демонстрирует работу некоторых методов класса FormEditor.

// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.Pdf-for-.NET
private static void ExploringFormEditorFeatures()
{
    // The path to the documents directory
    var dataDir = RunExamples.GetDataDir_AsposePdfFacades_TechnicalArticles();

    // Open PDF document
    using (var document = new Aspose.Pdf.Document(dataDir + "inFile.pdf"))
    {
        // Create instance of FormEditor
        using (var editor = new Aspose.Pdf.Facades.FormEditor(document))
        {
            // Add field in the PDF file
            editor.AddField(Aspose.Pdf.Facades.FieldType.Text, "field1", 1, 300, 500, 350, 525);

            // Add List field in PDF file
            editor.AddField(Aspose.Pdf.Facades.FieldType.ListBox, "field2", 1, 300, 200, 350, 225);

            // Add list items
            editor.AddListItem("field2", "item 1");
            editor.AddListItem("field2", "item 2");

            // Add submit button
            editor.AddSubmitBtn("submitbutton", 1, "Submit Form", "http:// Testwebsite.com/testpage", 200, 200, 250, 225);

            // Delete list item
                editor.DelListItem("field2", "item 1");

            // Move field to new position
            editor.MoveField("field1", 10, 10, 50, 50);

            // Remove existing field from the PDF
            editor.RemoveField("field1");

            // Rename an existing field
            editor.RenameField("field1", "newfieldname");

            // Reset all visual attributes to empty value
            editor.ResetFacade();

            // Set the alignment style of a text field
            editor.SetFieldAlignment("field1", Aspose.Pdf.Facades.FormFieldFacade.AlignLeft);

            // Set appearance of the field
            editor.SetFieldAppearance("field1", Aspose.Pdf.Annotations.AnnotationFlags.NoRotate);

            // Set field attributes i.e. ReadOnly, Required
            editor.SetFieldAttribute("field1", Aspose.Pdf.Facades.PropertyFlag.ReadOnly);

            // Set field limit
            editor.SetFieldLimit("field1", 25);

            // Save modifications in the output file
            editor.Save(dataDir + "FormEditorFeatures2_out.pdf");                    
        }
    }
}