''
'' This code is part of Document Solutions for PDF demos.
'' Copyright (c) MESCIUS inc. All rights reserved.
''
Imports System.IO
Imports System.Drawing
Imports GrapeCity.Documents.Pdf
Imports GrapeCity.Documents.Text
'' Shows how to create a linearized PDF file.
'' Note that while the code below was used to generate the PDF shown in the sample browser,
'' the browser sends a static copy of this file, so that the web server can send it
'' in smaller chunks (all other sample PDFs are generated on the fly).
Public Class LinearizedPdf
Sub CreatePDF(ByVal stream As Stream)
'' Number of pages to generate:
Dim N = 5000
Dim doc = New GcPdfDocument()
'' Prep a TextLayout to hold/format the text:
Dim Page = doc.NewPage()
Dim tl = Page.Graphics.CreateTextLayout()
tl.DefaultFormat.Font = StandardFonts.Times
tl.DefaultFormat.FontSize = 12
'' Use TextLayout to layout the whole page including margins:
tl.MaxHeight = Page.Size.Height
tl.MaxWidth = Page.Size.Width
tl.MarginAll = 72
tl.FirstLineIndent = 72 / 2
'' Generate the document:
For pageIdx = 0 To N - 1
'' Note: for the sake of this sample, we do not care if a sample text does not fit on a page.
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
'' To create a linearized PDF we need to specify SaveMode.Linearized when saving the PDF
doc.Save(stream, SaveMode.Linearized)
End Sub
End Class