OpenXml'den PDF oluşturabilen bir SDK bulmaya çalışıyorum. Açık XML ve html'yi dönüştürmek için Open Xml Power Tools'u ve Html'yi PDF'ye ayrıştırmak için iTextSharp'ı kullandım. Ama sonuç çok korkunç bir PDF dosyasıdır.OpenXml'den PDF oluşturma
Henüz iText'in RTF çözümleyicisini denemedim. Bu yöne gidersem, basit dönüşümü çift adımlı bir kabus haline getiren bir RTF dönüştürücüsüne ihtiyacım olur.
Neredeyse, html dönüştürücüsüne OpenXml araçlarından oluşan özel bir dönüştürücü yazabilirim gibi görünüyor. Herhangi bir tavsiye takdir edilmektedir. Ben gerçekten bu anda lisanslar çok pahalı (Aspose Word/TxText) gibi profesyonel bir dönüştürücü için gidiş sona eremez.
Araştırmam için biraz daha çaba harcayacağımı düşündüm. "Http://msdn.microsoft.com/en-us/library/ff628051.aspx" dönüşüm programına geri döndüm ve kodunu inceledim. Kaçırdığı en büyük şey, temel stilleri okumak ve bir stil özelliği oluşturmaktı. PDF, özel gerçek yazı tipinin işlenmemesi sınırlamasıyla çok daha iyi görünüyordu. Yarın daha fazla araştırma. Umarım bu gibi/yüzlü garip konular gibi bir şey yapmış ve biraz ışık tutabilir.
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;
}
Örnek: http://msdn.microsoft.com/en-us/library/ff628051.aspx – Shrini