我试图找到一个可以从OpenXml生成PDF的SDK.我使用Open Xml Power Tools来转换打开的XML和html,并使用iTextSharp将Html解析为PDF.但结果是看起来很糟糕的PDF.
我还没有尝试过iText的RTF解析器.如果我朝这个方向发展,我将最终需要一个RTF转换器,使简单的转换成为一个双重的噩梦.
看起来我最终可能会编写一个基于电动工具OpenXml到HTML转换器的自定义转换器.任何建议表示赞赏.由于许可证太贵(Aspose Word/TxText),我真的在这个时候最终无法找到专业的转换器.
我想我会在调查中投入更多精力.我回到了转换实用程序"http://msdn.microsoft.com/en-us/library/ff628051.aspx"并查看了它的代码.鉴于它最大的缺点是阅读底层样式并生成样式属性.由于不处理自定义真实字体的限制,PDF看起来好多了.明天会更多调查.我希望做过这样的事情/遇到奇怪的问题,并且可以解释一些问题.
private static StringDictionary GetStyle(XElement el)
{
IEnumerable jcL = el.Elements(W.jc);
IEnumerable spacingL = el.Elements(W.spacing);
IEnumerable rPL = el.Elements(W.rPr);
StringDictionary sd = new StringDictionary();
if (HasAttribute(jcL, W.val)) sd.Add("text-align", GetAttribute(jcL, W.val));
// run prop exists
if (rPL.Count() > 0)
{
XElement r = rPL.First();
IEnumerable ftL = el.Elements(W.rFonts);
if (r.Element(W.b) != null) sd.Add("font-weight", "bolder");
if (r.Element(W.i) != null) sd.Add("font-style", "italic");
if (r.Element(W.u) != null) sd.Add("text-decoration", "underline");
if (r.Element(W.color) != null && HasAttribute(r.Element(W.color), W.val)) sd.Add("color", "#" …Run Code Online (Sandbox Code Playgroud)