簡體   English   中英

TCPDF / FPDI可以接受PDF作為字符串嗎?

[英]Can TCPDF / FPDI accept PDF as string?

是否可以將TCPDF或FPDI PDF作為字符串提供? 我有一個傳入的PDF數組作為字符串,我無法寫入磁盤。 我無法在文檔中找到有關此內容的任何內容。

如果沒有,是否有一種從內存或對象存儲/讀取這些PDF的有效方法? 將它們送到FPDI?

FPDI不接受字符串,但TCPDI ,我剛剛發布,有setSourceData()除了FDPI的方法setSourceFile()因為我碰巧有相同的要求。 TCPDI有自己的解析器( tcpdi_parser ,基於TCPDF的解析器),它支持1.4以上的PDF而不需要FPDI的商業插件 - 這在使用現有PDF時也可能有用。

你可以用stream wraper ,..

你可以從上面的類鏈接寫下wraper.php

header('Content-Type: text/html; charset=utf-8');

require_once('tcpdf/tcpdf.php');
require_once('fpdi/fpdi.php');
require_once('wraper.php');

// Creating new page with PDF as a background
$pdf = new FPDI();
$varInAnyScope = file_get_contents('proposal0.pdf');
$pdf->setSourceFile(VarStream::createReference($varInAnyScope));
$tplIdx = $pdf->importPage(1);
$pdf->AddPage();
$pdf->useTemplate($tplIdx, 0, 0, 0, 0, true);

$pdf->Write(0, "Stack overflow");

ob_clean();
$pdf->Output('WorksheetTest.pdf', 'I');

如果查看setSourceFile方法文檔,您將看到還可以傳遞資源或StreamReader。 StreamReader非常有趣的是它還共享一個createByString方法。 所以你可以像這樣使用它:

use setasign\Fpdi\PdfParser\StreamReader;
//...
$myData = ... ;
$stream = StreamReader::createByString($myData);
$pdf->setSourceFile($stream);
//...

這將避免任何代碼重復...希望這有助於將來...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM