Fpdf 在使用FPDI扩展TCPDF时,是否有方法使用TCPDF中的事务?
我将TCPDF与FPDI的桥接器一起使用。我遇到的问题是,只要我使用Fpdf 在使用FPDI扩展TCPDF时,是否有方法使用TCPDF中的事务?,fpdf,tcpdf,fpdi,Fpdf,Tcpdf,Fpdi,我将TCPDF与FPDI的桥接器一起使用。我遇到的问题是,只要我使用startTransaction(),就会出现以下错误: TCPDF ERROR: Cannot access protected property FPDI:$numpages / Undefined property: FPDI::$numpages 脚本结束(因为TCPDF::Error()方法中有一个骰子) 以下是我正在使用的代码: $pdf = new FPDI(); // add a page $pdf->
startTransaction()
,就会出现以下错误:
TCPDF ERROR: Cannot access protected property FPDI:$numpages / Undefined property: FPDI::$numpages
脚本结束(因为TCPDF::Error()方法中有一个骰子)
以下是我正在使用的代码:
$pdf = new FPDI();
// add a page
$pdf->AddPage();
$pdf->startTransaction();
$pdf->Cell(0, 0, 'blah blah blah');
$pdf->rollbackTransaction();
$pdf->Output( . time() . '.pdf', 'D');
如果我将其更改为:
$pdf = new FPDI();
// add a page
$pdf->AddPage();
$pdf->Cell(0, 0, 'blah blah blah');
$pdf->Output( . time() . '.pdf', 'D');
它很好用
还有什么方法可以让它们一起工作并使用TCPDF的事务吗?在第一个示例中,您应该使用
$pdf=$pdf->rollbackTransaction
或$pdf->rollbackTransaction(true)
而不仅仅是$pdf->rollbackTransaction()
这是因为rollbackTransaction使用一个布尔参数(默认值为false),以了解它是否必须返回rollbackvalue(false)或将对象设置为rollback状态(true)。我找到的解决方案是使用它,允许我执行事务并在需要时回滚它们。下面是一个例子:
$pdf = new FPDI();
// add a page
$pdf->AddPage();
$pdf->Cell(0, 0, 'blah blah blah');
$_pdf = clone $pdf;
// do stuff that you may want to revert
$pdf->Cell(0, 0, 'PDFs suck!');
// revert the PDF
$pdf = $_pdf;
$pdf->Output( . time() . '.pdf', 'D');
PDF将只包含“废话废话”
在事务方法调用中添加true作为参数解决了我的问题。我认为这只是回滚事务所需要的。
$pdf = new FPDI();
$pdf->AddPage();
$pdf->startTransaction(true);
$pdf->Cell(0, 0, 'blah blah blah');
$pdf->rollbackTransaction(true);
$pdf->Output( . time() . '.pdf', 'D');