Tag Archives: PDF

POST2PDF Converter バージョン0.4 リリース

WordPressの投稿や固定ページをPDF形式でダウンロード出来るようにするプラグイン「POST2PDF Converter バージョン0.4」をリリースした。 最新の「POST2PDF Converter」をダウンロード バージョン0.4では、作成されたPDFをキャッシュする機能を追加した。 過去のバージョンでは、ダウンロードリンクがクリックされる度に、PDFへの変換処理を行う仕様であったが、新しく追加されたキャッシュを有効にすることで、一度変換が行われた投稿に関しては変換を行わず、キャッシュからダウンロードされるようになり、サーバーの負荷が軽減されるようになった。 キャッシュの保持期間の設定は出来ず、無制限であるが、記事の内容が変更された場合は、更新後の最初ダウンロードのタイミングで個別にキャッシュは更新され、変更内容がPDFに反映される。 また、設定のリセットを含め、PDFの内容に影響を与える設定変更を行った場合や、キャッシュを無効にした場合には、すべてのキャッシュファイルがクリアされるようになっている。 記事とキャッシュの内容の不一致が起こらないように配慮しており、手動でキャッシュをクリアすることも出来るが、これは殆ど使う必要はないだろう。 記事とキャッシュの不一致が起こると考えられるケースは、直接、データベース上の記事データを変更した場合で、これをダッシュボード上から実行できるプラグインもあるが、通常の仕様の範囲では、まず、記事とキャッシュの不一致は発生しないと考えて良いだろう。 なお、ダッシュボードからプラグインの自動更新を行った場合も、キャッシュはクリアされてしまうため、これを避けたいならば、アップデートの際、手動で上書きインストールを行えば良い。 キャッシュは、「プラグインディレクトリ/post2pdf-converter/pdfs」に格納されている。

Posted in WordPress, ネット・PC, 自作アプリ | Tagged , , , | 5 Comments

PDFファイルを生成するためのPHPライブラリ「TCPDF」

