无法打开 PDF 文件
PDF file cannot be opened
我想在我的 Symfony 2 项目中打开一个 PDF 文件并使用 FPDI 操作该文件。但是,该文件似乎无法读取。
这是我的代码:
public function myPpfFunction()
{
$fileLocator = $this->container->get('file_locator');
$pathTestfile = $fileLocator->locate('@MyBundle/Resources/public/pdf/test.pdf');
$pdf = new \FPDI();
$pdf->AddPage();
$pdf->setSourceFile($pathTestfile);
$tplIdx = $pdf->importPage(1);
$pdf->useTemplate($tplIdx, 10, 10, 100);
$pdf->SetFont('Helvetica');
$pdf->SetTextColor(255, 0, 0);
$pdf->SetXY(30, 30);
$pdf->Write(0, 'This is just a simple text');
return new Response($pdf->Output(), 200, array(
'Content-Type' => 'application/pdf'));
}
错误信息:
Cannot open
/srv/myproject/src/mycompany/mybundle/Resources/public/pdf/test.pdf !
即使我想在没有任何捆绑包的情况下打开 pdf,但在浏览器中使用 BinaryFileResponse
class 简单地查看它,我也会收到文件不可读的消息。路径必须正确,因为例如 BinaryFileResponse
class 我可以在我的浏览器中成功查看 .txt 文件,这些文件与 pdf 文件位于同一文件夹中。
如何实现pdf可读?我想要的任何 pdf 都会出现该消息。
更新:
我刚刚发现,令人惊讶的是,我可以打开使用 FPDF 包生成的 PDF。这怎么可能?
这一定是权限问题。由于 fopen() call. So you may try to debug this with some file_exists() or is_readable() 次调用失败而引发错误消息。
此外,您需要将 Output() 调用更改为:
return new Response($pdf->Output('S'), 200, array(
'Content-Type' => 'application/pdf'));
否则 FPDF 将发送文档和 headers 这似乎不是您的计划。
我想在我的 Symfony 2 项目中打开一个 PDF 文件并使用 FPDI 操作该文件。但是,该文件似乎无法读取。
这是我的代码:
public function myPpfFunction()
{
$fileLocator = $this->container->get('file_locator');
$pathTestfile = $fileLocator->locate('@MyBundle/Resources/public/pdf/test.pdf');
$pdf = new \FPDI();
$pdf->AddPage();
$pdf->setSourceFile($pathTestfile);
$tplIdx = $pdf->importPage(1);
$pdf->useTemplate($tplIdx, 10, 10, 100);
$pdf->SetFont('Helvetica');
$pdf->SetTextColor(255, 0, 0);
$pdf->SetXY(30, 30);
$pdf->Write(0, 'This is just a simple text');
return new Response($pdf->Output(), 200, array(
'Content-Type' => 'application/pdf'));
}
错误信息:
Cannot open /srv/myproject/src/mycompany/mybundle/Resources/public/pdf/test.pdf !
即使我想在没有任何捆绑包的情况下打开 pdf,但在浏览器中使用 BinaryFileResponse
class 简单地查看它,我也会收到文件不可读的消息。路径必须正确,因为例如 BinaryFileResponse
class 我可以在我的浏览器中成功查看 .txt 文件,这些文件与 pdf 文件位于同一文件夹中。
如何实现pdf可读?我想要的任何 pdf 都会出现该消息。
更新:
我刚刚发现,令人惊讶的是,我可以打开使用 FPDF 包生成的 PDF。这怎么可能?
这一定是权限问题。由于 fopen() call. So you may try to debug this with some file_exists() or is_readable() 次调用失败而引发错误消息。
此外,您需要将 Output() 调用更改为:
return new Response($pdf->Output('S'), 200, array(
'Content-Type' => 'application/pdf'));
否则 FPDF 将发送文档和 headers 这似乎不是您的计划。