2

私は現在、AJAXページから呼び出す「PrintingWebService」を持っています.PDF SharpとPDFSharpのGDI +モードを使用して高度にカスタマイズされたPDFプリントアウトを作成するために必要なすべての情報が含まれています。それらは PDF に描画されます。

次に、PDF ファイルを Web サーバー上の場所に保存し、Web サービスからファイル名を返すと、AJAX ページが PDF ファイルを含む新しいウィンドウを開きます。

これまでのところ、うまく機能していますが、印刷したい AJAX ページの一部があり、まだ解決策が思い浮かびません。PDF ページの下部に表示したい TinyMCE エディターの HTML コンテンツの文字列を取得しました。

この目的に使用できる何らかのツールを探しています。GDI+ に出力するオープンソースでさえ、ソース コードを取得して PdfSharp の GDI+ を使用するように変換することで使用できます (クラス名は XGraphics に似ており、各クラスは GDI+ 名の前に X が付いています)。

必要に応じて、TinyMCE で生成できる HTML を制限し、独自のレンダラーを作成しますが、それは大きな課題になるので、まず他の解決策を探しています。

既存のコードを使用して、既存の WinForms の印刷出力とほぼ同じページを作成したかったため、プリンターに適したページのアプローチには近づきませんでした。PdfSharp を使用すると、テキスト領域のもの (WinForms バージョンで RichTextBox と RTF を使用) を除くすべてのコードを変換できました。

4

1 に答える 1

2

トニー、

私は個人的に WebSupergoo の ABCPdf ライブラリを使用して多くの成功を収めました。実際に HTML を PDF に直接レンダリングすることができ、精度に関してはかなりうまくいきます。

HTML から PDF への書き込みを柔軟に行えるもう 1 つのフリー ソフトウェアは、私が過去に使用して大成功を収めた iTextSharp です。

それ以外の場合は、HTML を GDI にレンダリングするために何かを作成する必要があると思います。

いずれにせよ、web.config を使用してマップする HttpHandler を使用して PDF ファイルを生成することを検討することをお勧めします。これにより、PDF をバイトストリームにレンダリングし、それをユーザーに直接ダンプできます (各 PDF レシートを Web サーバーに保存する必要はありません)。また、領収書を返すページで .pdf 拡張子を使用することもできます (PurchaseReceipt.pdf は HttpHandler にマップできます)。クロスブラウザー フレンドリーになります。ASPX ページから PDF バイト ストリームをスローし始めると、古いバージョンの Adob​​e/ブラウザは正しく表示されません。

お役に立てれば。

于 2009-03-04T15:50:38.457 に答える