5

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 のアセンブリ コードを追加するのはかなりの量に思えます。このシナリオを処理するためのより優れた「無料」の代替手段はありますか。

4

3 に答える 3

2

最終的にxhtmlrendererを使用することにしました。それは私のニーズに完全に適合し、多くの機能を備えており、どの HTML ファイルも正しくレンダリングできました。

現在、JAVA バージョンしかないため、IKVM を使用して jar を .NET アセンブリに変換する必要がありまし

于 2009-07-08T05:14:39.533 に答える
0

二項分布のJARでikvmcを使用すると、作成できなかったクラスからの多くの警告が表示されました。Flying SaucerがJavaオブジェクトをターゲットにしているという事実に対処するためにiKVMコアライブラリを含めた後、次の例外が発生しました。

`Cannot load AWT toolkit: ikvm.awt.NetToolkit, IKVM.AWT.WinForms, Version=0.40.0.1, Culture=neutral, PublicKeyToken=13235d27fcbfff58`

そしてそれは実行しただけでした:

`ITextRenderer toRender = new ITextRenderer();`

これがフライングソーサーが使用する主なオブジェクトのようです。それをどのように使用したかについての情報源を提供できますか?

于 2009-08-07T11:07:10.130 に答える
0

Windows を使用していると仮定すると、無料のPDFCreatorを COM またはコマンド ラインを介して自動化し、Internet Explorer のレンダリング エンジンを介して HTML を PDF にレンダリングするのはどうでしょうか?

PDFCreator をインストールすると、C:\Program Files\PDFCreator\COM\ フォルダーに多くの自動化の例があります。

于 2009-07-08T02:31:23.020 に答える