FlattenForm.cs
- //
- // This code is part of Document Solutions for PDF demos.
- // Copyright (c) MESCIUS inc. All rights reserved.
- //
- using System;
- using System.IO;
- using System.Drawing;
- using GrapeCity.Documents.Pdf;
- using GrapeCity.Documents.Pdf.AcroForms;
- using GrapeCity.Documents.Pdf.Graphics;
- using GrapeCity.Documents.Drawing;
- using GrapeCity.Documents.Text;
-
- namespace DsPdfWeb.Demos
- {
- // This sample shows how to easily 'flatten' an AcroForm PDF with data -
- // i.e. convert that form into a non-form PDF that looks like the
- // original filled form.
- // The original filled form loaded by this sample is generated by FormFields.
- public class FlattenForm
- {
- public int CreatePDF(Stream stream)
- {
- using var fs = File.OpenRead(Path.Combine("Resources", "PDFs", "form-fields.pdf"));
- // Load the filled PDF form into a temp document:
- var srcDoc = new GcPdfDocument();
- srcDoc.Load(fs);
- // Draw all pages and annotation of the source PDF into a new PDF:
- var doc = new GcPdfDocument();
- foreach (var srcPage in srcDoc.Pages)
- {
- var page = doc.Pages.Add();
- var fxo = new FormXObject(doc, srcPage);
- page.Graphics.DrawForm(fxo, page.Bounds, null, ImageAlign.Default);
- // This method draws all annotations on the page including form field widgets:
- srcPage.DrawAnnotations(page.Graphics, page.Bounds);
- }
- // Done:
- doc.Save(stream);
- return doc.Pages.Count;
- }
- }
- }
-