PDFLib: не удается открыть файл PDF

Ниже приведены строки кода PHP, которые я использую для открытия файла PDF:

$pdf_generartor = new PDFlib();

$doc = $pdf_generartor -> open_pdi_document("Report.pdf", "") or die ("ERROR: " . $pdf_generartor -> get_errmsg());

Хотя файл находится в нужном месте, каждый раз я получаю следующую ошибку:

ERROR: Couldn't open PDF file 'Report.pdf' for reading (file not found)

Кто-нибудь знаком с возможным решением?


person VarunGupta    schedule 11.12.2008    source источник


Ответы (3)


Я знаю, что это немного запоздало, но я сам столкнулся с этой проблемой и сумел ее «исправить». По-видимому, библиотека PDF не очень хорошо понимает относительные пути, поэтому вам придется использовать realpath().

Когда вы смотрите на образцы, вы можете сделать это двумя способами. Вы можете либо использовать realpath() с фактическими путями к файлам, либо использовать realpath() с «каталогом поиска».

$p = new PDFlib();
$p->set_parameter("SearchPath", realpath("data/"));

or:

$indoc = $p->open_pdi_document(realpath($infile), "");
person pbean    schedule 08.09.2010

Я думаю, что вы просто получили файл в неправильном месте.

Помните, что если это Linux, то он чувствителен к регистру.

И если ваш код находится во включенных файлах и т. д., вам нужно помнить об этом при разработке пути, если вы используете его относительно.

Пытаться

echo realpath('Report.pdf');

Он выведет путь, в который PHP переводит Report.pdf, и, вероятно, поможет вам понять, почему он идет не так.

person benlumley    schedule 11.12.2008
comment
Это не так, и я использую Windows. Файл находится почти в том же каталоге, что и файл исходного кода, и есть один файл кода, содержащий весь код. - person VarunGupta; 11.12.2008
comment
Тогда это моя идея в окно ..... ! У меня нет опыта работы с pdflib, всегда использовал FPDF. - person benlumley; 11.12.2008

Попробуйте указать файл по другому пути, даже с указанием каталога:

 $doc = $pdf_generartor->open_pdi_document("D:\\Report.pdf", "") or die ("ERROR:")
person Anil    schedule 22.12.2008