- Home
- Products For Home & Business
- Tools For Developers
- Download
- Purchase
- Support
- Company
QUESTIONS OR COMMENTS ABOUT PRODUCTS? WRITE US AT SUPPORT@BYTESCOUT.COM OR USE THIS FORM
QUESTIONS OR COMMENTS ABOUT PRODUCTS? WRITE US AT SUPPORT@BYTESCOUT.COM OR USE THIS FORM
See also XML to PDF example for VBScript (Visual Basic 6) here
See also XML to PDF example for Visual C# .NET here
This example describes how to transform XML into PDF in Visual Basic .NET using XSLT (.xsl) template and PDFDoc Scout library
Source XML data (simpsons.xml):
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="Simpsons.xsl"?>
<Simpsons>
<FamilyMember>Homer Jay Simpson</FamilyMember>
<FamilyMember>Marjorie Marge Simpson (Bouvier)</FamilyMember>
<FamilyMember>Bartholomew Jojo Bart Simpson</FamilyMember>
<FamilyMember>Lisa Marie Simpson</FamilyMember>
<FamilyMember>Margaret Maggie Simpson</FamilyMember>
<ExtendedFamilyMember>Abraham Jay Simpson</ExtendedFamilyMember>
<ExtendedFamilyMember>Mona J. Simpson</ExtendedFamilyMember>
<ExtendedFamilyMember>Jacqueline Ingrid Bouvier</ExtendedFamilyMember>
<ExtendedFamilyMember>Clancy Bouvier</ExtendedFamilyMember>
<ExtendedFamilyMember>Patricia "Patty" Bouvier</ExtendedFamilyMember>
</Simpsons>
XSLT template (simpsons.xsl):
<?xml version="1.0" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="FamilyMember">
<p><b><u><xsl:value-of select="."/></u></b></p>
</xsl:template>
<xsl:template match="ExtendedFamilyMember">
<p><i><xsl:value-of select="."/></i></p>
</xsl:template>
<xsl:template match="/">
<html>
<body>
<xsl:apply-templates/>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
Produced PDF document (XML2HTML.pdf generated from source Simpsons.xml XML data)

Code of Form1.vb
<font color="black" face="Courier New" size="2"><font color="#0000ff">Imports</font> System.IO<br> <font color="#0000ff">Imports</font> System.Xml<br> <font color="#0000ff">Imports</font> System.Xml.XPath<br> <font color="#0000ff">Imports</font> System.Xml.Xsl<br> <br> <font color="#0000ff">Public</font> <font color="#0000ff">Class</font> Form1<br> <br> <font color="#0000ff">Private</font> <font color="#0000ff">Sub</font> btnXMLToPDF_Click(<font color="#0000ff">ByVal</font> sender <font color="#0000ff">As</font> System.<font color="#0000ff">Object</font>, <font color="#0000ff">ByVal</font> e <font color="#0000ff">As</font> System.EventArgs) <font color="#0000ff">Handles</font> btnXMLToPDF.Click<br> <font color="#008000">' Transform XML using XSLT and get HTML code</font><br> <font color="#008000">' then create PDF document from produced HTML code</font><br> <br> <font color="#0000ff">Dim</font> PDFDoc <font color="#0000ff">As</font> <font color="#0000ff">New</font> PDFDocScout.PDFDocument()<br> PDFDoc.InitLibrary(<font color="#a31515">"demo"</font>, <font color="#a31515">"demo"</font>)<br> PDFDoc.OutputFileName = <font color="#a31515">"XML2HTML.pdf"</font><br> PDFDoc.AutoOpenGeneratedPDF = <font color="#0000ff">True</font><br> <br> PDFDoc.BeginDocument()<br> <br> <font color="#008000">' load source XML document</font><br> <font color="#0000ff">Dim</font> xmlDoc <font color="#0000ff">As</font> <font color="#0000ff">New</font> XmlDocument()<br> xmlDoc.Load(boxXML.Text)<br> <br> <font color="#0000ff">Dim</font> xslt <font color="#0000ff">As</font> <font color="#0000ff">New</font> XslCompiledTransform()<br> xslt.Load(boxXSLT.Text)<br> <br> <font color="#008000">' create XML doc to store result of transformation</font><br> <font color="#0000ff">Dim</font> objResultXML <font color="#0000ff">As</font> <font color="#0000ff">New</font> XmlDocument()<br> <br> <font color="#008000">'Transform the XML using XLST into HTML (produced HTML is written to writer object)</font><br> <font color="#0000ff">Dim</font> writer <font color="#0000ff">As</font> <font color="#0000ff">New</font> StringWriter()<br> xslt.Transform(<font color="#0000ff">New</font> XPathDocument(boxXML.Text), <font color="#0000ff">Nothing</font>, writer)<br> writer.Close()<br> <br> <font color="#008000">' convert produced HTML code into PDF</font><br> PDFDoc.Page.AddHTMLBox(writer.ToString(), 0, 0, PDFDoc.Page.Width, PDFDoc.Page.Height, <font color="#0000ff">True</font>)<br> <br> PDFDoc.EndDocument()<br> <font color="#008000">' close PDF document generation</font><br> <font color="#0000ff">End</font> <font color="#0000ff">Sub</font><br> <font color="#0000ff">End</font> <font color="#0000ff">Class</font></font>
Tutorials: