【问题标题】:Unable to find "startxref" keyword opening PDF in PHP无法在 PHP 中找到“startxref”关键字打开 PDF
【发布时间】:2019-06-13 14:42:34
【问题描述】:

我正在下载一个文件,将其保存在本地,然后打开它以获取文件中的页数。我收到一个错误:Unable to find "startxref" keyword. 我已经进行了搜索,但没有找到任何可能与我的问题相关的内容。

public function getPageCountPDF($jobid) {
    $this->load->library('Awss3', null, 'S3');
    require_once 'application/libraries/fpdi/fpdf.php';
    require_once 'application/libraries/fpdi/fpdi.php';
    $PdfTranscriptInfo = $this->MJob->getDOCCSPdfTranscript($jobid);
    $filename = $PdfTranscriptInfo['origfilename'];
    $PdfFilename = 'uploads/' . $jobid . '/' . $filename;
    $pdfdata = $this->S3->readfile($PdfFilename, false, 'bucket');
    $localfilename = FCPATH . 'tmp/local.pdf'; 
    fopen($localfilename, 'a');
    $pdf = new FPDI();
    $pageCount = $pdf->setSourceFile($localfilename);  
    unlink($localfilename);
    return $pageCount;
}

当我回显 $pdfdata 时,我看到了 startxref 关键字,为什么找不到它?

有人吗?有什么想法吗?

编辑:我检查了文件是否已压缩,但不是。

第二次编辑:我看到我的 PDF 是 1.3 版,这与它有什么关系吗?

【问题讨论】:

  • 在不知道您使用的是哪个 S3 库的情况下很难进行调试。例如,我无法准确说出 $this->S3->readfile 的作用。
  • @SamTolton,它从存储文件的 S3 读取文件。如果我回显 $pdfdata,它会显示以下内容:%PDF-1.3 %���� 1 0 obj << /Title (��0322Byer Frantz) /Producer (Amyuni PDF Converter version 4.5.0.5) /CreationDate (D:20180507112129-04'00') >> endobj 7 0 obj << /Length 8 0 R /Filter /FlateDecode >> stream x��Z�r�6��g:�q; K��o�L�jmɕ����EUWm"���N��,@KcO_2>�b�rq��I%�_�E\����d��dI�ET�*.�(Mb�Le\Uѱ� ��v��"�?�(/cYEE����x�#*��@��F{/�"GX��{�N����TDQ�����yۏ�$Nd �6����������M��5i��/j�21A��2� tH��D� d�>5B��]�p�����y�q)zY' "����U2��,B�k���Y�NjH�8�S��C{�� ���
  • 那么我认为您在从 FCPATH . 'tmp/local.pdf'; 加载 PDF 时可能会遗漏一个步骤,但我看不到您将 $pdfdata 输出到该文件的位置。从 S3 读取文件后,您可能需要file_put_contents (FCPATH . 'tmp/local.pdf'; $pdfdata);
  • @SamTolton,好的,谢谢。我会尝试一下,让你知道它是否有效。
  • @SamTolton,我现在正在取消链接(C:\wamp64\www\companyname\tmp/local.pdf):权限被拒绝错误。我感谢你到目前为止的帮助。明天将继续努力。

标签: php pdf


【解决方案1】:

感谢@SamTolton。他的回答帮助我解决了问题。这是我现在可以使用的代码:

public function getPageCountPDF($jobid) {
    $this->load->library('Awss3', null, 'S3');
    require_once 'application/libraries/fpdi/fpdf.php';
    require_once 'application/libraries/fpdi/fpdi.php';
    $PdfTranscriptInfo = $this->MJob->getDOCCSPdfTranscript($jobid);
    $filename = $PdfTranscriptInfo['origfilename'];
    $PdfFilename = 'uploads/' . $jobid . '/' . $filename;
    $pdfdata = $this->S3->readfile($PdfFilename, false, 'bucket');
    $localfilename = FCPATH . 'tmp/local.pdf';
    file_put_contents($localfilename, $pdfdata);
    $pdf = new FPDI();
    $pageCount = $pdf->setSourceFile($localfilename);
    $pdf->cleanUp();
    unlink($localfilename);
    return $pageCount;
}

【讨论】:

    猜你喜欢
    • 2017-09-17
    • 1970-01-01
    • 1970-01-01
    • 2018-04-08
    • 1970-01-01
    • 1970-01-01
    • 2021-02-17
    • 2018-08-03
    • 1970-01-01
    相关资源
    最近更新 更多