FlattenForm.cs
//
// このコードは、DioDocs for PDF のサンプルの一部として提供されています。
// © 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
{
// このサンプルは、データが入力されたAcroFormを簡単に"フラット化"する方法を示しています。
// 例えば、元の記入済みフォームと同じに見えるように、フォームをフォームではない通常のPDFコンテンツに
// 変換することができます。
// このサンプルで読み込まれる記入済みフォームは、FormFieldsで生成されたものです。
public class FlattenForm
{
public int CreatePDF(Stream stream)
{
using var fs = File.OpenRead(Path.Combine("Resources", "PDFs", "FormFields.pdf"));
// 記入済みフォームを含む PDF を開き、それを一時ドキュメントに読み込みます。
var srcDoc = new GcPdfDocument();
srcDoc.Load(fs);
// 元となるPDFのすべてのページと注釈を新しい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);
// このメソッドにて、フォームフィールドを含むページ上のすべての注釈を描画します。
srcPage.DrawAnnotations(page.Graphics, page.Bounds);
}
// PDF ドキュメントを保存します。
doc.Save(stream);
return doc.Pages.Count;
}
}
}