【问题标题】:Chrome has “Failed to load PDF document” error message on inline PDF with using PHPExcelChrome 在使用 PHPExcel 的内联 PDF 上出现“加载 PDF 文档失败”错误消息
【发布时间】:2015-01-02 05:43:08
【问题描述】:

我在使用 PHP 在 Chrome 中读取由 PHPExcel 库生成的 pdf 文件时遇到问题。它可以在 Firefox 中正常工作,但不能在 chrome 中工作。请帮帮我

以下代码是我在PHP中的做法

    require_once 'PHPExcel.php';
    $rendererName = PHPExcel_Settings::PDF_RENDERER_DOMPDF;
    $rendererLibrary = 'dompdf';

     $objPHPExcel = new PHPExcel();

        //  set the paper size and the paper view style
        $objPHPExcel->getActiveSheet()->getPageSetup()->setOrientation(PHPExcel_Worksheet_PageSetup::ORIENTATION_LANDSCAPE);
        $objPHPExcel->getActiveSheet()->getPageSetup()->setPaperSize(PHPExcel_Worksheet_PageSetup::PAPERSIZE_A4);

        //  make cell content text-align center
        $objPHPExcel->getDefaultStyle()
                    ->getAlignment()
                    ->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);

        //  border for all cells
        $styleArray = array(
                        'borders' => array(
                            'allborders' => array(
                                'style' => PHPExcel_Style_Border::BORDER_THIN
                            )
                        )
                    );
        $objPHPExcel->getDefaultStyle()->applyFromArray($styleArray);

        // Set document properties
        $objPHPExcel->getProperties()->setCreator("Occasional Riot")
                                     ->setLastModifiedBy("Occasional Riot")
                                     ->setTitle("Interest Area Document")
                                     ->setSubject("Interest Area List")
                                     ->setDescription("The list of the Interest Area")
                                     ->setKeywords("office 2007 openxml php")
                                     ->setCategory("Interest Area file");

        foreach(range('B','F') as $columnID) {
            $objPHPExcel->getActiveSheet()->getColumnDimension($columnID)
                ->setAutoSize(true);
        }
        // Add some data
        $objPHPExcel->setActiveSheetIndex(0)
                    ->setCellValue('A1', 'Social')
                    ->setCellValue('H2', 'Venue');

        $objPHPExcel->setActiveSheetIndex(0)->mergeCells('A1:B1');



        $objPHPExcel->getActiveSheet()->getStyle("A1")->getFont()->setBold(true);


        if (!PHPExcel_Settings::setPdfRenderer(
                $rendererName,
                $rendererLibraryPath
            )) {
            die(
                'NOTICE: Please set the $rendererName and $rendererLibraryPath values' .
                '<br />' .
                'at the top of this script as appropriate for your directory structure'
            );
        }

        // Redirect output to a client’s web browser (PDF)
        header('Content-Type: application/pdf');
        header('Content-Disposition: attachment;filename="Interest Area.pdf"');
        header('Cache-Control: max-age=0');

        $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'PDF');
        $objWriter->writeAllSheets();
        $objWriter->save('php://output');

        $objWriter->save('interest.pdf');
        readfile("interest.pdf");
        exit;

【问题讨论】:

  • 您可以发布 chrome 错误消息吗?您可以使用开发者控制台检查它
  • @rajeshujade : 控制台消息为空.. 在整个页面中它打印“加载 PDF 文档失败”消息
  • @告诉我PHPExcel库版本?
  • PHPExcel库版本为1.7.9

标签: php google-chrome pdf pdf-generation phpexcel


【解决方案1】:

聚会有点晚了,但也出现了类似的错误。

我必须使用 PHP 填充 PDF 并在之后显示它,但我总是从 Chrome 中收到“加载 PDF 文档失败”错误。

我不知道是否是同样的问题,但在我的情况下,PHP 报告了通知和警告错误,没什么太重要的,但正因为如此,PDF 无法加载。隐藏错误解决了我的问题!

TL;DR :在您的 PHP 文件顶部尝试error_reporting(E_STRICT);(快速而肮脏)或在您的readfile("interest.pdf"); 之前尝试exit;,这样您就可以看到错误并修复它们。

【讨论】:

    猜你喜欢
    • 2011-08-05
    • 1970-01-01
    • 2019-05-31
    • 2014-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-27
    • 2016-04-09
    相关资源
    最近更新 更多