HTMLからPDFを生成するためにtcpdfを使用しています。すべて正常に動作しており、コンピューターで PDF を表示すると正常に表示されますが、何らかの理由で iPhone で PDF を表示すると空白で表示されます。私が見ることができるのは、作成した境界線に値が含まれているだけですが、値が表示されていません。
これが私のコードです
require_once('/tcpdf/tcpdf/config/lang/eng.php');
require_once('/tcpdf/tcpdf/tcpdf.php');
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);
$pdf->setLanguageArray($l);
$pdf->SetFont('dejavusans', '', 10);
$pdf->AddPage();
$html = file_get_contents('http://www.website.com/invoice.php?invoice_id='.$invoice_id);
$pdf->writeHTML($html, true, false, true, false, '');
$pdf->lastPage();
$pdf->Output('/html/admin/emailattachements/invoice.pdf', 'F');
その最後の行で。後で電子メール スクリプトを使用して PDF を取得し、顧客に送信するときに、そのディレクトリに PDF をコピーします。
編集:解決済み
PDFを作成するために使用していたフォントであることがわかりました。iPhoneはdejavusansを読むことができません:)「times」に変更しましたが、正常に動作します
編集:更新
この記事以来、私は tcpdf でさらに多くの PDF を作成しなければなりませんでしたが、最近http://www.tcpdf.org/fonts. .phpと適用
$fontname = $pdf->addTTFfont('/path-to-font/DejaVuSans.ttf', 'TrueTypeUnicode', '', 32);
手動でフォントを追加し、フォント ファイル パスを設定して手動でファイルをアップロードすることで、動作しない既存のフォントを取得し、実際に動作させることができました。