From 8b1ec4ecb9ce410d10bc88bdfd02098aea062465 Mon Sep 17 00:00:00 2001 From: KB Bot Date: Wed, 4 Sep 2024 06:13:54 +0000 Subject: [PATCH 1/2] Added new kb article insert-form-xobject-elements-pdf-table-cell --- ...rt-form-xobject-elements-pdf-table-cell.md | 134 ++++++++++++++++++ 1 file changed, 134 insertions(+) create mode 100644 knowledge-base/insert-form-xobject-elements-pdf-table-cell.md diff --git a/knowledge-base/insert-form-xobject-elements-pdf-table-cell.md b/knowledge-base/insert-form-xobject-elements-pdf-table-cell.md new file mode 100644 index 00000000..ad9058be --- /dev/null +++ b/knowledge-base/insert-form-xobject-elements-pdf-table-cell.md @@ -0,0 +1,134 @@ +--- +title: Creating a PDF Table with Form Fields Inside the Cells +description: Learn how to insert interactive form fields such as radio buttons and textboxes into table cells in a PDF document using RadPdfProcessing. +type: how-to +page_title: How to Add Interactive Form Fields to Table Cells in PDF Documents with RadPdfProcessing +slug: insert-form-xobject-elements-pdf-table-cell +tags: pdfprocessing, document, processing, pdf, table, interactive, forms, radio, button, textbox, cell, acroform +res_type: kb +ticketid: 1663177 +--- + +## Environment + +| Version | Product | Author | +| --- | --- | ---- | +| 2024.3.806| RadPdfProcessing |[Desislava Yordanova](https://www.telerik.com/blogs/author/desislava-yordanova)| + +## Description + +Learn how to insert interactive [form fields]({%slug radpdfprocessing-model-interactive-forms-form-fields%}) such as [radio buttons]({%slug radpdfprocessing-model-interactive-forms-form-fields-radiobuttonfield%}) and [textboxes]({%slug radpdfprocessing-model-interactive-forms-form-fields-textboxfield%}) into [table cells]({%slug radpdfprocessing-editing-tablecell%}) in a PDF document using RadPdfProcessing. + +## Solution + +To insert interactive form fields like radio buttons and textboxes into table cells in a PDF document, follow the steps below: + +1. Create a new [RadFixedDocument]({%slug radpdfprocessing-model-radfixeddocument%}) and add a page to it. +2. Initialize a [FixedContentEditor]({%slug radpdfprocessing-editing-fixedcontenteditor%}) on the page for drawing content. +3. Define a [Table]({%slug radpdfprocessing-editing-table%}) object and configure its properties, including borders and cell padding. +4. For each row in the table: + - Add a text cell with the caption using [InsertText](https://docs.telerik.com/devtools/document-processing/libraries/radpdfprocessing/editing/block#inserting-text). + - Create a [RadioButtonField]({%slug radpdfprocessing-model-interactive-forms-form-fields-radiobuttonfield%}) , configure its options, and draw it in a table cell. + - Create a [TextBoxField]({%slug radpdfprocessing-model-interactive-forms-form-fields-textboxfield%}), set its value, and draw it in another table cell. +5. [Export](https://docs.telerik.com/devtools/document-processing/libraries/radpdfprocessing/formats-and-conversion/pdf/pdfformatprovider/pdfformatprovider#export) the `RadFixedDocument` to a PDF file. + +Below is a simplified code snippet demonstrating these steps: + +```csharp + private readonly string[] _questions = new string[] { "Question 1", "Question 2", "Question 3" }; + + public static void Main(string[] args) + { + RadFixedDocument document = new RadFixedDocument(); + RadFixedPage page = document.Pages.AddPage(); + FixedContentEditor editor = new FixedContentEditor(page); + double top = 5; + double left = 5; + string[] questions = new string[] { "Question 1", "Question 2", "Question 3" }; + Table questionnaireTable = new Table(); + RgbColor bordersColor = new RgbColor(255, 0, 0); + int thickness = 1; + Border border = new Border(thickness, Telerik.Windows.Documents.Fixed.Model.Editing.BorderStyle.Single, bordersColor); + TableCellBorders tableCellsBorder = new TableCellBorders(border, border, border, border, null, null); + questionnaireTable.Borders = new TableBorders(border); + questionnaireTable.DefaultCellProperties.Borders = tableCellsBorder; + questionnaireTable.DefaultCellProperties.Padding = new Thickness(thickness); + for (int i = 0; i < questions.Length; i++) + { + string question = questions[i]; + TableRow questionRow = questionnaireTable.Rows.AddTableRow(); + + // 1. Caption text + TableCell captionCell = questionRow.Cells.AddTableCell(); + captionCell.PreferredWidth = 100; + captionCell.Blocks.AddBlock().InsertText(question); + captionCell.Blocks.AddBlock().InsertText(string.Empty); + captionCell.Blocks.AddBlock().InsertText(string.Empty); + captionCell.Borders = tableCellsBorder; + int rowHeight = 0; + foreach (Block b in captionCell.Blocks) + { + rowHeight += (int)b.Measure().Height; + } + // 2. Radio button field + TableCell radioButtonCell = questionRow.Cells.AddTableCell(); + radioButtonCell.PreferredWidth = 200; + RadioButtonField answerRadioButtonField = new RadioButtonField("RadioButton_" + question); + answerRadioButtonField.Options.Add(new RadioOption("Yes")); + answerRadioButtonField.Options.Add(new RadioOption("No")); + answerRadioButtonField.Value = answerRadioButtonField.Options[1]; + + document.AcroForm.FormFields.Add(answerRadioButtonField); + editor.Position.Translate((int)captionCell.PreferredWidth + 10, rowHeight * i + rowHeight / 2); + foreach (RadioOption option in answerRadioButtonField.Options) + { + DrawNextWidgetWithDescription(editor, option.Value, (e) => e.DrawWidget(answerRadioButtonField, option, new Size(20, 20))); + } + + // 3. Textbox field + TableCell commentCell = questionRow.Cells.AddTableCell(); + commentCell.PreferredWidth = 200; + TextBoxField textBox = new TextBoxField("textBox_" + question); + document.AcroForm.FormFields.Add(textBox); + textBox.Value = "Sample comment..."; + editor.Position.Translate((int)captionCell.PreferredWidth + (int)radioButtonCell.PreferredWidth + 10, editor.Position.Matrix.OffsetY); + DrawNextWidgetWithDescription(editor, string.Empty, (e) => e.DrawWidget(textBox, new Size((int)commentCell.PreferredWidth, rowHeight / 2))); + } + + editor.Position.Translate(top, left); + questionnaireTable.Draw(editor, new Rect(left, top, page.Size.Width, page.Size.Height)); + + string fileName = $"{Guid.NewGuid()}.pdf"; + File.Delete(fileName); + PdfFormatProvider provider = new PdfFormatProvider(); + using Stream stream = File.OpenWrite(fileName); + provider.Export(document, stream); + + Process.Start(new ProcessStartInfo() { UseShellExecute = true, FileName = fileName }); + } + + private static void DrawNextWidgetWithDescription(FixedContentEditor editor, string description, Action drawWidgetWithEditor) + { + double padding = 10; + drawWidgetWithEditor(editor); + Size annotationSize = editor.Root.Annotations[editor.Root.Annotations.Count - 1].Rect.Size; + double x = editor.Position.Matrix.OffsetX; + double y = editor.Position.Matrix.OffsetY; + + Block block = new Block(); + block.TextProperties.FontSize = 18; + block.VerticalAlignment = Telerik.Windows.Documents.Fixed.Model.Editing.Flow.VerticalAlignment.Center; + block.InsertText(description); + editor.Position.Translate(x + annotationSize.Width, y); + editor.DrawBlock(block, new Size(editor.Root.Size.Width, annotationSize.Height)); + + editor.Position.Translate(x + block.Measure().Width + annotationSize.Width + padding * 2, y); + } +``` + +## See Also + +- [Create Interactive Forms SDK Example](https://github.com/telerik/document-processing-sdk/tree/master/PdfProcessing/CreateInteractiveForms) +- [Modify Form Values SDK Example](https://github.com/telerik/document-processing-sdk/tree/master/PdfProcessing/ModifyForms) + +--- From 8d2363397540344fe5015049b854d81bbf0be747 Mon Sep 17 00:00:00 2001 From: Desislava Yordanova Date: Wed, 4 Sep 2024 09:29:54 +0300 Subject: [PATCH 2/2] add links and image --- .../images/pdf-table-with-form-fields.png | Bin 0 -> 15886 bytes ...sert-form-xobject-elements-pdf-table-cell.md | 2 ++ libraries/radpdfprocessing/editing/tablecell.md | 1 + .../interactive-forms/form-fields/formfields.md | 1 + 4 files changed, 4 insertions(+) create mode 100644 knowledge-base/images/pdf-table-with-form-fields.png diff --git a/knowledge-base/images/pdf-table-with-form-fields.png b/knowledge-base/images/pdf-table-with-form-fields.png new file mode 100644 index 0000000000000000000000000000000000000000..211c23d81e6081aa553e4125ff74edf7fff351e1 GIT binary patch literal 15886 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 literal 0 HcmV?d00001 diff --git a/knowledge-base/insert-form-xobject-elements-pdf-table-cell.md b/knowledge-base/insert-form-xobject-elements-pdf-table-cell.md index ad9058be..565831b3 100644 --- a/knowledge-base/insert-form-xobject-elements-pdf-table-cell.md +++ b/knowledge-base/insert-form-xobject-elements-pdf-table-cell.md @@ -19,6 +19,8 @@ ticketid: 1663177 Learn how to insert interactive [form fields]({%slug radpdfprocessing-model-interactive-forms-form-fields%}) such as [radio buttons]({%slug radpdfprocessing-model-interactive-forms-form-fields-radiobuttonfield%}) and [textboxes]({%slug radpdfprocessing-model-interactive-forms-form-fields-textboxfield%}) into [table cells]({%slug radpdfprocessing-editing-tablecell%}) in a PDF document using RadPdfProcessing. +![Pdf Table with Form Fields](images/pdf-table-with-form-fields.png) + ## Solution To insert interactive form fields like radio buttons and textboxes into table cells in a PDF document, follow the steps below: diff --git a/libraries/radpdfprocessing/editing/tablecell.md b/libraries/radpdfprocessing/editing/tablecell.md index 56cb2856..74b66b7d 100644 --- a/libraries/radpdfprocessing/editing/tablecell.md +++ b/libraries/radpdfprocessing/editing/tablecell.md @@ -105,3 +105,4 @@ The result from __Example 3__ is illustrated on __Figure 1__. * [TableRow]({%slug radpdfprocessing-editing-tablerow%}) * [Block]({%slug radpdfprocessing-editing-block%}) * [How to Generate a Table with Images with PdfProcessing]({%slug generate-table-with-images-pdf-processing%}) + * [Creating a PDF Table with Form Fields Inside the Cells]({%slug insert-form-xobject-elements-pdf-table-cell%}) diff --git a/libraries/radpdfprocessing/model/interactive-forms/form-fields/formfields.md b/libraries/radpdfprocessing/model/interactive-forms/form-fields/formfields.md index c1254af3..2d15d05d 100644 --- a/libraries/radpdfprocessing/model/interactive-forms/form-fields/formfields.md +++ b/libraries/radpdfprocessing/model/interactive-forms/form-fields/formfields.md @@ -145,3 +145,4 @@ When merging documents that contain FormFields you need to ensure that each fiel * [AcroForm]({%slug radpdfprocessing-model-interactive-forms-acroform %}) * [Create Interactive Forms SDK example](https://github.com/telerik/document-processing-sdk/tree/master/PdfProcessing/CreateInteractiveForms) * [Modifying Forms SDK example](https://github.com/telerik/document-processing-sdk/tree/master/PdfProcessing/ModifyForms) +* [Creating a PDF Table with Form Fields Inside the Cells]({%slug insert-form-xobject-elements-pdf-table-cell%})