|
This example shows how to import an HTML page which uses named
destinations.
We first create a Doc object and inset
the edges a little so that the HTML will appear in the middle of
the page. We assign the appropriate HTML options so that links will
be rendered live.
[C#]
Doc theDoc = new Doc();
theDoc.Rect.Inset(18, 18);
theDoc.HtmlOptions.AddLinks = true;
[Visual Basic]
Dim theDoc As Doc = New Doc()
theDoc.Rect.Inset(18, 18)
theDoc.HtmlOptions.AddLinks = True
We add the pages to the document.
[C#]
int theID;
theID = theDoc.AddImageUrl("http://www.websupergoo.com/support.htm");
while (true) {
if (!theDoc.Chainable(theID))
break;
theDoc.Page = theDoc.AddPage();
theID = theDoc.AddImageToChain(theID);
}
[Visual Basic]
Dim theID As Integer
theID = theDoc.AddImageUrl("http://www.websupergoo.com/support.htm")
While True
If Not theDoc.Chainable(theID) Then
Exit While
End If
theDoc.Page = theDoc.AddPage()
theID = theDoc.AddImageToChain(theID)
End While
The URL we've referenced makes extensive use of named destinations.
We want these named destination links to take us between pages on
the PDF rather than taking us to the original URL.
After adding the pages we can flatten them. We can't do this until
after the pages have been added because flattening will invalidate
our previous ID and break the chain.
[C#]
theDoc.HtmlOptions.LinkPages();
for (int i = 1; i <= theDoc.PageCount; i++) {
theDoc.PageNumber = i;
theDoc.Flatten();
}
[Visual Basic]
theDoc.HtmlOptions.LinkPages()
Dim i As Integer
For i = 1 To theDoc.PageCount
theDoc.PageNumber = i
theDoc.Flatten()
Next
Finally we save.
[C#]
theDoc.Save(Server.MapPath("linkpages.pdf"));
theDoc.Clear();
[Visual Basic]
theDoc.Save(Server.MapPath("linkpages.pdf"))
theDoc.Clear()
We get the following output. The links work - where possible -
within the PDF.

linkpages.pdf [Page 1] |

linkpages.pdf [Page 2] |
|