質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PDF

PDF(Portable Document Format)とはISOによって国際標準として制定されている電子ドキュメント用の拡張子です。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

Q&A

解決済

1回答

10136閲覧

laravelでpdf出力について

cofee

総合スコア44

PDF

PDF(Portable Document Format)とはISOによって国際標準として制定されている電子ドキュメント用の拡張子です。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

0グッド

0クリップ

投稿2018/03/01 05:11

編集2018/03/01 06:13

laravelで、あるシステムを開発しています。
現状のやり方として

ボタンクリック

Excel生成
↓←ここまでできています。
ExcelからPDF生成

PhpSpreadsheetを使用してExcelを作成しています。
ですが、PDFに変換するやり方が調べても載っていなかったので質問させていただきました。
よろしくお願いします。

php

1  /* 2 * PDF出力ボタン押下 3 */ 4 public function comp(Request $request){ 5 6 $id = $request->input('id'); 7 $result = $this->func_return_excel($id); 8 9 $pdf = $this->makepdf($result); 10 11 return view('sample_index'); 12 } 13 14 15/* 16* PDF生成 17*/ 18private function makepdf($result){ 19 20    $LIBRE_PATH = 'C:\Users\sample\Downloads\LibreOfficePortablePrevious\App\libreoffice\program\soffice.exe'; 21 22 //テンプレート読み込み 23 $inputFileName = 'sample.xlsx'; 24 $data= json_decode( json_encode($result), true); 25 26 //spreadsheetにテンプレファイル読み込み 27 $spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load($inputFileName); 28 29 $sheet = $spreadsheet->getActiveSheet(); 30 31 //$dataをExcelに記入 32 $sheet->fromArray($data, NULL, 'A2'); 33 34 $writer = new Xlsx($spreadsheet); 35     //Excel保存 36 $writer->save('sample2.xlsx'); 37 38    //この下に保存したExcelをPDFに変換してPDFを生成する処理を書きたいです。 39 $command = $LIBRE_PATH.'--headless --convert-to pdf:writer_pdf_Export sample2.xlsx'; 40 exec($command); 41 } 42 43

参考サイトを見ながらpdf変換するコードを記入しましたが生成されませんでした。
パスの書き方は合っていますでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

下記の記事が参考になりそうです。

PHPから実行する場合はexec()でコマンド実行する感じですね。
teratail内に質問もあります。

投稿2018/03/01 05:16

編集2018/03/01 05:17
m.ts10806

総合スコア80850

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

cofee

2018/03/01 05:56

回答ありがとうございます。 参考にして試してみたのですができませんでした。
m.ts10806

2018/03/01 06:09

ただ「できない」だけではわかりませんので何をどのようにししてできなかったのか具体的に質問に追記をお願いします。
cofee

2018/03/01 06:13

すみません。追記いたしました。
m.ts10806

2018/03/01 06:30

エラー等が出ているのであればそれも追記してください。 実行した結果何が起きたか、ですね。
m.ts10806

2018/03/01 06:48 編集

LibreOfficeが正常にできているのであれば、Excelのパスではないかと思います。 Laravelとのことで、作成した先のフルパスを指定できる定数が用意されていると思います。 今の指定の仕方だと、実行しているPHPと同じ階層を指定していることになりそうです。
m.ts10806

2018/03/01 06:50

どちらにしてもいきなり全てやるのではなく、まずは適当なExcelを変換できるか確認し、その後にPhpSpreadsheetで作ったExcelを変換するように、段階的に対応してきましょう。
cofee

2018/03/02 02:14

ご指摘通りExcelのパスがおかしかったせいでできていませんでした。 ありがとうございました。
m.ts10806

2018/03/02 02:30

解決できたようで何よりです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問