LinearizedPdf.vb
'' 完毕:
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.LoremIpsum(2))
            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