PHP TCPDF 1つのコマンドで複数のPDFを作成します -- php フィールド と html フィールド と loops フィールド と tcpdf フィールド 関連 問題

PHP TCPDF Create Multiple PDFS With One Command












1
vote

問題

日本語

PDFでデータをエクスポートしたい。1つのレコードを選択したときそれはうまくいっています...ワンクリックで複数のPDFを作成する方法は? これが私が試したものです

<事前> <コード> require_once('eng.php'); require_once('tcpdf.php'); $pageLayout = array(750, 800); $pdf =new TCPDF('P', 'pt', $pageLayout, true, 'UTF-8', false); $pdf->SetCreator(PDF_CREATOR); $pdf->AddPage(); $html = 'my html'; $pdf->writeHTML($html, true, false, true, false, ''); $pdf->lastPage(); $pdf->Output('filename.pdf', 'D');

より多くのPDFに分離されたファイルを作成するために1つのループを配置する方法は?

英語

I want to export data with pdf.When i select one record it works fine...How to create multiple pdfs with one click? here is what i tried

require_once('eng.php'); require_once('tcpdf.php'); $pageLayout = array(750, 800);  $pdf =new TCPDF('P', 'pt', $pageLayout, true, 'UTF-8', false); $pdf->SetCreator(PDF_CREATOR); $pdf->AddPage(); $html = 'my html'; $pdf->writeHTML($html, true, false, true, false, ''); $pdf->lastPage(); $pdf->Output('filename.pdf', 'D'); 

How i can put one loop to create more pdf seperate files?

</div
           

回答リスト

2
 
vote

次のコードは私のために機能しています:

変数の変数を使用して新しいPDFオブジェクトをループに作成するには、「D」の代わりに 'F'を使用してサーバーに保存します。

<事前> <コード> require_once('eng.php'); require_once('tcpdf.php'); $pageLayout = array(750, 800); $content=Array( '<html><body>Document A</body></html>', '<html><body>Document B</body></html>', '<html><body>Document C</body></html>' ); foreach($content as $i=>$html){ $pdfname = $pdf . $i; $$pdfname =new TCPDF('P', 'pt', $pageLayout, true, 'UTF-8', false); $$pdfname->SetCreator(PDF_CREATOR); $$pdfname->AddPage(); $$pdfname->writeHTML($html, true, false, true, false, ''); $$pdfname->lastPage(); $$pdfname->Output('filename_' . $i . '.pdf', 'D'); }
 

Following code is working for me :

Use variable of variable and create new pdf object in loop, use 'F' instead of 'D' to save to server.

require_once('eng.php'); require_once('tcpdf.php'); $pageLayout = array(750, 800);   $content=Array(  '<html><body>Document A</body></html>',  '<html><body>Document B</body></html>',  '<html><body>Document C</body></html>' );  foreach($content as $i=>$html){ $pdfname = $pdf . $i; $$pdfname =new TCPDF('P', 'pt', $pageLayout, true, 'UTF-8', false); $$pdfname->SetCreator(PDF_CREATOR); $$pdfname->AddPage(); $$pdfname->writeHTML($html, true, false, true, false, ''); $$pdfname->lastPage(); $$pdfname->Output('filename_' . $i . '.pdf', 'D'); } 
</div
 
 
1
 
vote

これを試してみてください:

<事前> <コード> require_once('eng.php'); require_once('tcpdf.php'); $pageLayout = array(750, 800); $content=Array( '<html><body>Document A</body></html>', '<html><body>Document B</body></html>', '<html><body>Document C</body></html>' ); foreach($content as $i=>$html){ $pdf =new TCPDF('P', 'pt', $pageLayout, true, 'UTF-8', false); $pdf->SetCreator(PDF_CREATOR); $pdf->AddPage(); $pdf->writeHTML($html, true, false, true, false, ''); $pdf->lastPage(); $pdf->Output('filename_' . $i . '.pdf', 'D'); }
 

Try this:

