Gokul Shinde Gokul Shinde - 2 months ago 21
PHP Question

TCPDF returning error while generating table structure to print

I am working in SmartJobBoard with TCPDF. PDF was generated properly on the old server.

After we moved the site to a new server, it began to show errors while creating PDF invoices. The following error is shown by the TCPDF library.

Notice: Undefined index: cols in /home/pb_admin/public_html/pb/system/ext/tcpdf/tcpdf.php on line 22174
Notice: Undefined index: thead in /home/pb_admin/public_html/pb/system/ext/tcpdf/tcpdf.php on line 21705
Notice: Undefined index: rows in /home/pb_admin/public_html/pb/system/ext/tcpdf/tcpdf.php on line 22162
Warning: array_push() expects parameter 1 to be array, null given in /home/pb_admin/public_html/pb/system/ext/tcpdf/tcpdf.php on line 22164
Warning: array_push() expects parameter 1 to be array, null given in /home/pb_admin/public_html/pb/system/ext/tcpdf/tcpdf.php on line 22164
Warning: array_push() expects parameter 1 to be array, null given in /home/pb_admin/public_html/pb/system/ext/tcpdf/tcpdf.php on line 22164
Notice: Undefined index: thead in /home/pb_admin/public_html/pb/system/ext/tcpdf/tcpdf.php on line 21718

Exception Object
(
[message:protected] => PDF generation failed: Some data has already been output, can't send PDF file
[string:Exception:private] =>
[code:protected] => 0
[file:protected] => /home/pb_admin/public_html/pb/system/ext/tcpdf/tcpdf.php
[line:protected] => 29841
[trace:Exception:private] => Array
(
[0] => Array
(
[file] => /home/pb_admin/public_html/pb/system/ext/tcpdf/tcpdf.php
[line] => 9062
[function] => Error
[class] => ExceptionThrowingTCPDF
[type] => ->
[args] => Array
(
[0] => Some data has already been output, can't send PDF file
)

)

[1] => Array
(
[file] => /home/pb_admin/public_html/pb/system/lib/payment/Invoices/InvoiceManager.php
[line] => 141
[function] => Output
[class] => TCPDF
[type] => ->
[args] => Array
(
[0] => invoice_3284.pdf
[1] => D
)

)

[2] => Array
(
[file] => /home/pb_admin/public_html/pb/system/user-scripts/payment/view_invoice.php
[line] => 55
[function] => generatePDFVersion
[class] => SJB_InvoiceManager
[type] => ::
[args] => Array
(
[0] =>




Rechnung

Datum: 01.10.2014
Rechnung #3284
Status der Rechnung: In Bearbeitung (Zahlung auf Rechnung (Abonnement wird freigeschalten, sobald Zahlungseingang erfolgt ist.))

Rechnungsempfänger





Zahlungsempfänger

Ocean Harvest GmbH
Ruessenstrasse 18
6340 Baar

Konto:
Bank: UBS AG, Zug
IBAN: CH81 0027 3273 1186 8701 T


Beschreibung Betrag
PlacementBooster.ch
Firmen-Abonnement: 12 Monate
50 Mitarbeiter (51 Accounts) CHF 13,808.00
Zwischensumme CHF 13,808.00
MWST-Nr. CHE-108.643.082 MWST MWST Ref.-Nr. 417985 CHF 1,104.64
Insgesamt CHF 14,912.64

[1] => 3284
)

)

[3] => Array
(
[file] => /home/pb_admin/public_html/pb/system/core/ModuleManager.php
[line] => 127
[function] => execute
[class] => SJB_Payment_ViewInvoice
[type] => ->
[args] => Array
(
)

)

[4] => Array
(
[file] => /home/pb_admin/public_html/pb/system/core/System.php
[line] => 140
[function] => executeFunction
[class] => SJB_ModuleManager
[type] => ->
[args] => Array
(
[0] => payment
[1] => view_invoice
[2] =>
[3] => /view-invoice/
)

)

[5] => Array
(
[file] => /home/pb_admin/public_html/pb/system/core/PageConstructor.php
[line] => 29
[function] => executeFunction
[class] => SJB_System
[type] => ::
[args] => Array
(
[0] => payment
[1] => view_invoice
[2] =>
[3] => /view-invoice/
)

)

[6] => Array
(
[file] => /home/pb_admin/public_html/pb/system/core/System.php
[line] => 193
[function] => getPage
[class] => SJB_PageConstructor
[type] => ::
[args] => Array
(
[0] => SJB_UserPageConfig Object
(
[uri] => /view-invoice/
[module] => payment
[function] => view_invoice
[template] =>
[title] => View Invoice
[parameters] =>
[keywords] =>
[page_exists] => 1
[page_id] => 539
[has_raw_output] =>
[numberOfViews] =>
[description] =>
)

)

)

[7] => Array
(
[file] => /home/pb_admin/public_html/pb/system/core/Request.php
[line] => 209
[function] => getPage
[class] => SJB_System
[type] => ::
[args] => Array
(
[0] => SJB_UserPageConfig Object
(
[uri] => /view-invoice/
[module] => payment
[function] => view_invoice
[template] =>
[title] => View Invoice
[parameters] =>
[keywords] =>
[page_exists] => 1
[page_id] => 539
[has_raw_output] =>
[numberOfViews] =>
[description] =>
)

)

)

[8] => Array
(
[file] => /home/pb_admin/public_html/pb/index.php
[line] => 72
[function] => execute
[class] => SJB_Request
[type] => ->
[args] => Array
(
)

)

)

[previous:Exception:private] =>
)


Why is this error happening?

Answer

TCPDF requires 100% valid XHTML syntax

Even "HTML Tidy" will not show you all the html errors. In my case I had a tr tag not closed, and after I corrected this the warnings disappeared, but the pdf file was ugly. The problem was solved by changing, for example, colspan=12 by colspan=”12” and rowspan=2 by rowspan=”2” .

Comments