问题
I'm trying to get PDFlib support into PHP, but after finally figuring out how to install PDFlib, I get this error:
Fatal error: Uncaught exception 'PDFlibException' with message 'Function must not be called in 'object' scope'
Using the example code on php.net:
<?php
// create handle for new PDF document
$pdf = pdf_new();
// open a file
pdf_open_file($pdf, "test.pdf");
// start a new page (A4)
pdf_begin_page($pdf, 595, 842);
// get and use a font object
$arial = pdf_findfont($pdf, "Arial", "host", 1); pdf_setfont($pdf, $arial, 10);
// print text
pdf_show_xy($pdf, "There are more things in heaven and earth, Horatio,",50, 750);
pdf_show_xy($pdf, "than are dreamt of in your philosophy", 50,730);
// end page
pdf_end_page($pdf);
// close and save file
pdf_close($pdf);
?>
Does anyone have any ideas as to what could be causing this? I've tried googling around, but I've been unable to find any solutions.
回答1:
What version of PDFLib are you using? If it's 6.0 or greater, try this code:
<?php
// create handle for new PDF document
$pdf = PDF_new();
// open a file
PDF_begin_document($pdf, "test.pdf");
// start a new page (A4)
PDF_begin_page_ext($pdf, 595, 842);
// get and use a font object
$arial = PDF_load_font($pdf, "Arial", "host", 1); pdf_setfont($pdf, $arial, 10);
// print text
PDF_show_xy($pdf, "There are more things in heaven and earth, Horatio,",50, 750);
PDF_show_xy($pdf, "than are dreamt of in your philosophy", 50,730);
// end page
PDF_end_page_exit($pdf);
// close and save file
PDF_end_document($pdf);
?>
The functions pdf_open_file, pdf_begin_page, pdf_findfont, and pdf_close
are all deprecated.
回答2:
Or in "hard" and very not nice way - try moving your code somewhere to global scope.
回答3:
Please check the path where you are creating file.
pdf_open_file($pdf, "test.pdf");
Just ensure that the path is proper and error will gone away.
回答4:
Check for permission of your location you are passing. Mine is fixed with doing the same. It should have write permission.
chmod 0777 -R <PATH>
-R is recursive
path is certainly you stored in
pdf_open_file($pdf, "test.pdf");
in $pdf.
来源:https://stackoverflow.com/questions/997627/pdflib-giving-an-uncaught-exception-error