2009-03-04 16 views
2

私は現在、AJAXページから、PDFシャープとPDFSharpのGDI +モードを使用して高度にカスタマイズされたPDFプリントアウトを作成するために必要なすべての情報を呼び出します。基本的にGDI +のように動作する他のコマンドは、PDFにのみ描画されます。PdfSharp、GDI +、およびHTML印刷

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

これまでのところ、うまくいきましたが、印刷するAJAXページの一部があり、まだ解決策がありません。 TinyMCEエディタのHTMLコンテンツの文字列がPDFページの一番下に表示されます。

私はこの目的に使用できるツールを探しています。 GDI +に印刷する何かopensourceでも、私はソースコードをとり、PdfSharpのGDI +(クラス名はXGraphicsのように、各クラスはGDI +名の前にXを持つ)を使用するように変換することで使用できます。

私はTinyMCEで生成できるHTMLを制限し、自分自身のレンダラーを書くことができますが、それは大きな課題になるので、まずは他の解決策を探しています。

私は、既存のWinFormsプリントアウトとほぼ同じだったページを、既存のコードを使用して構築したかったので、プリンタフレンドリなページアプローチから離れました。 PdfSharpを使用すると、テキストエリアのもの(WinFormsバージョンのRichTextBoxとRTFを使用したもの)以外のすべてのコードを変換することができました。

答えて

2

トニー、

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

過去に多くの成功を収めていたPDFをHTMLに書き込む自由なソフトウェアは、iTextSharpです。

そうでなければ、HTMLをGDIにレンダリングするために何かを書く必要があると思います。

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

これが役に立ちます。

+0

ありがとう、私はそれらをチェックします。 これまでのブラウザサポートに関しては、これは社内でのプロジェクトなので、サポートされているブラウザやバージョンまではもっと贅沢です。しかし、そのことを覚えておいてください。 –