ホームページ  >  記事  >  バックエンド開発  >  【再版】pdfファイルを生成する史上最強のphp、htmlをpdfファイルに変換する方法_PHPチュートリアル

【再版】pdfファイルを生成する史上最強のphp、htmlをpdfファイルに変換する方法_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:28:311160ブラウズ

いくつかの HTML ページから PDF ファイルを生成する必要がある顧客がいたので、PHP を使用して HTML ページを PDF ファイルに変換するいくつかのクラスを探しました。 html2pdf、pdflib、および FPDF を試しましたが、どれも私の要件を満たしていませんでした。

pdflib、FPDF これら 2 つの方法では、PDF を生成するためのプログラムを作成する必要があります。つまり、HTML ページを PDF に直接変換することはできません。ただし、html2pdf は HTML ページを PDF ファイルに変換できますが、単純な HTML コードしか変換できません。 HTML コンテンツはバックグラウンド ニュース エディターを使用して植字したいと考えていますが、間違いなく機能しません。

長い間苦労した後、BaiduとGoogleで検索した結果、ついに非常に使いやすい方法を見つけました。

それは: wkhtmltopdf、wkhtmltopdfはブラウザで閲覧できるあらゆるWebページをPDFに直接変換できます まず最初に説明しておきますが、これはphpクラスではなく、htmlページをpdfに変換するソフトウェアです。これは単純なデスクトップ ソフトウェアではなく、cmd のバッチ処理を直接実行します。そしてphpにはshell_exec()関数があります。以下では、php を使用して PDF ファイルを生成する方法を段階的に紹介します。

1、PDFをダウンロードしてインストールします
ダウンロードアドレス: http://code.google.com/p/wkhtmltopdf/downloads/list
さまざまなプラットフォーム用のインストール パッケージが用意されています。英語が苦手な場合は、Google を使って翻訳してください。以下は たとえば、Windows プラットフォームでは、win7 を実行している wkhtmltopdf-0.9.9-installer.exe バージョンをダウンロードしました。 32ビット、64ビット、Windows 2003でのインストールテストでは問題ありませんでした。ダウンロード後、直接インストールしてください。以下で使用するインストール パスに注意してください。
インストール後、「Path」という名前のシステム環境変数に次の内容を追加する必要があります: ;C:Program Files (x86)wkhtmltopdf (インストールしたディレクトリ)。インストール後、コンピュータを再起動します。

第二に、効果をテストします
cmd に直接入力します: wkhtmltopdf http://www.shwzzz.cn/ F:website1.pdf
1 つ目は実行中のソフトウェアの名前 (これは変更されません)、2 つ目は URL、3 つ目は生成されたパスとファイル名です。 Enter キーを押した後、生成の進行状況バーのプロンプトが表示されますか? 生成ディレクトリに移動して、新しく生成された PDF ファイルがあるかどうかを確認します。

3、phpを呼び出します
php での呼び出しは非常に簡単で、shell_exec 関数を使用するだけです。shell_exec 関数が使用できない場合は、php.ini で無効になっているかどうかを確認してください。
例:

3、ページングの問題を解決します
wkhtmltopdf は非常に便利ですが、いくつかの欠点があります。 HTML ページが非常に長く、指定した場所でページネーションする必要がある場合はどうすればよいですか? wkhtmltopdf の開発者は、開発時にこれを考慮していませんでした
たとえば、次の HTML ページ:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<title>pdf</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<style type="text/css">
*{マージン:0px;}
div{幅:800ピクセル;高さ:1362ピクセル;}
</スタイル>

<div>1362px ですが、先に進むほど値がおかしくなり、PDF ページが何ピクセルなのかまだわかりません。 
<p>しかし、<span>wkhtmltopdf には、その div のスタイルの後に page-break-inside:avoid; を追加するという優れた方法があります。 <br>
</span></p>
<pre class="brush:html;toolbar:false;"><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<title>pdf</title>
<link href="css/style.css" rel="stylesheet" type="text/css" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<style type="text/css">
*{マージン:0px;}
div{幅:800ピクセル;最小高さ:1362ピクセル;マージン:自動;ページ区切り内:回避;}
</スタイル>

<div>http://code.google.com/p/wkhtmltopdf/これは <span>wkhtmltopdf の問題に関するコミュニケーション プラットフォームですが、英語です。 </span>
<p><span>記事の出典: http://www.shwzzz.cn/news/xuetang/159.html</span></p><p align="left"></p><div style="display:none;">
<span id="url" itemprop="url">http://www.bkjia.com/PHPjc/781928.html</span><span id="indexUrl" itemprop="indexUrl">www.bkjia.com</span><span id="isOriginal" itemprop="isOriginal">tru​​e</span><span id="isBasedOnUrl" itemprop="isBasedOnUrl">http://www.bkjia.com/PHPjc/781928.html</span><span id="genre" itemprop="genre">技術記事</span><span id="description" itemprop="description">以前、顧客がいくつかの HTML ページから PDF ファイルを生成する必要があったため、私は PHP を使用して HTML ページを PDF ファイルに変換するいくつかのクラスを探しました。 html2pdf、p...</span>
</div>など、非常に多くの方法を見つけたと言えます。
<div class="art_confoot"></div>
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。