require_once('eng.php'); require_once('tcpdf.php'); $pageLayout = array(750, 800);   $content=Array(  '<html><body>Document A</body></html>',  '<html><body>Document B</body></html>',  '<html><body>Document C</body></html>' );  foreach($content as $i=>$html){     $pdf =new TCPDF('P', 'pt', $pageLayout, true, 'UTF-8', false);     $pdf->SetCreator(PDF_CREATOR);     $pdf->AddPage();     $pdf->writeHTML($html, true, false, true, false, '');     $pdf->lastPage();     $pdf->Output('filename_' . $i . '.pdf', 'D'); } 
</div
 
 
     
     
0
 
vote

私は私のコメント

と一致する答えを絞り込みました <事前> <コード> require_once('eng.php'); require_once('tcpdf.php'); $pageLayout = array(750, 800); $content=Array( '<html><body>Document A</body></html>', '<html><body>Document B</body></html>', '<html><body>Document C</body></html>' ); $zip = new ZipArchive(); $filename = "/tmp/final.zip"; $zip->open($filename, ZipArchive::CREATE); foreach($content as $i=>$html){ $pdf =new TCPDF('P', 'pt', $pageLayout, true, 'UTF-8', false); $pdf->SetCreator(PDF_CREATOR); $pdf->AddPage(); $pdf->writeHTML($html, true, false, true, false, ''); $pdf->lastPage(); $pdf->Output('/tmp/filename_' . $i . '.pdf', 'F'); $zip->addFile('/tmp/filename_' . $i . '.pdf','filename_' . $i . '.pdf'); } $zip->close(); header('Content-type: application/zip'); header('Content-Disposition: attachment; filename="final.zip"'); readfile($filename);

ASUMES POSIX環境/ TMPディレクトリこれは、SYS_GET_TEMP_DIR()を使用してTEMPディレクトリを取得する必要がある例としてのみ、ダウンロード後にファイルを削除する必要があります。

 

I have refined the answer to match my comment

require_once('eng.php'); require_once('tcpdf.php'); $pageLayout = array(750, 800);   $content=Array(  '<html><body>Document A</body></html>',  '<html><body>Document B</body></html>',  '<html><body>Document C</body></html>' );  $zip = new ZipArchive(); $filename = "/tmp/final.zip"; $zip->open($filename, ZipArchive::CREATE);  foreach($content as $i=>$html){     $pdf =new TCPDF('P', 'pt', $pageLayout, true, 'UTF-8', false);     $pdf->SetCreator(PDF_CREATOR);     $pdf->AddPage();     $pdf->writeHTML($html, true, false, true, false, '');     $pdf->lastPage();     $pdf->Output('/tmp/filename_' . $i . '.pdf', 'F');     $zip->addFile('/tmp/filename_' . $i . '.pdf','filename_' . $i . '.pdf'); }  $zip->close();  header('Content-type: application/zip'); header('Content-Disposition: attachment; filename="final.zip"'); readfile($filename); 

The answer asumes a posix environment the /tmp directory this is only as an example you should use sys_get_temp_dir() to get the temp directory, you should also delete the files after they have been download.

</div
 
 
       
       
0
 
vote

私はディスクに保存するPDF文書を作成し、ループ内で完全に機能しました。ここで私はその関数にループ

