勉強したことのメモ

Webエンジニア / プログラマが勉強したことのメモ。

HTML / CSSで作成したコンテンツをPDFファイルで出力する方法(TCPDF)

   2025/06/21  PHP CSS HTML

HTML / CSSで作成したコンテンツをPDFファイルで出力させたい。以前mpdfを用いてPDF化する方法をメモったが今回はTCPDFというライブラリを使用してみたかった。以下に対応方法をメモ。

 

TCPDFライブラリに関して

以下よりダウンロードする。

https://github.com/tecnickcom/tcpdf

尚、リファレンスについては非公式かと思われるが以下サイトが参考になった。

http://www.t-net.ne.jp/~cyfis/tcpdf/index.html

http://tcpdf.penlabo.net/

 

ソースコード

<?php
include('./TCPDF/tcpdf.php');

$tcpdf = new TCPDF();
$tcpdf->AddPage();
$tcpdf->SetFont('kozminproregular', '', 10);
$html = <<< EOF
<style>
.fcolor-red{
    color: #f00;
}
</style>
<h1>テスト</h1>
<div class="fcolor-red">赤文字</div>
<img src="./001.jpg" width="50px">
EOF;
$tcpdf->writeHTML($html);
$tcpdf->Output('test.pdf');

 

注意点

HTML / CSSで作成したコンテンツを簡単にPDF化できるもののCSSに関しては制限が多い。そのため出力されるPDFは非常にシンプルなデザインになりがちで業務で使えるかと言われると微妙なところ。

テキストは問題無く表示されるので文章メインのサイトをスクレイピングし、そのデータをPDF化させるとかなら使えるかも。

 - PHP CSS HTML

  関連記事

mpdfで「The /e modifier is …」エラー発生時の対応方法
mpdfで「The /e modifier is …」エラー発生時の対応方法

pdf関連のPHPライブラリ「mPDF」を使っているページがエラーログにのってお ...

JavaScriptにて「loglevel」ライブラリを利用して環境及びレベルによりログを出し分けする方法
JavaScriptにて「loglevel」ライブラリを利用して環境及びレベルによりログを出し分けする方法

JavaScriptにて何らかの確認の際にconsole.logを使うことが多い ...

TCPDFに任意の日本語フォント(Noto Sans JP)を追加する方法
TCPDFに任意の日本語フォント(Noto Sans JP)を追加する方法

TCPDFはデフォルトで6つの日本語フォントが用意されているっぽいが、それら以外 ...

JavaScriptでオブジェクトをzlib圧縮してCookieに保存できる「zcookies」ライブラリの利用方法
JavaScriptでオブジェクトをzlib圧縮してCookieに保存できる「zcookies」ライブラリの利用方法

あるシステムでCookieを保存している部分があった。ただ、日本語を保存している ...

Composer無し&ファイル1枚でPHPのエラーメッセージ画面をリッチにするライブラリ「PHP Error」の利用方法
Composer無し&ファイル1枚でPHPのエラーメッセージ画面をリッチにするライブラリ「PHP Error」の利用方法

先日PHPのエラーメッセージを見やすくするwhoopsの利用方法をメモしたが導入 ...