gpt4 book ai didi

pdf-generation - 从 OpenXml 生成 PDF

转载 作者:行者123 更新时间:2023-12-04 21:49:39 26 4
gpt4 key购买 nike

我试图找到一个可以从 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", "#" + GetAttribute(r.Element(W.color), W.val));
if (r.Element(W.rFonts) != null )
{
//
if(HasAttribute(r.Element(W.rFonts), W.cs)) sd.Add("font-family", GetAttribute(r.Element(W.rFonts), W.cs));
else if (HasAttribute(r.Element(W.rFonts), W.hAnsi)) sd.Add("font-family", GetAttribute(r.Element(W.rFonts), W.hAnsi));
}
if (r.Element(W.sz) != null && HasAttribute(r.Element(W.sz), W.val)) sd.Add("font-size", GetAttribute(r.Element(W.sz), W.val) + "pt");
}

return sd.Keys.Count > 0 ? sd : null;
}

最佳答案

我不知道有任何带有源代码的直接转换器,但是是的,我的想法是您可能需要从头开始构建转换器。幸运的是(我猜),Word 的 WordprocessingML 是最简单的 Open XML 格式,您可以从其他项目中寻找灵感,例如:

  • TextGlow - Word 到 Silverlight 转换器
  • Word to XAML Converter - Word 到 XAML 转换器(可能非常
    类似于上面的TextGlow)
  • OpenXML-DAISY - 转换为雏菊
  • ODF Converter - 从/向 OpenOffice 格式和 OpenXML 转换
  • 您已经引用过 Eric White 的 XHTML 解决方案。

  • 对于商业和服务器端解决方案,您可以使用 Word Automations Services (需要 SharePoint)或 Apose.NET Words .

    关于pdf-generation - 从 OpenXml 生成 PDF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7290528/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com