Modificando AcroForm

O seguinte trecho de código também funciona com a biblioteca Aspose.PDF.Drawing.

Obter ou Definir Limite de Campo

O método SetFieldLimit(field, limit) da classe FormEditor permite que você defina um limite de campo, o número máximo de caracteres que podem ser inseridos em um campo.

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

    // Create FormEditor instance
    using (var form = new Aspose.Pdf.Facades.FormEditor())
    {
        // Bind PDF document
        form.BindPdf(dataDir + "input.pdf");

        // Set field limit for "textbox1"
        form.SetFieldLimit("textbox1", 15);

        // Save PDF document
        form.Save(dataDir + "SetFieldLimit_out.pdf");
    }
}

Da mesma forma, o Aspose.PDF possui um método que obtém o limite de campo usando a abordagem DOM. O seguinte trecho de código mostra os passos.

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

    // Open PDF document
    using (var document = new Aspose.Pdf.Document(dataDir + "FieldLimit.pdf"))
    {
        // Get the field and its maximum limit
        if (document.Form["textbox1"] is Aspose.Pdf.Forms.TextBoxField textBoxField)
        {
            Console.WriteLine("Limit: " + textBoxField.MaxLen);
        }
    }
}

Você também pode obter o mesmo valor usando o namespace Aspose.Pdf.Facades com o seguinte trecho de código.

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

    // Create Form instance
    using (var form = new Aspose.Pdf.Facades.Form())
    {
        // Bind PDF document
        form.BindPdf(dataDir + "FieldLimit.pdf");

        // Get the field limit for "textbox1"
        Console.WriteLine("Limit: " + form.GetFieldLimit("textbox1"));
    }
}

Definir Fonte Personalizada para o Campo do Formulário

Os campos de formulário em arquivos PDF da Adobe podem ser configurados para usar fontes padrão específicas. Nas versões iniciais do Aspose.PDF, apenas as 14 fontes padrão eram suportadas. Versões posteriores permitiram que os desenvolvedores aplicassem qualquer fonte. Para definir e atualizar a fonte padrão usada para campos de formulário, use a classe DefaultAppearance(Font font, double size, Color color). Esta classe pode ser encontrada no namespace Aspose.Pdf.InteractiveFeatures. Para usar este objeto, utilize a propriedade DefaultAppearance da classe Field.

O seguinte trecho de código mostra como definir a fonte padrão para campos de formulário PDF.

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

    // Open PDF document
    using (var document = new Aspose.Pdf.Document(dataDir + "FormFieldFont14.pdf"))
    {
        // Get particular form field from document
        if (document.Form["textbox1"] is Aspose.Pdf.Forms.Field field)
        {
            // Create font object
            var font = Aspose.Pdf.Text.FontRepository.FindFont("ComicSansMS");

            // Set the font information for form field
            field.DefaultAppearance = new Aspose.Pdf.Annotations.DefaultAppearance(font, 10, System.Drawing.Color.Black);
        }

        // Save PDF document
        document.Save(dataDir + "FormFieldFont14_out.pdf");
    }
}

Adicionar/remover campos em formulário existente

Todos os campos de formulário estão contidos na coleção Form do objeto Document. Esta coleção fornece diferentes métodos que gerenciam campos de formulário, incluindo o método Delete. Se você quiser excluir um campo específico, passe o nome do campo como um parâmetro para o método Delete e, em seguida, salve o documento PDF atualizado. O seguinte trecho de código mostra como excluir um campo específico de um documento PDF.

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

    // Open PDF document
    using (var document = new Aspose.Pdf.Document(dataDir + "DeleteFormField.pdf"))
    {
        // Delete a particular field by name
        document.Form.Delete("textbox1");

        // Save PDF document
        document.Save(dataDir + "DeleteFormField_out.pdf");
    }
}