C# 将xsl-fo转换为pdf
我有一个XSL-FO文件,数据以xml/json格式提供。我想用这个xsl结构创建一个pdf 有人能推荐任何开源库进行转换吗?我希望它在C级完成 注意:我尝试转换为html,但由于它是xsl fo文件,我无法获得对齐。您可以使用Apache FOP()工具。它可以从XSL-FO输入生成PDF文档 从C#可以启动apachefop进程,将其指向XSL-FO文件(或者使用stdin,这样就不必使用任何临时文件)。进程存在后,您将获得PDF文件(在磁盘或标准输出上的文件中) 对于start,您可以让apachefop读取XSL-FO文件并将PDF文件写入磁盘,以便使用C# 将xsl-fo转换为pdf,c#,.net,pdf,xsl-fo,C#,.net,Pdf,Xsl Fo,我有一个XSL-FO文件,数据以xml/json格式提供。我想用这个xsl结构创建一个pdf 有人能推荐任何开源库进行转换吗?我希望它在C级完成 注意:我尝试转换为html,但由于它是xsl fo文件,我无法获得对齐。您可以使用Apache FOP()工具。它可以从XSL-FO输入生成PDF文档 从C#可以启动apachefop进程,将其指向XSL-FO文件(或者使用stdin,这样就不必使用任何临时文件)。进程存在后,您将获得PDF文件(在磁盘或标准输出上的文件中) 对于start,您可以让a
Process
class():
代码段草稿(可能包含错误,但对您来说应该是一个良好的开端):
我试着使用它,它对我有效,
下面是示例代码
string lBaseDir = System.IO.Path.GetDirectoryName("e:\thermalpdf.xsl");
XslCompiledTransform lXslt = new XslCompiledTransform();
lXslt.Load("e:\thermalpdf.xsl");
lXslt.Transform("e:\billingData1.xml", "books1.fo");
FileStream lFileInputStreamFo = new FileStream("books1.fo", FileMode.Open);
FileStream lFileOutputStreamPDF = new FileStream("e:\response2.pdf", FileMode.Create);
FonetDriver lDriver = FonetDriver.Make();
lDriver.BaseDirectory = new DirectoryInfo(lBaseDir);
lDriver.CloseOnExit = true;
lDriver.Render(lFileInputStreamFo, lFileOutputStreamPDF);
lFileInputStreamFo.Close();
lFileOutputStreamPDF.Close();
我用可用的示例代码尝试了这个方法,但它不起作用。你能帮我提供一个好的示例代码吗?请分享你尝试过的内容,出错的地方,等等。我们帮助你会容易得多。我试过这个,但引用有一些问题,我没有得到确切的使用方法。使用
进程类并作为单独的进程运行Apache FOP要容易得多。你能给我一个示例代码或任何引用,以便我可以处理这个问题吗
string lBaseDir = System.IO.Path.GetDirectoryName("e:\thermalpdf.xsl");
XslCompiledTransform lXslt = new XslCompiledTransform();
lXslt.Load("e:\thermalpdf.xsl");
lXslt.Transform("e:\billingData1.xml", "books1.fo");
FileStream lFileInputStreamFo = new FileStream("books1.fo", FileMode.Open);
FileStream lFileOutputStreamPDF = new FileStream("e:\response2.pdf", FileMode.Create);
FonetDriver lDriver = FonetDriver.Make();
lDriver.BaseDirectory = new DirectoryInfo(lBaseDir);
lDriver.CloseOnExit = true;
lDriver.Render(lFileInputStreamFo, lFileOutputStreamPDF);
lFileInputStreamFo.Close();
lFileOutputStreamPDF.Close();