TCPDFの地雷 このページにはエラーがあります。Acrobatはページを正しく表示できない場合があります。PDF文書の作成者に連絡して、問題を解決してください。

adobe-error.fw

TCPDF の writeHTML() でPDFを作成している場合に発生します。Adobe製品だけエラーメッセージでPDFが表示できず、Chromeで開発していると正常表示の為気づかないという、なんともおかしな現象です。

原因

わかりません。。

HTMLの構造や属性で発生するようです。

対策

体当たり的に経験値を上げるしかありません。。

エラーを経験したHTMLコード

  • <table align=”right”> 「align=”right”」を削除すると正常になった
  • <div><table> 属性なしの場合 <div>を削除すると正常になった
  • <div><div> 属性なしの場合 <div><div>を削除すると正常になった

TCPDF の writeHTML() で background-image

具体的に言うと

  • 請求書PDF等をPHPから出力したい
  • PHPでゴニョゴニョ書くのは面倒なので、レイアウトはHTMLで管理したい
  • 角印の背景画像を入れたい

今回は、TCPDFのwriteHTML()で背景画像をなんとかする方法です。

background-image: ⇒ ダメ
margin-top: ⇒ ダメ
position: ⇒ ダメ

...そして、 stack overflow : TCPDF not render all CSS properties を見たりして、あきらめかけている方に朗報です。

なぜか唯一 table タグ の padding だけサポートされています。

 

こんな感じで解決です。
<img src=”stamp.jpg” />
<table style=”padding-top:-100px;”><tr><td>
    株式会社日本ユニバース<br />
    http://nusoft.jp/
</td></tr></table>