Learn or Die

生涯勉強。Macです。

TCPDFのOutputで日本語ファイル名が消える

下記のように日本語でファイルを保存しようとすると、日本語部分が消えてしまいます。

<?php

$name = 'テスト ハナコ';
$pdf->Output($name.".pdf","I");

解決方法

tcpdfフォルダ直下のtcpdf.phpを修正する。
7592行目にあるOutputメソッド内の、下のpreg_replaceをコメントアウトする。

<?php

if ($dest[0] != 'F') {
    $name = preg_replace('/[\s]+/', '_', $name);
//  $name = preg_replace('/[^a-zA-Z0-9_\.-]/', '', $name);
}

7666行目のbasename関数を外す。

<?php

// 修正前
//header('Content-Disposition: inline; filename="'.basename($name).'"');
// 修正後
header('Content-Disposition: inline; filename="'.$name.'"');

これで日本語ファイルとして出力されました。