勉強したことのメモ

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

PHPでフォーマットPDFにリンク付きの文字を追記する方法(TCPDF&FPDI)

  PHP

以前、PHPのTCPDF&FPDIを用いてテンプレートPDFに対し、動的に文字や数値を追記し出力する方法をメモしたが、さらにリンク付きの文字を追記したいケースがあった。また、該当文字は罫線を引いたり文字色を変えたり等の装飾を行い、リンク付きと分かりやすくしたい。以下に対応方法をメモ。

 

事前準備

TCPDF、FPDIの設置やテンプレートPDFの用意に関しては過去記事を参考。

 

やりたいこと

  • リンク付き文字を記述
  • リンク付き文字は罫線あり、文字色を青色に変更
  • リンク付き文字の記述位置を指定

 

ソースコード

<?php
include('./tcpdf/tcpdf.php');
include('./fpdi/autoload.php');

do{

    //TCPDFオブジェクト作成
    $pdf = new setasign\Fpdi\Tcpdf\Fpdi();

    //余白無し
    $pdf->SetMargins(0, 0, 0);

    //自動で改ページさせない
    $pdf->SetAutoPageBreak(false, 0);

    //ヘッダーフッター無し
    $pdf->setPrintHeader( false );
    $pdf->setPrintFooter( false );

    //PDF読み込み
    $pdf->setSourceFile('./test.pdf');

    //新ページを作成
    $pdf->AddPage();

    //読み込んだPDFの1ページ目を取得
    $tpl = $pdf->importPage(1);
    $pdf->useTemplate($tpl, null, null, null, null, true);

    //フォント、罫線、フォントサイズ指定
    $pdf->SetFont('arialunicid0', 'U', 12);

    //文字色指定
    $pdf->SetTextColor(0, 0, 255);

    //XY座標を指定
    $pdf->SetXY(140, 85);

    //リンク用URL
    $url = 'https://taitan916.info/blog/';

    //リンク用文言
    $name = '勉強したことのメモ';

    //リンク付き文字を記述
    $pdf->Write( 8, $name, $url, false, 'L', true );

    $pdf->Output("output.pdf", "I");

}while(0);

 

リファレンス

SetFont

http://tcpdf.penlabo.net/method/s/SetFont.html

SetTextColor

http://tcpdf.penlabo.net/method/s/SetTextColor.html

SetXY

http://tcpdf.penlabo.net/method/s/SetXY.html

 - PHP

  関連記事

PhpSpreadsheetで作成したエクセルファイルをPDFファイルに変換する方法
PhpSpreadsheetで作成したエクセルファイルをPDFファイルに変換する方法

以前にPhpSpreadsheetでフォーマット用のエクセルを読み込み、指定した ...

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

HTML / CSSで作成したコンテンツをPDFファイルで出力させたい。以前mp ...

PHPでテンプレートPDFに動的に文字や数値を追記し出力する方法(TCPDF&FPDI)
PHPでテンプレートPDFに動的に文字や数値を追記し出力する方法(TCPDF&FPDI)

請求書や領収書のテンプレートがあり、そちらに対して動的に文字・数値を追記し出力さ ...

TCPDF「Could not include font definition」エラーの対処方法
TCPDF「Could not include font definition」エラーの対処方法

TCPDFでフォントを「arialunicid0」に指定したところ「TCPDF ...

PHPでパスワード付きのZIP / PDFファイルを作成する方法
PHPでパスワード付きのZIP / PDFファイルを作成する方法

PHPでZIPファイル化する方法やPDFファイル出力する方法を過去に書いたが、何 ...