是否有可能养活TCPDF或FPDI PDF文件作为一个字符串? 我有PDF文件作为字符串的传入数组,我不能写入到磁盘。 我是不是能够找到的有关这个文档中任何事情。
如果没有,是否有存储/从内存或对象中读取这些PDF的有效途径? 为养活他们FPDI?
是否有可能养活TCPDF或FPDI PDF文件作为一个字符串? 我有PDF文件作为字符串的传入数组,我不能写入到磁盘。 我是不是能够找到的有关这个文档中任何事情。
如果没有,是否有存储/从内存或对象中读取这些PDF的有效途径? 为养活他们FPDI?
FPDI不接受字符串,但TCPDI ,我刚刚发布,有setSourceData()
除了FDPI的方法setSourceFile()
因为我碰巧有相同的要求。 TCPDI都有自己的解析器( tcpdi_parser ,基于TCPDF的解析器)支持1.4以上的PDF文件,而无需为FPDI商业插件-与现有的PDF工作时,这也可能是有益的。
你可以使用流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);
//...
这将避免任何重复代码...希望这可以帮助别人的未来...