昨年末にWordPressの投稿や固定ページをPDF形式でダウンロード出来るようにするプラグイン、「POST2PDF Converter」をリリースしたところ、予想外に反響があった。 そもそも、同様の機能を持つプラグインは既に複数存在しており、「POST2PDF Converter」は、特に目新しいプラグインではないのであるが・・・。 投稿や固定ページをPDFへ変換するプラグインのうち、人気のものは外部のオンラインサービスを利用してPDFファイルの変換している。 例えば、「Print Friendly and PDF Button」は、「printfriendly」と言うサービスを利用してPDFに変換している。 また、「PDF24 Article To PDF」は、「PDF24」というサービスを利用しており、「PDF & Print Button Joliprint」は、「joliprint」を利用している。 これらのサービスは、PDF変換以外の機能も提供しているケースが多く、概ね高機能である。 対して「POST2PDF Converter」は、「TCPDF」というオープンソースのPHPライブラリを利用しており、外部サービスに依存せず、サーバー上で変換を行う。 もっとも、「TCPDF」を利用したプラグインは、以前から他にも存在しており、この点でも「POST2PDF Converter」が特に目新しいものでは無いのであるが・・・。 どちらかと言えば、「TCPDF」を利用したプラグインは、WordPressのプラグインの中ではマイナーな部類になるが、それは「TCPDF」が機能的に劣ると言うことではなく、UTF-8のWordPressコンテンツとも基本的に相性が良い。 「TCPDF」は、イタリア人のNicola Asuni氏(Tecnick.com S.r.l)によって開発されたPHPライブラリであり、「FPDF」の派生である。 このライブラリを使用するには、PHP 5が必要であるが、PHP 4用のパッケージも用意されている。 PHPのライブラリであるが故に、WordPressとの相性も良く、簡単な記述でDBからHTML形式のコンテンツ取得し、それを「TCPDF」に渡してPDF形式に変換することが出来る。 また、グラフやQRコードなどのバーコードの描画も可能であり、工夫次第で、かなり凝ったPDFを生成できるようになっている。 APIは単純とは言えないが、僅かなコードの追加でHTMLをPDFに変換するための処理を記述できる。 WordPressのようにコンテンツをHTML形式で取得し易いシステムであれば、導入に苦はないはずである。 PDFへの変換処理に関しては「TCPDF Examples」でサンプルが用意されているので、これを真似て書くと手っ取り早いだろう。 少し版は古いが「MONZEN.ORG」で日本語ドキュメントが用意されているので、これも参考になる。 TCPDFについて TCPDF マニュアル 日本語版 ディレクトリパス、フォント、フォントサイズと言った設定パラメーターは「/config/tcpdf_config.php」で定数として設定する形になっており、必要に応じてこれを編集する。 「/config/lang」ディレクトリには、各言語用の設定ファイルが格納されている。 バージョン5.9.145からは日本語用の設定ファイル「jpn.php」が同行されているので、これを使えば良いが、設定ファイルの記述自体は単純であり、足りない言語の設定ファイルも簡単に自作することが出来る。 $l['a_meta_charset'] で文字コード、$l['a_meta_dir']で記述方向(左から右ならltr、右から左ならrtl)、$l['a_meta_language']で言語コード定義する。 そして、$l['w_page']では、「page」の訳を定義する。 下記は、UTF-8、日本語の場合の記述例である。 // Japanese global $l; $l = Array(); // PAGE META DESCRIPTORS ————————————– $l['a_meta_charset'] = 'UTF-8'; $l['a_meta_dir'] = 'ltr'; $l['a_meta_language'] = 'ja'; // TRANSLATIONS ————————————– $l['w_page'] = 'ページ'; //============================================================+ // END OF FILE //============================================================+ この設定ファイルは、最初にrequire_once()で読みこめば良い。 更にもう1つ、言語によって変更すべき要素があり、それがフォントである。 フォントは、setHeaderFont、setFooterFont、SetFont、SetDefaultMonospacedFontメソッドで指定する。 なお、SetDefaultMonospacedFontでは、プロポーショナルフォントを指定することは出来ず、等幅フォントを指定する必要がある。 標準の日本語フォントは、 cid0jp(ArialUnicodeMS) kozgopromedium(Kozuka Gothic Pro) kozminproregular(Kozuka Mincho Pro) の3つであるが、残念ながら文字化け等が発生するケースがある。 場合によっては、オープンソースのTrueType日本語フォントなどをTCPDF用に変換して、それを使った方が良いかもしれない。 バージョン5.9.123からは、TrueTypeフォントをTCPDF用に変換するためのメソッド、addTTFfont()が追加されたので、フォントの変換の際にはこれを利用する。 また、5.9.122以前に同梱されていたツールを使っても良い。 なお、このサイトでもオープンソースのIPAフォントと梅フォントをTCPDF用に変換したものを公開している。 TCPDFは、HTMLタグを解釈し、タグに従ってレイアウトを行った上でPDFに変換するが、全てのタグや属性を正しく解釈できる訳ではない。 また、通常ウェブサイトは、別途CSSを読み込んでレイアウトを行なっているが、このCSSがPDFに反映される訳でもない。(あくまでHTMLのみ解釈する。) そのため、生成したPDFは、実際のウェブサイトとレイアウトが異なってしまう場合が多い。 必要であれば、HTMLにstyle属性を付加するなどして、微調整する必要がある。 PDFに変換される事を意識してHTMLを書くのも良いし、HTMLをそのままTCPDFに渡すのではなく、その前の段階で、HTMLをTCPDFに最適化させる処理を入れても良い。 拘れば、ここが最も面倒な作業になるだろう。

Posted in PHP, WordPress, ネット・PC | Tagged , , | Leave a comment

POST2PDF Converter バージョン0.3 リリース

WordPressの投稿や固定ページをPDF形式でダウンロード出来るようにするプラグイン「POST2PDF Converter バージョン0.3」をリリースした。 最新の「POST2PDF Converter」をダウンロード 「POST2PDF Converter」は、一度、変換されたPDFを保存せず、ダウンロードリンクがクリックされる度に、新たにPDFへの変換を行う方式を採用しており、この方法は、記事を変更した場合にも、リアルタイムでPDFにも反映されるというメリットがあるが、サーバーに負荷を掛けると言うデメリットもある。 このあたりは次のバージョンでの改善を考えているが、バージョン0.3では、この問題を解決する1つの手段として設定画面上で管理者が手動で記事をPDFに変換し、ダウンロード出来るようにした。 設定画面で作成したPDFファイルに、記事に任意の場所でリンクを貼れば、サーバーに負荷を掛ける事なく、記事をPDF形式でダウンロード出来るようになる。 また、「POST2PDF Converter」がPDF作成のために利用してる「TCPDF」は、PC用のTrueTypeフォントを直接フォントとして使用することが出来ず、予め変換を行う必要があるが、バージョン0.3では、この変換作業を設定画面上で行うこと出来るようになった。 変換できるフォントは、TrueTypeフォント、OpenTypeフォント、Type1フォントなどである。 なお、変換テストは、TrueTypeフォントでしか行なっていない。 TCPDF用フォントへの変換は、プログラムの改変する行為であり、またPDFで使用すると言うことは、広く一般に配布されるドキュメントでフォントを埋め込む事を意味する。 そのため、変換が許されるフォントは、ライセンス上、改変が許され、PDFの埋め込みフォントとして利用でき、作成したPDFの配布が許されているフォントに限られる。 現実的は、オープンソースのフォントや自作のフォントに限られるだろう。 変換後のフォントを再配布する場合も、ラインセンス上、問題がないか確認すること。