のみをコピーしました <事前> <コード> private function drawBody() { foreach($this->ordersList as $store => $storeord){ // to stop the tcpd overwriting the headers and calculating wrong page numbers used $nextstore $filename = 'Click and Collect List to '.$this->storeID.'-'.$this->storename; // Master page headers $this->pdf->SetFont('Arial','B'); $this->pdf->SetFontSize(20); $this->pdf->SetY(50); $this->pdf->Cell(0,7,$filename,0,1,'L'); $this->pdf->SetFontSize(8); $this->pdf->Ln(); $this->pdf->Ln(); $this->pdf->SetFillColor(255,255,255); $this->pdf->Cell(15,10,'ID',1,0,'C',1,'',1); $this->pdf->Cell(20,10,'Date ordered',1,0,'C',1,'',1); $this->pdf->Cell(5,10,'Qty',1,0,'C',1,'',1); $this->pdf->Cell(15,10,'Customer ID',1,0,'C',1,'',1); $this->pdf->Cell(30,10,'Name',1,0,'C',1,'',1); $this->pdf->Cell(25,10,'Mobile',1,0,'C',1,'',1); $this->pdf->Cell(70,10,'Address',1,0,'C',1,'',1); $this->pdf->Ln(); // Master page list of orders foreach($storeord as $ord => $det){ $this->pdf->SetFont('Arial'); $this->pdf->SetFillColor(255,255,255); $this->pdf->SetFontSize(8); $this->pdf->Cell(15,10,''. $ord,1,0,'L',1); $this->pdf->Cell(20,10,''. $det[orderdate],1,0,'L',1); $this->pdf->Cell(05,10,''. $det[qty],1,0,'L',1); $this->pdf->Cell(15,10,''. $det[custID],1,0,'L',1); $this->pdf->Cell(30,10,''. $det[custName],1,0,'L',1); $this->pdf->Cell(25,10,''. $det[mobile],1,0,'L',1); $this->pdf->MultiCell(70,10,''. $det[address],1,'L',false); } // Draw Collection page for each store $this->pdf->AddPage(); $this->drawCollectionPage(); $this->pdf->Output('Click and Collect List to - '.$this->storeID.'-'.$this->storename.'.pdf','F'); }

}

 

I was creating a pdf document to save in the disk and it also worked perfectly within the loop. Here I have copied only that function has the loop

 private function drawBody() {             foreach($this->ordersList as $store => $storeord){          // to stop the tcpd overwriting the headers and calculating wrong page numbers used $nextstore                                      $filename = 'Click and Collect List to '.$this->storeID.'-'.$this->storename;                     // Master page headers                     $this->pdf->SetFont('Arial','B');                     $this->pdf->SetFontSize(20);                     $this->pdf->SetY(50);                                          $this->pdf->Cell(0,7,$filename,0,1,'L');                      $this->pdf->SetFontSize(8);                     $this->pdf->Ln();                     $this->pdf->Ln();                     $this->pdf->SetFillColor(255,255,255);                     $this->pdf->Cell(15,10,'ID',1,0,'C',1,'',1);                     $this->pdf->Cell(20,10,'Date ordered',1,0,'C',1,'',1);                     $this->pdf->Cell(5,10,'Qty',1,0,'C',1,'',1);                     $this->pdf->Cell(15,10,'Customer ID',1,0,'C',1,'',1);                     $this->pdf->Cell(30,10,'Name',1,0,'C',1,'',1);                     $this->pdf->Cell(25,10,'Mobile',1,0,'C',1,'',1);                     $this->pdf->Cell(70,10,'Address',1,0,'C',1,'',1);                                      $this->pdf->Ln();                                                      // Master page list of orders                 foreach($storeord as $ord => $det){                                            $this->pdf->SetFont('Arial');                     $this->pdf->SetFillColor(255,255,255);                     $this->pdf->SetFontSize(8);                     $this->pdf->Cell(15,10,''. $ord,1,0,'L',1);                     $this->pdf->Cell(20,10,''. $det[orderdate],1,0,'L',1);                     $this->pdf->Cell(05,10,''. $det[qty],1,0,'L',1);                     $this->pdf->Cell(15,10,''. $det[custID],1,0,'L',1);                     $this->pdf->Cell(30,10,''. $det[custName],1,0,'L',1);                                             $this->pdf->Cell(25,10,''. $det[mobile],1,0,'L',1);                     $this->pdf->MultiCell(70,10,''. $det[address],1,'L',false);                                                             }                             // Draw Collection page for each store              $this->pdf->AddPage();                                  $this->drawCollectionPage();                            $this->pdf->Output('Click and Collect List to - '.$this->storeID.'-'.$this->storename.'.pdf','F');                       } 

}

</div
 
 

関連する質問

2  TCPDF SetMarginsメソッド  ( Tcpdf setmargins method ) 
TCPDFで正確な位置決めを取得するために取り組んでいます。私は複数の場所でsetmargins()を使用しようとしていますが、このメソッドの使用方法を誤解している必要があります。 私が期待しているので働いていないようです。 <事前> <コード> $pdf-...

0  PDFを作成して他のユーティリティ、ライブラリを使用してPHPスクリプトを介してデジタル的に署名できる場合は可能ですか。  ( Is it possible if we can create a pdf and can use any other utility library to s ) 
DOMPDFライブラリを使用してPDFフォームを作成しました。今、私はそれにデジタル署名をしたいです。 DOMPDFがデジタル署名をサポートしていないことを知っているようになりましたので、TCPDFを使用してフォームを作成しましたが、TCPDFのスタイリング...

10  WordPress内にPDFを動的に作成できるのでしょうか。 [閉まっている]  ( How could you dynamically create a pdf within wordpress ) 
閉鎖。この質問はもっと焦点を絞ったにする必要があります。現在答えを受け付けていません。 この質問を改善したいですか? ...

0  TYPO3 NEOS HTMLからPDFへ  ( Typo3 neos html to pdf ) 
PDFファイルを作成しようとしているときに問題がありました。 FPDFを使用してPDFを作成する方法は他にありますか?私はクラスをFPDFからバックエンドに含めるのに苦労しているからです。 <事前> <コード> require_once(dirname(_...

0  2ページを通して投稿を渡すにはどうすればいいですか?  ( How do i pass a post through two pages ) 
TCPDFでは、PDFを生成するページにデータベースクエリを入れることができません。これを回避するために、私はそのアクションを試して分離することにしたので、最初のアクションはいくつかの詳細をデータベースに保存することです。 2番目のアクションは、PDFジェネ...

18  TCPDFを使用したPDFの作成は、iPhoneで空白を表示します  ( Creating pdf with tcpdf shows blank on iphone ) 
TCPDFを使用して、HTMLからPDFを作成しています。すべてがうまく機能していて、私のコンピュータ上でPDFを見ると、私はそれを大丈夫ですが、私のiPhoneでPDFを見ると空白が表示されます。私が見ることができるのは、私が作成した境界線がそれらの中に値...

0  TCPDFライブラリにある<事前> HTMLタグを使用する方法  ( How can i use pre html tag in tcpdf library ) 
<事前> <コード> <?php require 'tcpdf/tcpdf.php'; include 'clasess/DBConnect.php'; $db= DataBase::getInstance(); $query = mysql_qstrong...

1  PHP Mail()機能を使用した電子メール添付ファイル - Gmailのための作業だが、他のメーリングプロバイダのための添付ファイルはNULLサイズ(0バイト)のものです。  ( Email attachments using php mail function working for gmail but attachments ) 
PHP Mail()関数を使用して添付ファイル付きの電子メールを送信しています。 Gmailのために働いていますが、添付ファイルはヤフーのヌルサイズ(0バイト)です。 これは私が使用した添付ファイルコードです: <事前> <コード> $attachment...

4  JavaScript:HTMLフォームまたはDIVからPDFファイルを作成する方法  ( Javascript how to create pdf file from html form or div ) 
私はJavaScript / jQueryに新しく、ユーザーが事前定義された形式またはdivからPDF を作成できるようにするページへのボタンを追加する方法を探しています(例:追加によって)。クラス)。 私はいくつかの研究をしましたが、JSやjQueryでこ...

4  YIIフレームワークでTCPDFで複数回以上のアクション負荷  ( Action load more than once by tcpdf in yii framework ) 
YIIフレームワークでTCPDFを使用しています。(ただ)ファイルをエクスポートするために私のビューで新しいTCPDFを作成したとき、これは私の行動負荷を2または3回起こしました(私は私の行動でカウンターでチェックしました)そして最後にそれはうまくいって私の...




© 2022 cndgn.com All Rights Reserved. Q&Aハウス 全著作権所有