我找到了一个解决方案,使用Marc Gravell出色的 TransformXMLToHTML 方法将 XML + XSLT 转换为 HTML。
然后可以将 HTML 转换为 PDF。
这种方法可能比编辑二进制 PDF 慢。但它很稳定,让我可以完全控制内容质量。
步骤 1 - 将 XML + XSLT 转换为 HTML
我需要添加 Nuget,包括: https ://www.nuget.org/packages/System.Xml.ReaderWriter/
using System.Xml;
using System.Xml.Xls;
using System.IO;
public static string TransformXMLToHTML(string inputXml, string xsltString)
{
XslCompiledTransform transform = new XslCompiledTransform();
using(XmlReader reader = XmlReader.Create(new StringReader(xsltString))) {
transform.Load(reader);
}
StringWriter results = new StringWriter();
using(XmlReader reader = XmlReader.Create(new StringReader(inputXml))) {
transform.Transform(reader, null, results);
}
return results.ToString();
}
Run Code Online (Sandbox Code Playgroud)
第 2 步 - 将 HTML 转换为 PDF
我试过:
所有人都工作并有自己的弱点和优点。
[我们不要争论最好的 C# HTML 到 PDF 转换器。]