iTextSharp を使用して HTML を PDF に変換していますが、絶対配置された要素では機能しないようです。たとえば、次の HTML ファイルがあります。
<html>
<body>
<p style="position: absolute; left: 10px; top: 100px; width: 50px;">Hello World</p>
</body>
</html>
結果の PDF ファイルで、テキストが正しく配置されません。HTML を PDF に変換するときに要素を絶対配置できるかどうか知っていますか? これを可能にする無料のソリューション(iTextSharpまたはその他)は大歓迎です。
iTextSharp で変換を実行するために使用しているコードは次のとおりです。
class Program
{
static void Main(string[] args)
{
Document document = new Document(PageSize.A4);
using (Stream output = new FileStream("out.pdf", FileMode.Create, FileAccess.Write, FileShare.None))
using (Stream htmlStream = new FileStream("input.htm", FileMode.Open, FileAccess.Read, FileShare.Read))
using (XmlTextReader reader = new XmlTextReader(htmlStream))
{
PdfWriter.GetInstance(document, output);
HtmlParser.Parse(document, reader);
}
Process.Start(@"C:\Program Files\Adobe\Reader 9.0\Reader\AcroRd32.exe", "out.pdf");
}
}
編集:
さらに調査した結果、iTextSharp の HTML から PDF への変換機能は、いくつかの非常に単純な HTML ドキュメントに限定されているようです。Flying Saucerと呼ばれる、複雑な HTML ドキュメントを処理する素晴らしい Java プロジェクトがあります。そこで、IKVMで使用してみましたが、非常にうまく機能しました。唯一の問題は、それがどういうわけか汚い解決策を感じるということです. HTML から PDF への変換用に 31MB のアセンブリ コードを追加するのはかなりの量に思えます。このシナリオを処理するためのより優れた「無料」の代替手段はありますか。