【发布时间】:2015-09-23 12:52:30
【问题描述】:
如何使用 C#.NET 中的 xsl 样式表从 XML 文档转换/转换/创建 xsl-fo 文件?
我想要实现的是一个 REST 服务,用于将 PDF “打印”到浏览器。 XML 是通过另一个 REST 服务加载的,样式表是预定义的,并且作为资源位于我的项目中。
这是到目前为止的代码,只是为了演示我所追求的结构:(注意返回类型 String 仅用于故障排除,一旦我进一步将被替换)
public String GetPDFList(String apiquery, String template)
{
String returnString;
/* BUILD QUERY TO GET XML CONTENT */
string returnUrl = api_url + apiquery + api_key;
/* BUILD XML CONTENT TO DOCUMENT */
XmlDocument doc = new XmlDocument();
doc.Load(returnUrl);
/* GENERATE XSL-FO FILE FROM XML AND XSL STYLESHEET */
/* TODO */
/* GENERATE PDF FROM XSL-FO FILE */
/* TODO */
/* RETURN PDF TO CLIENT */
/* TODO */
return returnUrl;
}
编辑:我目前正在尝试使用 fo.net 库来实现这一点,但我找不到任何有关如何执行创建 xsl-fo 文件的单一任务的文档。
【问题讨论】:
-
你必须使用类似这个库fonet.codeplex.com
-
是的,我正在将 fo.net 作为此解决方案的库,但我找不到任何有关如何执行此步骤的文档或示例。我在 codeplex (codeproject.com/Articles/595650/Creating-PDF-documents-from-XML) 看到了整个项目的示例,但我似乎无法使用它进行修改。学习如何使用不同的功能似乎有点太复杂了。我的问题应该更清楚,对此我深表歉意,并感谢您的评论!
-
从内存中,您将执行一个普通的 xml => XSL-T 转换来生成您的 FO。但是,这首先需要您了解所有 FO 语法,以便让您的文档通过 FO 解析器生成 PDF。我会试着给你找个例子。简而言之,您只是在 XML 上执行 XSL-T。
-
我找到了我的示例,我正在使用 FOP 生成最终的 pdf。你看过这些吗? xmlgraphics.apache.org/fop
-
Apache FOP 是否适用于 Java? fo.net 是与 c# 一起使用的 apache 端口吗?另外,我已经有 xsl 文件来描述输出的样式,但是我缺少将 xml 转换为 xsl-fo 的链接(使用 xsl 样式表)。还是我完全误解了这背后的逻辑?