web-dev-qa-db-ja.com

TCPDFがインラインCSSを無視するのはなぜですか?

TCPDFを使用してPDFファイルを作成しようとしています。ただし、HTMLにインラインCSSを挿入しようとすると、空白ページが表示されます!HTMLの数行を次に示します。

pdf->AddPage();

// set font
$pdf->SetFont('helvetica', 'B', 20);

$pdf->Write(0, 'Example of HTML Justification', '', 0, 'L', true, 0, false, false, 0);

// create some HTML content
$html = '
<div id="wrapper" style="width:900px;height:auto;margin:0 auto;">
<div id="header" style="width:900px;height:180px;border-bottom:2px solid #5a5a5a;">
<div id="img" style="width:174px;height:87px;position:relative;top:10px;left:350px;"><img src="Untitled Document_files/logoticket.png" /></div>
<div id="text" style="width:250px;position:relative;left:315px;top:20px;font-family:Arial, Helvetica, sans-serif;font-weight:bold;font-size:14px;">E-TICKET/RESERVATION VOUCHER</div>
<div id="text2" style="width:200px;position:relative;left:345px;top:40px;font-family:Arial, Helvetica, sans-serif;
font-weight:bold;font-size:12px;">Visit - www.bookings.7sisters.in</div>
</div>
<div id="mainContent">
<div id="icon" style="width:600px;
height:37px;
position:relative;
left:190px;
top:20px;">
<img src="Untitled D.....

等.

TCPDFの例39 にコードを挿入しています。ただし、出力はTCPDFロゴと「HTML位置合わせの例」行のみです。どういう理由ですか?または、インラインCSSをサポートしていませんか?

18
AssamGuy

TCPDFのCSSサポートは非​​常に限られています。すべての属性をサポートしているわけではありません。

現在、次のCSS属性のみがサポートされています。

  • フォントファミリー
  • フォントサイズ
  • フォントの太さ
  • フォントスタイル
  • 背景色
  • テキスト装飾
  • 高さ
  • テキスト揃え

したがって、他の属性を削除してみて、機能するかどうかを確認してください。

また、 this はTCPDF関連の議論のための活発なフォーラムです。

TCPDFドキュメント

間違いなく試してみる価値のあるTCPDFの代替:

domPDF

主な機能

  • @ import、@ media、@ pageルールなど、ほとんどのCSS 2.1およびいくつかのCSS3プロパティを処理します。
  • ローカルまたはhttp/ftp(fopen-wrappers経由)を介した外部スタイルシートをサポート
  • 行と列のスパン、独立した&折りたたまれた境界モデル、個々のセルスタイリングなどの複雑なテーブルをサポート

domPDFドキュメント

役立つチュートリアル: http://kyokasuigetsu25.wordpress.com/2011/07/14/how-to-use-dompdf-with-css/

mPDF

例(PHPおよび生成されたPDF)の両方が here および here にあります。

mPDFドキュメント

それが役に立てば幸い :)

75
abhshkdz

提供されたコードを使用し、インラインCSSを使用して「Visit-www.bookings.7sisters.in」の色を赤に変更しました。

https://www.box.com/s/520e9e1f4976802696ec のサンプル出力を参照してください

よく私が見つけた回避策があります:

<h1>Heading<small>Text(is smaller than heading.)</small></h1>

これが誰かを助けることを願っています。

1
Dray

私の場合、サーバーは二重引用符にスラッシュを追加しました-tcpdfはスタイルのような属性を警告なしで無視しました。だから私はstripslashes関数でスラッシュを削除しました

1

CSSを完全にサポートするPHPライブラリはありません。TCPDFは、大きな文字列に対しても比較的良いパフォーマンスで非常に良い仕事をします。例 00600721 または 061

0
lubosdz