LinearizedPdf.vb
'' 
'' このコードは、DioDocs for PDF のサンプルの一部として提供されています。
'' Copyright (c) GrapeCity inc. All rights reserved.
'' 
Imports System.IO
Imports System.Drawing
Imports GrapeCity.Documents.Pdf
Imports GrapeCity.Documents.Text

'' リニアライズ化した PDF ファイルを作成する方法を示します。
'' 以下のコードは、サンプルブラウザに表示される PDF を生成するために使用されたものですが、
'' ブラウザにはこのファイルの静的コピーが送信されることにご注意ください。
'' これにより、Web サーバーはそれを小さなチャンクで送信できます
'' (他のすべてのサンプル PDF は動的に生成されます)。
Public Class LinearizedPdf
    Sub CreatePDF(ByVal stream As Stream)
        '' 生成するページ数を設定します。
        Dim N = 5000
        Dim doc = New GcPdfDocument()
        '' リニアライズ化された PDF を作成するには、フラグを立てるだけです。
        doc.Linearized = True
        '' テキストを保持/書式設定するための TextLayout を準備します。
        Dim Page = doc.NewPage()
        Dim tl = Page.Graphics.CreateTextLayout()
        tl.DefaultFormat.Font = StandardFonts.Times
        tl.DefaultFormat.FontSize = 12
        '' TextLayout を使用して、余白を含むページ全体をレイアウトします。
        tl.MaxHeight = Page.Size.Height
        tl.MaxWidth = Page.Size.Width
        tl.MarginAll = 72
        tl.FirstLineIndent = 72 / 2
        '' ドキュメントを生成します。
        For pageIdx = 0 To N - 1
            '' メモ: サンプルテキストがページに収まらない場合がありますが問題ありません。
            tl.Append(Util.getString_ja(1, 0, 20))
            tl.PerformLayout(True)
            doc.Pages.Last.Graphics.DrawTextLayout(tl, PointF.Empty)
            If (pageIdx < N - 1) Then
                doc.Pages.Add()
                tl.Clear()
            End If
        Next
        '' PDF ドキュメントを保存します。
        doc.Save(stream)
    End Sub
End Class