Imports XincServer Imports System Imports System.IO Imports System.Xml Imports System.Xml.Xsl Imports System.Xml.XPath Module Module1 Dim XincInstallDir As String = "c:\Program Files\Xinc" Function Main() As Integer formatToMem("http://lunasil.com/samples/helloworld.fo", "", "/tmp/helloworld.pdf") formatToMem(XincInstallDir & "\samples\helloworld.fo", Nothing, "c:\tmp\helloworld.pdf") formatToMem(XincInstallDir & "\samples\Sample.xml", XincInstallDir & "\samples\Sample.xslt", "c:\tmp\sample.pdf") formatToMem(XincInstallDir & "\samples\ReportData.xml", XincInstallDir & "\samples\ReportStyle.xsl", "c:\tmp\ReportData.pdf") formatToFile("http://lunasil.com/samples/helloworld.fo", "", "/tmp/helloworld.pdf") formatToFile(XincInstallDir & "\samples\helloworld.fo", Nothing, "c:\tmp\helloworld.pdf") formatToFile(XincInstallDir & "\samples\Sample.xml", XincInstallDir & "\samples\Sample.xslt", "c:\tmp\sample.pdf") formatToFile(XincInstallDir & "\samples\ReportData.xml", XincInstallDir & "\samples\ReportStyle.xsl", "c:\tmp\ReportData.pdf") format(XincInstallDir & "\samples\helloworld.fo", "c:\tmp\helloworld.pdf") xFormAndFormat(XincInstallDir & "\samples\Sample.xml", XincInstallDir & "\samples\Sample.xslt", "c:\tmp\sample.pdf") xFormAndFormat(XincInstallDir & "\samples\ReportData.xml", XincInstallDir & "\samples\ReportStyle.xsl", "c:\tmp\ReportData.pdf") End Function ' Demonstrates the use of the Xinc formatToFile() call. ' Any XSLT transformation is done by Xinc. Sub formatToFile(ByVal docName As String, ByVal styleName As String, ByVal outputFileName As String) Dim msg As String Dim f As New XincServer.CXincFormatter Try f.formatToFile(docName, styleName, outputFileName) Catch ex As Exception Console.WriteLine(ex.ToString) ' Show friendly error message. End Try msg = f.getErrorMsg Console.WriteLine(msg) End Sub ' This routine demonstrates the use of the Xinc format() call. ' It also demonstrates how to use the Microsoft XSLT engine to do ' the XSLT transformation and pass the result to Xinc. Sub xFormAndFormat(ByVal xml As String, ByVal xsl As String, ByVal outputFileName As String) Dim xformer As New XslTransform Dim stream As New MemoryStream xformer.Load(xsl) Dim doc As New XPathDocument(xml) xformer.Transform(doc, Nothing, stream, Nothing) Dim foBytes As Byte() = stream.ToArray() Dim f As New CXincFormatter Dim outputStream As FileStream = New FileStream(outputFileName, FileMode.Create) Dim writer As New BinaryWriter(outputStream) Try Dim pdfBytes As Byte() Dim temp As Object f.setBaseUrl(xml) pdfBytes = f.format(foBytes) writer.Write(pdfBytes) writer.Close() outputStream.Close() Catch ex As Exception Console.WriteLine("Error: " + ex.ToString) ' Show friendly error message. End Try Dim msg = f.getErrorMsg Console.WriteLine(msg) End Sub ' This routine demonstrates the use of the Xinc format() call. Sub format(ByVal foFileName As String, ByVal outputFileName As String) Dim inStream As FileStream = New FileStream(foFileName, FileMode.Open) Dim len As Long = inStream.Length Dim foBytes(len - 1) As Byte Dim pos(0) As Byte inStream.Read(foBytes, 0, len) inStream.Close() Dim f As New CXincFormatter Dim outputStream As FileStream = New FileStream(outputFileName, FileMode.Create) Dim writer As New BinaryWriter(outputStream) Try Dim pdfBytes As Byte() Dim temp As Object f.setBaseUrl(foFileName) pdfBytes = f.format(foBytes) writer.Write(pdfBytes) writer.Close() outputStream.Close() Catch ex As Exception Console.WriteLine("Error: " + ex.ToString) ' Show friendly error message. End Try Dim msg = f.getErrorMsg Console.WriteLine(msg) End Sub ' This routine demonstrates the use of the Xinc formatToMem() call. ' Any XSLT transformation is done by Xinc. Sub formatToMem(ByVal xmlUrl As String, ByVal xslUrl As String, ByVal outputFileName As String) Dim f As New CXincFormatter Dim outputStream As FileStream = New FileStream(outputFileName, FileMode.Create) Dim writer As New BinaryWriter(outputStream) Try Dim pdfBytes As Byte() pdfBytes = f.formatToMem(xmlUrl, xslUrl) writer.Write(pdfBytes) Catch ex As Exception Console.WriteLine("Error: " + ex.ToString) ' Show friendly error message. Finally writer.Close() outputStream.Close() End Try Dim msg = f.getErrorMsg Console.WriteLine(msg) End Sub End Module