FlattenForm.vb
''
'' このコードは、DioDocs for PDF のサンプルの一部として提供されています。
'' © MESCIUS inc. All rights reserved.
''
Imports System.IO
Imports System.Drawing
Imports GrapeCity.Documents.Pdf
Imports GrapeCity.Documents.Pdf.AcroForms
Imports GrapeCity.Documents.Pdf.Graphics
Imports GrapeCity.Documents.Drawing
Imports GrapeCity.Documents.Text
'' このサンプルは、データが入力されたAcroFormを簡単に"フラット化"する方法を示しています。
'' 例えば、元の記入済みフォームと同じに見えるように、フォームをフォームではない通常のPDFコンテンツに
'' 変換することができます。
'' このサンプルで読み込まれる記入済みフォームは、FormFieldsで生成されたものです。
Public Class FlattenForm
Function CreatePDF(ByVal stream As Stream) As Integer
Dim doc = New GcPdfDocument()
Using fs = File.OpenRead(Path.Combine("Resources", "PDFs", "FormFields.pdf"))
'' 記入済みフォームを含む PDF を開き、それを一時ドキュメントに読み込みます。
Dim srcDoc = New GcPdfDocument()
srcDoc.Load(fs)
'' 元となるPDFのすべてのページと注釈を新しいPDFに描画します。
For Each srcPage In srcDoc.Pages
Dim page = doc.Pages.Add(srcPage.Size)
Dim fxo = New FormXObject(doc, srcPage)
page.Graphics.DrawForm(fxo, page.Bounds, Nothing, ImageAlign.Default)
'' このメソッドにて、フォームフィールドを含むページ上のすべての注釈を描画します。
srcPage.DrawAnnotations(page.Graphics, page.Bounds)
Next
'' PDF ドキュメントを保存します。
doc.Save(stream)
Return doc.Pages.Count
End Using
End Function
End Class