VintaSoft Imaging .NET SDK 14.0: Документация для .NET разработчика
Vintasoft.Imaging.Pdf.UI.Annotations Namespace / PdfAnnotationTool Class / AddAndBuildFormField Methods / AddAndBuildFormField(PdfInteractiveFormField) Method
Синтаксис Example Требования Смотрите также
В этом разделе
    AddAndBuildFormField(PdfInteractiveFormField) Метод (PdfAnnotationTool)
    В этом разделе
    Добавляет и создает поле формы.
    Синтаксис

    Parameters

    field
    Поле.

    Return Value

    Представление аннотации, соответствующее полю.
    Пример

    Вот C#/VB.NET код, который демонстрирует, как начать создание поля формы кнопки.

    
    ''' <summary>
    ''' Adds and builds a button form field.
    ''' </summary>
    ''' <param name="annotationTool">The PDF annotation tool, which will build a field.</param>
    Public Shared Sub AddAndBuildButtonField(annotationTool As Vintasoft.Imaging.Pdf.UI.Annotations.PdfAnnotationTool)
        Dim focusedPage As Vintasoft.Imaging.Pdf.Tree.PdfPage = annotationTool.FocusedPage
        If focusedPage Is Nothing Then
            Throw New System.InvalidOperationException()
        End If
    
        ' create a Button form field
        Dim field As New Vintasoft.Imaging.Pdf.Tree.InteractiveForms.PdfInteractiveFormPushButtonField(focusedPage.Document, GetFieldName(focusedPage.Document, Nothing, "Button{0}"), New System.Drawing.RectangleF(0, 0, 150, 22))
    
        ' set the field appearance generator
        Dim appearanceGenerator As New Vintasoft.Imaging.Pdf.Tree.InteractiveForms.AppearanceGenerators.PdfButton3DBorderFieldAppearanceGenerator()
        field.Annotation.AppearanceGenerator = appearanceGenerator
        appearanceGenerator.NormalCaption = "JavaScript 'Hello!'"
        appearanceGenerator.FontSize = 14
    
        ' if tool mode does not allow to build annotation
        If annotationTool.InteractionMode <> Vintasoft.Imaging.Pdf.UI.Annotations.PdfAnnotationInteractionMode.Edit Then
            ' change the tool mode
            annotationTool.InteractionMode = Vintasoft.Imaging.Pdf.UI.Annotations.PdfAnnotationInteractionMode.Edit
        End If
    
        ' set JavaScript action to Activate trigger event
        field.Annotation.ActivateAction = New Vintasoft.Imaging.Pdf.Tree.PdfJavaScriptAction(focusedPage.Document, "app.alert('Hello!', 3);")
    
        ' add and build annotation
        annotationTool.AddAndBuildFormField(field)
    End Sub
    
    ''' <summary>
    ''' Returns the name of new field.
    ''' </summary>
    ''' <param name="document">PDF document.</param>
    ''' <param name="parentField">The parent interactive form field.</param>
    ''' <param name="fieldNameFormat">The format of field name.</param>
    ''' <returns>The name of new field.</returns>
    Private Shared Function GetFieldName(document As Vintasoft.Imaging.Pdf.PdfDocument, parentField As Vintasoft.Imaging.Pdf.Tree.InteractiveForms.PdfInteractiveFormField, fieldNameFormat As String) As String
        Dim format As String = fieldNameFormat
        If parentField IsNot Nothing Then
            format = String.Format("{0}.{1}", parentField.FullyQualifiedName, fieldNameFormat)
        End If
        If document.InteractiveForm Is Nothing Then
            Return String.Format(fieldNameFormat, 1)
        End If
        Dim i As Integer = 1
        While document.InteractiveForm.FindField(String.Format(format, i)) IsNot Nothing
            i += 1
        End While
        Return String.Format(fieldNameFormat, i)
    End Function
    
    
    
    /// <summary>
    /// Adds and builds a button form field.
    /// </summary>
    /// <param name="annotationTool">The PDF annotation tool, which will build a field.</param>
    public static void AddAndBuildButtonField(Vintasoft.Imaging.Pdf.UI.Annotations.PdfAnnotationTool annotationTool)
    {
        Vintasoft.Imaging.Pdf.Tree.PdfPage focusedPage = annotationTool.FocusedPage;
        if (focusedPage == null)
            throw new System.InvalidOperationException();
    
        // create a Button form field
        Vintasoft.Imaging.Pdf.Tree.InteractiveForms.PdfInteractiveFormPushButtonField field = 
            new Vintasoft.Imaging.Pdf.Tree.InteractiveForms.PdfInteractiveFormPushButtonField(
                focusedPage.Document,
                GetFieldName(focusedPage.Document, null, "Button{0}"),
                new System.Drawing.RectangleF(0, 0, 150, 22));
    
        // set the field appearance generator
        Vintasoft.Imaging.Pdf.Tree.InteractiveForms.AppearanceGenerators.PdfButton3DBorderFieldAppearanceGenerator appearanceGenerator =
            new Vintasoft.Imaging.Pdf.Tree.InteractiveForms.AppearanceGenerators.PdfButton3DBorderFieldAppearanceGenerator();
        field.Annotation.AppearanceGenerator = appearanceGenerator;
        appearanceGenerator.NormalCaption = "JavaScript 'Hello!'";
        appearanceGenerator.FontSize = 14;
    
        // if tool mode does not allow to build annotation
        if (annotationTool.InteractionMode != Vintasoft.Imaging.Pdf.UI.Annotations.PdfAnnotationInteractionMode.Edit)
            // change the tool mode
            annotationTool.InteractionMode = Vintasoft.Imaging.Pdf.UI.Annotations.PdfAnnotationInteractionMode.Edit;
    
        // set JavaScript action to Activate trigger event
        field.Annotation.ActivateAction =
            new Vintasoft.Imaging.Pdf.Tree.PdfJavaScriptAction(focusedPage.Document, "app.alert('Hello!', 3);");
    
        // add and build annotation
        annotationTool.AddAndBuildFormField(field);
    }
    
    /// <summary>
    /// Returns the name of new field.
    /// </summary>
    /// <param name="document">PDF document.</param>
    /// <param name="parentField">The parent interactive form field.</param>
    /// <param name="fieldNameFormat">The format of field name.</param>
    /// <returns>The name of new field.</returns>
    private static string GetFieldName(
        Vintasoft.Imaging.Pdf.PdfDocument document,
        Vintasoft.Imaging.Pdf.Tree.InteractiveForms.PdfInteractiveFormField parentField,
        string fieldNameFormat)
    {
        string format = fieldNameFormat;
        if (parentField != null)
            format = string.Format("{0}.{1}", parentField.FullyQualifiedName, fieldNameFormat);
        if (document.InteractiveForm == null)
            return string.Format(fieldNameFormat, 1);
        int i = 1;
        while (document.InteractiveForm.FindField(string.Format(format, i)) != null)
            i++;
        return string.Format(fieldNameFormat, i);
    }
    
    

    Требования

    Целевые платформы: .NET 8; .NET 7; .NET 6; .NET Framework 4.8, 4.7, 4.6, 4.5, 4.0, 3.5

    Смотрите также