LinearizedPdf.vb
'' 
'' このコードは、DioDocs for PDF のサンプルの一部として提供されています。
'' © MESCIUS 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()
        '' テキストを保持/書式設定するための 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 を作成するためには、PDF を保存する際に SaveMode.Linearized を指定する必要があります。
        doc.Save(stream, SaveMode.Linearized)
    End Sub
End Class