Fpdf 在使用FPDI扩展TCPDF时,是否有方法使用TCPDF中的事务?

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->

我将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的事务吗?

在第一个示例中,您应该使用
$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');