PhpSpreadsheetとTcpdfでExcelファイルから日本語PDFを作成してみる(そして失敗する)By kaneko tomo / 2019年2月17日 はじめに PDFの帳票をLaravelから作成したかったので、いろいろ試しています。Excelテンプレートから変換できると実装も運用もサイコーだと思って試してみた記録です (あらかじめお断りしておきますが、実用レベルになりませんでした・・・) 環境準備(composer) composerを利用してPhpSpreadsheetをインストールします composer require phpoffice/phpspreadsheet PhpSpreadsheet の公式ドキュメントによると、PDFライブラリは、TCPDF, Dompdf , mPDF libraries の3つが利用できるようです。 全部試しましたが、最終的にTCPDFになりました。でもTCPDFはもうメンテナンスされていないようです。 composer require tecnickcom/tcpdf バージョン情報 "require": { "php": "^7.1.3", "phpoffice/phpspreadsheet": "^1.6", "tecnickcom/tcpdf": "^6.2" }, 日本語フォントインストール TCPDFで日本語フォントを利用するを参照に設定してください。 ExcelからPDF出力 動かしたコードは以下になります (composer でクリーンインストールした Laravel の HomeController で試しています) 事前に、 public/excel/template.xlsx にエクセルファイルを置いてください。 今回はboardの請求書エクセルテンプレート(無料)_タテ型_001で試してみました。 getActiveSheet(); $sheet->setCellValue('A3', 'サンプル株式会社'); File::setUseUploadTempDirectory(public_path()); $writer = IOFactory::createWriter($spreadsheet, 'Tcpdf'); $writer->setFont('ipaexm'); $writer->save(public_path() . '/excel/output.pdf'); $writer = new Xlsx($spreadsheet); $writer->save(public_path() . '/excel/output.xlsx'); } } エクセル出力はバッチリでした! 残念なPDF・・・ ということで、日本語出力するという目的は達成できましたが、業務で利用するレベルのPDFにはなりませんでした。PDF出力は闇が深い・・・ サンプルプログラムは こちら https://github.com/e2kaneko/sandbox-phpspreadsheet-and-tcpdf
リバースプロキシの下でEC-CUBE (Symfony)を動かすときはTRUSTED_PROXIESを設定する EC-CUBE, システム開発 / By koni タイトルのとおりです。EC-CUBEをサーバーで直…