当使用 FPDI 扩展 TCPDF 时,有没有办法使用 TCPDF 中的事务?
我正在将 TCPDF 与 FPDI 的桥一起使用。我遇到的问题是,一旦我使用 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 的交易?
I am using TCPDF with FPDI's bridge. The issue I'm having is that as soon as I use the startTransaction()
I get the following error:
TCPDF ERROR: Cannot access protected property FPDI:$numpages / Undefined property: FPDI::$numpages
and the script ends (because of the die in the TCPDF::Error() method).
Here is the code I'm using:
$pdf = new FPDI();
// add a page
$pdf->AddPage();
$pdf->startTransaction();
$pdf->Cell(0, 0, 'blah blah blah');
$pdf->rollbackTransaction();
$pdf->Output( . time() . '.pdf', 'D');
If I change it to:
$pdf = new FPDI();
// add a page
$pdf->AddPage();
$pdf->Cell(0, 0, 'blah blah blah');
$pdf->Output( . time() . '.pdf', 'D');
it works fine.
Is there anyway to make them work together and use TCPDF's transactions?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我找到的解决方案是使用 PHP 的对象克隆,它允许我执行事务并在需要时将其回滚。下面是一个示例:
PDF 将仅包含“blah blah blah”。
The solution I found was to to use PHP's object cloning which allows me to do transactions and roll them back whenever I want. Here's an example:
The PDF will only contain "blah blah blah".
在第一个示例中,您应该使用
$pdf = $pdf->rollbackTransaction
或$pdf->rollbackTransaction(true)
而不仅仅是$pdf-> ;rollabackTransaction()
这是因为 rollbackTransaction 采用布尔参数(默认为 false),以了解是否必须返回回滚值(false)或设置对象进入回滚状态(true)。
in your first example you should use
$pdf = $pdf->rollbackTransaction
or$pdf->rollbackTransaction(true)
instead of just$pdf->rollabackTransaction()
this is because rollbackTransaction takes a boolean parameter (default is false), to know if it have to return the rollbackvalue (false) or set the object to the rollback state (true).
在事务方法调用中添加 true 作为参数解决了我的问题。
Adding true as parameter in the Transaction Method Calls solved the Problem for me.