[xep-support] Transforming XmlDocument (Containing XSL-FO) to PDF

Hart, Leo Leo.Hart at FMR.COM
Wed Oct 6 08:22:43 PDT 2004


That seemed to do the trick!  Thanks for your help!

-----Original Message-----
From: Alexander Peshkov [mailto:peshkov at renderx.com] 
Sent: Tuesday, October 05, 2004 12:12 PM
To: Hart, Leo
Subject: Re: [xep-support] Transforming XmlDocument (Containing XSL-FO)
to PDF


Hello Leo,

It turns out that the problem is caused by lInReader.MoveToContent()
method call. If you remove it everything should work fine. Note that in
your code this method is useless anyway so you can remove it safely.

Best regards,
Alexander Peshkov                             mailto:peshkov at renderx.com
RenderX

HL> Does anyone have any advice for me on this problem?  I'm currently 
HL> evaluating a few different FO processors.  I had no trouble getting 
HL> the other ones to work, but I like the feature list of this one. 
HL> Unfortunately, because of time constraints, if I can't get XEP 
HL> working soon, I'll have to choose another vendor.

HL> BTW: I forgot to mention that I am using XEP.NET 3.8 on .NET 1.1.

HL> Thanks!
HL> Leo Hart

HL> -----Original Message-----
HL> From: Hart, Leo
HL> Sent: Friday, October 01, 2004 4:23 PM
HL> To: xep-support at renderx.com
HL> Subject: [WARNING: This message originated from outside of Fidelity]
HL> [xep-support] Transforming XmlDocument (Containing XSL-FO) to PDF


HL> I have a function that accepts an FO document in the form of a
HL> System.Xml.XmlDocument and returns a PDF in the form of a Byte
array.

HL> Here's the function:

HL>                 Public Shared Function TransformXslFOToPDF(ByRef
HL> pXslFODocument As XmlDocument) As Byte()
HL>                         m_log.Debug("Transforming XSL-FO to PDF: " &
HL> vbCrLf & pXslFODocument.OuterXml)

HL>                         'Holds the outgoing PDF stream
HL>                         Dim lOutStream As New MemoryStream

HL>                         'Get Xmldocument into Stream
HL>                         Dim lInStream As New MemoryStream
HL>                         pXslFODocument.Save(lInStream)
HL>                         lInStream.Position = 0

HL>                         'Get Stream into XmlReader
HL>                         Dim lInReader As New
XmlTextReader(lInStream)
HL>                         lInReader.MoveToContent()


HL>                         'Configuration settings for Formatter
HL>                         Dim lConfigSettings As New Hashtable
HL>                         lConfigSettings.Add("ROOT", "C:\Program
HL> Files\RenderX\XEP.NET 3.8")

HL>                         'FO Formatter
HL>                         Dim lFormatter As New
HL> Renderx.Xep.Formatter(lConfigSettings, Nothing)

HL>                         lFormatter.Format("", lInReader, lOutStream,
HL> Formatter.OUTPUT_PDF, lConfigSettings, Nothing)

HL>                         Return lOutStream.GetBuffer
HL>                 End Function

HL> And here's the FO that exists within pXslFODocument:

HL>                 <fo:root
HL> xmlns:rx="http://www.renderx.com/XSL/Extensions"
HL> xmlns:fo="http://www.w3.org/1999/XSL/Format">
HL>                         <fo:layout-master-set>
HL>                                 <fo:simple-page-master
HL> master-name="my-page">
HL>                                         <fo:region-body margin="1in"
/>
HL>                                 </fo:simple-page-master>
HL>                         </fo:layout-master-set>
HL>                         <fo:page-sequence
master-reference="my-page">
HL>                                 <fo:flow
flow-name="xsl-region-body">
HL>                                         <fo:block>Hello
HL> World!</fo:block>
HL>                                 </fo:flow>
HL>                         </fo:page-sequence>
HL>                 </fo:root>

HL> When I run this test case I receive the following error:

HL>                 Exception: Renderx.Xep.XepInvalidOperationException
HL>                 Message: startDocument: Invalid XSL FO source
HL> 'file:/C:/WINDOWS/system32/': 1 error found during validation
HL>                 Source: Renderx.Xep.Public
HL>                         at
Renderx.Xep.Sax.ContentHandler.endDocument()
HL>                         at
HL> Renderx.Xep.Sax.Adapter.XmlReaderToSax.WriteEndDocument()
HL>                         at
HL> Renderx.Xep.Sax.Adapter.XmlReaderToSax.Parse()
HL>                         at Renderx.Xep.Formatter.Format(String
HL> sBasePath, XmlReader reader, Stream outStream, String sOutFormat,
HL> Hashtable htGenProperties, Logger logger)
HL>                         at
HL> Sandbox.Library.XML.Transformer.TransformXslFOToPDF(XmlDocument&
HL> pXslFODocument) in C:\Documents and Settings\a122695\My
Documents\Visual
HL> Studio
Projects\Sandbox\LibrarySandbox\Classes\XML\Transformer.vb:line
HL> 60
HL>                         at
Sandbox.Web.GetPDFFromXSL_FO.Page_Load(Object
HL> sender, EventArgs e) in
HL> C:\Inetpub\WWWRoot\WebSandbox\ASP\XML\GetPDFFromXSL-FO.aspx.vb:line
43

HL> I assume this is related to the fact that the sBasePath parameter in
HL> lFormatter.Format is set to a null string.  I can't figure out what
I'm
HL> supposed to use this for.  I've tried various different file and
http
HL> paths, but all of them error out.  I just want to convert my
HL> memory-based FO document to a memory-based PDF.

HL> Any suggestions?

HL> Thanks,
HL> Leo Hart

HL> -------------------
HL> (*) To unsubscribe, send a message with words 'unsubscribe
xep-support'
HL> in the body of the message to majordomo at renderx.com from the address
you
HL> are subscribed from.
HL> (*) By using the Service, you expressly agree to these Terms of
Service
HL> http://www.renderx.com/tos.html

HL> -------------------
HL> (*) To unsubscribe, send a message with words 'unsubscribe
xep-support'
HL> in the body of the message to majordomo at renderx.com from the address
HL> you are subscribed from.
HL> (*) By using the Service, you expressly agree to these Terms of
Service http://www.renderx.com/tos.html


-------------------
(*) To unsubscribe, send a message with words 'unsubscribe xep-support'
in the body of the message to majordomo at renderx.com from the address
you are subscribed from.
(*) By using the Service, you expressly agree to these Terms of Service
http://www.renderx.com/tos.html

-------------------
(*) To unsubscribe, send a message with words 'unsubscribe xep-support'
in the body of the message to majordomo at renderx.com from the address
you are subscribed from.
(*) By using the Service, you expressly agree to these Terms of Service http://www.renderx.com/tos.html



More information about the Xep-support mailing list