Page and pages#
A page is a simple structure:
type Page struct {
Objnum Objectnumber // The "/Page" object
Annotations []Annotation
Faces []*Face
Images []*Imagefile
Width float64
Height float64
OffsetX float64
OffsetY float64
Dict Dict // Additional dictionary entries such as "/Trimbox"
}
Pages are split into two parts in the PDF, a dictionary and a content stream.
The Objnum
points to the dictionary.
A page is created and added to the PDF with
When you create a page with AddPage()
, you can pass pdf.Objectnumber(0)
for the second argument. AddPage()
creates the dictionary object itself.
You need to register all used Annotations, Faces and Images to the page object in order to get the contents structure correct.
Permuting pages#
After all pages have been collected, you can re-arrange the pages in the PDF file by changing the Pages slice in the Pages object which the main PDF object has a reference to.
For example you can do something like this:
to swap the first two pages. pw
in this example is the main PDF object.
Writing pages to the PDF#
The PDF backend takes care of writing all the Page objects and the Pages object to the PDF. No user action is required.