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

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

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

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

Q&A

解決済

3回答

9699閲覧

TCPDFでPDFファイルを繰り返し出力したい

goun

総合スコア11

PHP

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

1グッド

1クリップ

投稿2019/03/12 08:48

TCPDFで、PDFファイルを繰り返し出力したいです。

<?php include "./tcpdf.php"; //ライブラリの読み込み ob_start(); $tcpdf = new TCPDF(); $tcpdf->AddPage(); $tcpdf->SetFont("kozgopromedium", "", 8); $html = <<< EOF 0回目! EOF; $tcpdf->writeHTML($html); $tcpdf->Output("0.pdf"); ?>

上記で「0回目!」と表示されるPDFが出力されたので、5回繰り返して「0回目!」から「4回目!」まで表示されるファイルを1つずつ作りたいと思い、下記の通りにしましたが、「0回目!」と表示されるファイルができるだけで繰り返して実行されません。

<?php include "./tcpdf.php"; //ライブラリの読み込み ob_start(); $tcpdf = new TCPDF(); $tcpdf->AddPage(); $tcpdf->SetFont("kozgopromedium", "", 8); for($i = 0; $i < 5; $i++){ $html[$i] = <<< EOF {$i}回目! EOF; $tcpdf->writeHTML($html[$i]); $tcpdf->Output($i . ".pdf"); } ?>

特にエラーにもならず、解決法の探し方もわからず、質問させていただきました。
素人質問ですが、お知恵をお借りできれば幸いです。

Wittgenstein👍を押しています

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

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

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

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

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

goun

2019/03/13 10:04

回答ありがとうございます。 申し訳ないのですがインフルエンザにかかってしまい、教えて頂いた内容を理解して確認するのに時間がかかります。 確認後結果をご報告させていただきます。
guest

回答3

0

ご回答いただいた方法で、以下の通りにして解決しました。
ファイルとして個別に出力する方法も試してみたいです。
ありがとうございました。

<?php include "./tcpdf.php"; //ライブラリの読み込み ob_start(); //インスタンス作成とコンストラクタによる設定 $tcpdf = new TCPDF(P,"mm", "A4", true, 'UTF-8', false); //ほしいページ分ループさせる for($i = 0; $i < 5; $i++){ $tcpdf -> setPrintHeader(true); //ヘッダの制御 $tcpdf -> setPrintFooter(false); //フッタの制御 $tcpdf->SetFont("kozgopromedium", "", 8); $html[$i] = <<< EOF {$i}回目! EOF; $tcpdf -> AddPage(); //ページ内のコンテンツを読み込み始める $tcpdf -> writeHTML($html[$i]); //書き込み $tcpdf -> lastPage(); //ページ内のコンテンツの読み込み終わり(次ページへ) } $tcpdf -> Output("./output.pdf"); //全ページ終わってから出力する ?>

投稿2019/03/14 00:53

goun

総合スコア11

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

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

0

ブラウザへのレスポンスは1つなので、複数のPDFファイルを返すことはできません。

FKMさんの回答のようにマルチページにするか、一旦ファイルに出力して、ZIPファイルに圧縮するとか、ダウンロード用のページを表示するなどの対応が必要です。

投稿2019/03/13 02:39

kasa0

総合スコア578

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

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

0

ベストアンサー

tcPDFで複数ページを処理するなら、AddPageメソッドとlastPageメソッドを使ってください。

PHP

1define("MY_PDF_PAGE_ORIENTATION" , "P"); // Pはポートレート(縦向き) 2define("MY_PDF_UNIT" , "mm"); // ミリ制御 3define("MY_PDF_PAGE_FORMAT" , "A4"); //印刷したいサイズ 4//インスタンス作成とコンストラクタによる設定 5$tcpdf = new MYPDF(MY_PDF_PAGE_ORIENTATION, MY_PDF_UNIT, MY_PDF_PAGE_FORMAT, true, 'UTF-8', false); 6 7//ほしいページ分ループさせる 8for($i = 0; $i < 5; $i++){ 9 $tcpdf -> setPrintHeader(true); //ヘッダの制御 10 $tcpdf -> setPrintFooter(false); //フッタの制御 11 $tcpdf -> AddPage(); //ページ内のコンテンツを読み込み始める 12 $tcpdf->writeHTML($html[$i]); //書き込み 13 $tcpdf -> lastPage(); //ページ内のコンテンツの読み込み終わり(次ページへ) 14} 15 16$tcpdf->Output($i . ".pdf"); //全ページ終わってから出力する

ページ番号が邪魔だと思ったら、ヘッダかフッタいずれかのメソッドにて制御してください。

PHP

1class MYPDF extends TCPDF{ 2 public function Header(){ 3 $this -> setAutoPageBread(false, 0); //ページを表示させない 4 } 5} 6

TCPDF Manual - 日本語版 ( Ver.4.6.021 )

投稿2019/03/12 09:04

編集2019/03/14 02:09
FKM

総合スコア3633

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問