TextToOutlines.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
'' このサンプルは、既存のPDF内のすべてのテキストについて、フォントのアウトライン化を行う方法を示しています。
'' 結果として得られるPDFは元のPDFと全く同じように見えますが、その中のすべてのグリフはGraphicsPathとして
'' レンダリングされます。この方法は、テキストのコピーや検索を不可とするために使用することができます。
'' なお、結果として得られるPDFにはフォントが存在しないことに注意してください。
'' このサンプルで使用した元のPDFは、 PaginatedTextによって生成されたものです。
Public Class TextToOutlines
Function CreatePDF(ByVal stream As Stream) As Integer
Dim doc = New GcPdfDocument()
Using fs = File.OpenRead(Path.Combine("Resources", "PDFs", "StrongInTheRain.pdf"))
'' 元となるPDFを開き、それを一時ドキュメントに読み込みます。
Dim srcDoc = New GcPdfDocument()
srcDoc.Load(fs)
'' 元となるPDFのすべてのページを新しいPDFのページに描画します。
For Each srcPage In srcDoc.Pages
Dim page = doc.Pages.Add(srcPage.Size)
'' Graphics.DrawTextAsPathをtrueに設定すると、すべてのグリフがフォントを使ってテキストを
'' レンダリングするのではなく、GraphicsPathとして描画されます。
page.Graphics.DrawTextAsPath = True
'' ターゲット上に元となるページを描画します。
srcPage.Draw(page.Graphics, srcPage.Bounds)
Next
'' PDF ドキュメントを保存します。
doc.Save(stream)
Return doc.Pages.Count
End Using
End Function
End Class