Posted in WordPress, ネット・PC, 自作アプリ | Tagged , , , | Leave a comment

POST2PDF Converter バージョン0.2 リリース

WordPressの投稿や固定ページをPDF形式でダウンロード出来るようにするプラグイン「POST2PDF Converter バージョン0.2」をリリースした。 最新の「POST2PDF Converter」をダウンロード バージョン0.2では、ショートコードをサポートし、ショートコードを使って、投稿や固定ページの任意の場所にPDFのダウンロードリンクを追加できるようにしている。 書式:[pdf]PDF形式でダウンロード[/pdf] ショートコードを使えば、特定のページのみPDF形式でのダウンロードを許可すると言ったことが出来る。 また、様々な属性をサポートしており、ページごとに言語やフォントやロゴを変えたり、投稿IDを指定して、別のページをPDFとしてダウンロードさせることも可能だ。 書式:[pdf id="1643" lang="jpn" file="id" font="cid0jp" monospaced="cid0jp" fontsize="11" subsetting="1" ratio="1.35" header="1" logo="1" logo_file="my_logo.png" logo_width="45" wrap_title="1" footer="1" filters="1" shortcode="1" ffamily="0"]Click here to get a PDF[/pdf] また、このバージョンからは、本文末に署名を表示できるようになった。 任意のテキストを署名として登録できるので、署名以外に、ラインセンス、メッセージなどの表示にも利用できる。 加えて、引用やソースコードが本文に含まれる場合、それを整形して表示する機能も追加され、PDFに変換された際に見やすくなっている。 WP SyntaxHighlighter、SyntaxHighlighter Evolved、Syntax Highlighter for WordPress、Syntax Highlighter CompressなどのSyntaxHighlighterベースのプラグイン用に書かれたソースコード、WP-Syntax、CodeColorer、WP-CodeBox、WP-SynHighlightなどのGeSHiベースのプラグイン用に書かれたソースコードがその対象となる。 設定画面の項目も増え、ヘッダー、フッターの表示/非表示、フィルターの有効化/無効化、長いタイトルの折り返しと言った機能を設定できるようになっている。 また、同梱しているTCPDFをバージョン5.9.142にアップデートしている。

Posted in WordPress, ネット・PC, 自作アプリ | Tagged , , , | Leave a comment

WordPressの投稿をPDF形式でダウンロード出来るプラグイン「POST2PDF Converter」

WordPressの投稿や固定ページをPDF形式でダウンロード出来るようにするプラグイン「POST2PDF Converter」をリリースした。 最新の「POST2PDF Converter」をダウンロード 「POST2PDF Converter」は、PHPライブラリ「TCPDF」を用いて、HTML形式のWordPressのコンテンツをPDFに変換し、ダウンロード出来るようにする。 このページの先頭にも、ダウンロードリンクがあるので、実際の動きを見たいなら試してみると良いだろう。 主な特徴は下記の通り。 ダウンロードリンクの追加が簡単、かつ柔軟。 PDFのダンロードに制限をかけることが可能。 様々な言語に対応し、言語に応じて最適化される(つもり)。 PDFのフォントサイズの変更やフォントの指定が可能。 ショートコードを処理するか削除するか選べる。 Font subsettingサポートし、PDFのファイルサイズを抑えられる。 なお、「Font subsetting」は、フォントのうち、実際使われている文字だけをPDFに組み込むことで、フォントの組み込みによるPDFのファイルサイズの増大を抑えることが出来る機能であるが、PHPの処理としては負荷がかかる複雑な処理になる。 そのため、場合によっては、「Font subsetting」を無効化し、フォント全体を組み込んだ方が良いかもしれない。 「POST2PDF Converter」で使用している「TCPDF」は、現状、日本語で書かれたHTMLを上手くPDF化出来ず、一部の文字が表示されないなどの問題が発生する。 これは、搭載している日本語フォントが主な原因であるが、この問題を解決するために、別途、TCPDF用日本語フォント「RCJフォント for TCPDF」と「梅フォント for TCPDF」を公開している。 ファイルサイズの関係で、「RCJフォント for TCPDF」と「梅フォント for TCPDF」は「POST2PDF Converter」に同梱していないので、別途インストールして欲しい。 「Font subsetting」を無効化し、フォント全体を組み込むならファイルサイズが比較的小さい「梅フォント for TCPDF」が向いている。

Posted in WordPress, ネット・PC, 自作アプリ | Tagged , , , | 1 Comment