OpenXmlからPDFを生成できるSDKを探しています。 Open XML Power Toolsを使用してオープンXMLとHTMLを変換し、iTextSharpを使用してHTMLをPDFに解析しました。しかし、結果は非常にひどい見た目のPDFです。OpenXmlからPDFを生成
私はまだiTextのRTFパーサーを試していません。私がこの方向に向かうと、私はRTFコンバータを必要とし、単純な変換を2段階の悪夢にします。
私は結局、パワーツールOpenXmlをベースにしたカスタムコンバータをhtmlコンバータに書き込むかもしれないようです。どんな助言も高く評価されます。私は本当にこの時点では、ライセンスが高価すぎるのでプロのコンバータのために行くことができない(Aspose Word/TxText)。
私は調査にもっと力を入れたいと思っていました。私は変換ユーティリティ "http://msdn.microsoft.com/en-us/library/ff628051.aspx"に戻り、そのコードを調べました。欠落していた最大の事は、基本となるスタイルを読み込んでスタイル属性を生成することでした。カスタムのTrueTypeフォントを扱わないという制限があるため、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;
}
サンプル:http://msdn.microsoft.com/en-us/library/ff628051.aspx – Shrini