web-dev-qa-db-ja.com

JavaScriptを使用してHTML(Javascriptを持つ)をPDFに変換する

HTML(JavaScriptを含む)をPDFに変換したい。どうやってやるの?

Webページに表示されているものを表示したいだけです。 JavaScriptライブラリによって生成されたガントチャートを表示しています。

今、そのHTML WebページをPDFとして保存したいのですが、どうすればいいですか?

14
g.revolution

また、複雑なjavascriptを含むhtmlファイルをpdfに変換する方法を探しています。ファイルのjavasriptにはdocument.writeおよびDOM操作。

HtmlUnit を組み合わせてファイルを解析し、 Flying Saucer を組み合わせてPDFにレンダリングしようとしましたが、結果は十分ではありません。それは機能しますが、私たちの場合、pdfはユーザーが望むものに十分に近づいていません。

これを試してみたい場合は、ローカルHTMLファイルをPDFに変換するコードスニペットを以下に示します。

URL url = new File("test.html").toURI().toURL();
WebClient webClient = new WebClient(); 
HtmlPage page = webClient.getPage(url);

OutputStream os = null;
try{
   os = new FileOutputStream("test.pdf");

   ITextRenderer renderer = new ITextRenderer();
   renderer.setDocument(page,url.toString());
   renderer.layout();
   renderer.createPDF(os);
} finally{
   if(os != null) os.close();
}
5
Serxipc

APIを使用して作業を行う可能性について誰も言及していないことに驚いています。

確かに、セキュリティを維持したい場合は、JavaScriptを使用してブラウザー内からHTMLをPDFに直接変換することはお勧めできません。

ただし、次のことが可能です。

ユーザーが「印刷」(たとえば)ボタンを押すと、次のことができます。

  1. 特定のエンドポイントのサーバーに、変換対象の詳細(ページのURLなど)を含むリクエストを送信します。
  2. このエンドポイントは、APIに変換するデータを送信し、応答でPDF=
  3. これはユーザーに返されます。

ユーザーの視点では、ボタンをクリックすることでPDFを受け取ります。

仕事をする多くの利用可能なAPIがあり、他のAPIよりも優れているものもあります(それが私がここにいる理由ではありません)、Google検索はあなたに多くの答えを与えます。

バックエンドの記述内容に応じて、 PDFShift (真実:私はそこで働いています)に興味があるかもしれません。

PHP用のすぐに使えるパッケージ、PythonおよびNode.js。パッケージをインストールし、アカウントを作成し、APIキーを指定するだけで設定完了です。

APIの利点は、すべての言語で適切に機能することです。必要なのは、変換するデータを含むリクエスト(通常はPOST)のみで、PDFを返します。使用状況によっては、通常は無料です。ただし、ヘビーユーザー。

2
Cyril N.

iText for Javaを使用してPDFに変換できます。

itextを使用してHTMLをPDFに変換する

私はiTextを頻繁に使用しましたが、非常に簡単で、すぐに習得できます。

1
Trick

ブラウザウィジェット( SWTのウィジェットなど )を使用してチャートを画像としてレンダリングし、次に iText を使用してPDF fromそれ。

1
Aaron Digulla

Wkhtmltopdfの使用をお勧めします。 http://wkhtmltopdf.org/

1
arkod

Docmosis または JODReports を使用すると、HTMLとJavascriptをPDFまたはdocまたはその他の形式を生成できるドキュメントのレンダリングプロセスに送り込むことができます。変換はOpenOfficeによって実行されるため、結果はOpenOfficeインポートフィルターに依存します。Webページをファイルに保存し、OpenOfficeでロードすることで手動で試すことができます-それが十分に見える場合、これらのツールはあなたに与えることができますPDFと同じ結果。

0
Paul Jowett

これを確認してください http://www.techumber.com/2015/04/html-to-pdf-conversion-using-javascript.html

基本的に、html2canvasとjspdfを使用して機能させる必要があります。まず、domを画像に変換し、jspdfを使用して画像を含むpdfを作成します。

編集:それがどのように機能するかについての短いメモ。この作業を完了するために、2つのライブラリを使用します。 http://html2canvas.hertzen.com/ および https://github.com/MrRio/jsPDF 最初に、使用するhtml2canvasを使用してdomイメージを作成しますその画像をpdfに追加するjspdf addImageメソッド。簡単に思えますが、jsPdfとhtml2cavasにはほとんどバグがないため、一時的にdomスタイルを変更する必要があります。お役に立てれば。

PhantomJS は、PDFをサポートするキャプチャ機能でこれを達成する可能性があります。

コマンドラインでやり取りできるものが必要な場合。 Nota (まだまだ初期段階)というアプリケーションを作成しようとしました。 JavaScriptがページをPDFとしてレンダリング/操作してからキャプチャできるようにします。

0
Felix Akkermans

JQueryプラグインであるTableExportを試してください。

https://github.com/kayalshri/tableExport.jquery.plugin

0
Steven Vachon

ブラウザのPrint...メニュー項目PDFCreator のようなPDFプリンタードライバーを利用できます。このように、ページに含まれるJavaScriptは、ページがレンダリングされるときにブラウザーによって処理されます。

PDFCreator は、ほとんどすべてのWindowsアプリケーションからPDFファイルを作成する無料ツールです。

  • 印刷可能な任意のプログラムからPDFを作成します
0
gimel

これをサイトにコピーして貼り付け、ページをPDFページに変換するリンクを提供します。

<a href="javascript:void(window.open('http://www.htmltopdfconverter.net/?convert='+window.location))">Convert To PDF</a>
0
Jokin