Добавление поля текстового поля выдает «IndexOutBoundsException» при использовании Aspose PDF .Net - PullRequest
0 голосов
/ 23 декабря 2018

Я использую Aspose PDF в .Net для создания PDF-файлов.Я добавил поля текстового поля в мой код.До добавления полей мой код работал нормально, и PDF был успешно создан.Так как я добавил код для полей текстового поля, мой код выдает вышеупомянутое исключение при сохранении файла.

Во время тестирования он генерировал текстовое поле один раз, но после многократного сбоя.Ниже приведен код, который я использовал для создания текстового поля в таблице

public static void CreateTextboxTable(Document doc, Page page)
    {
        Table table = new Table();
        table.ColumnWidths = "250 250";
        table.Border = new BorderInfo(BorderSide.All, .5f, Color.FromRgb(System.Drawing.Color.Black));
        // Set the border for table cells
        table.DefaultCellBorder = new BorderInfo(BorderSide.All, .5f, Color.FromRgb(System.Drawing.Color.Black));
        table.Margin.Top = 5;
        table.DefaultCellPadding = new MarginInfo(3, 3, 3, 3);
        page.Paragraphs.Add(table);

        Row row1 = table.Rows.Add();
        Cell cell = new Cell();
        cell = row1.Cells.Add("Full Name:");

        Cell fieldCell = row1.Cells.Add();
        // Create a field
        TextBoxField textBoxField = new TextBoxField(doc);
        textBoxField.PartialName = "textbox1";
        textBoxField.Value = "";
        textBoxField.Width = 150;
        textBoxField.Height = 20;
        //textBoxField.Margin.Top = 20;
        Border border = new Border(textBoxField);
        border.Width = 1;
        textBoxField.Border = border;
        textBoxField.Color = Color.FromRgb(System.Drawing.Color.Black);
        // Add field to the document
        doc.Form.Add(textBoxField, 1);
        fieldCell.Paragraphs.Add(textBoxField);
    }

Исключение возникает при выполнении этой строки:

pdfDoc.Save (location);

Если я удаляю этот вызов этой функции, то создается pdf.также трассировка стека выглядит следующим образом:

at Aspose.Pdf.Forms.Field.5kzkyaw9ehlf8lze3k4btj845lj3sczy    (    )
at Aspose.Pdf.Forms.TextBoxField.5kzkyaw9ehlf8lze3k4btj845lj3sczy    (    )
at Aspose.Pdf.Forms.Field.hulrgtdcn4a36jvghassc3d9p8uvbscd    (    , Rectangle )
at ​  .(Field )
at ​  .()
at Aspose.Pdf.Cell.(Table , Double , Page , Double , Double , Boolean )
at Aspose.Pdf.Row.(Table , Page , Double , Double , Int32 )
at Aspose.Pdf.Row.(Table , Double& , Double& , Boolean , Double , Double , Page , Int32&  )
at Aspose.Pdf.Table.(Double& , Double& , Boolean , Double , Double , Page , Boolean , List`1  )
at ​  .()
at Aspose.Pdf.Page.(Page )
at Aspose.Pdf.Document.ProcessParagraphs()
at Aspose.Pdf.Document.(Stream , SaveOptions )
at Aspose.Pdf.Document.(String )
at Aspose.Pdf.Document.Save(String outputFileName)
at AsposePdfApp.Common.Helper.CreatePdf() in \Common\Helper.cs:line 42

Эта трассировка стека дает подсказку о проблеме с полем текстового поля.

Пожалуйста, объясните мне, где проблема в этом коде.Спасибо

...