gpt4 book ai didi

pdf - 如何为pdf配置phpexcel

转载 作者:行者123 更新时间:2023-12-02 02:38:41 25 4
gpt4 key购买 nike

我一直在官方文档中搜索,但我似乎无法将所有内容放在一起(我是编程新手)。我设法使用 excel 库并且它运行得很好,但现在我想为用户提供选择下载 .xls 或 .pdf 文件的机会。

我正在使用 Codeigniter 和 WAMP。

我下载了 PHPExcel,它位于我的 C: 目录中。

后来我将类:PHPExcel(文件夹)和PHPExcel.php复制到我的codeigniter的第三方文件夹中。

然后,在 Codeigniter 的应用程序库中,我创建了一个名为 pdf.php 的文件,并将原始 PHPExcel 文档 (21pdf.php) 中的代码复制到其中

pdf.php

/** PHPExcel_IOFactory */
require_once dirname(__FILE__) . '/../Classes/PHPExcel/IOFactory.php';
$rendererName = PHPExcel_Settings::PDF_RENDERER_TCPDF;
$rendererLibrary = 'tcPDF5.9';
$rendererLibraryPath = '/php/libraries/PDF/' . $rendererLibrary;


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

我真的不知道如何配置它,我的大脑现在被烧伤了。任何帮助将不胜感激!

最佳答案

好的,现在我已经开始工作了,花了我几天的时间,但终于实现了。

为了在 Codeigniter 中配置 phpexcel 来生成 pdf 报告,我必须:

1).下载 PHPExcel,并将“Classes”文件夹中的内容复制到我的框架 Codeigniter 中的另一个文件夹(application/third_party)。在 Classes 文件夹中,您会发现另一个名为“PHPExcel”的文件夹和一个同名的 .php 文件。

2).然后,在应用程序/库中,我使用类构造函数创建了一个文件 excel.php:

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
/*
* =======================================
* Author : Muhammad Surya Ikhsanudin
* License : Protected
* Email : mutofiyah@gmail.com
*
* Dilarang merubah, mengganti dan mendistribusikan
* ulang tanpa sepengetahuan Author
* =======================================
*/
require_once APPPATH."/third_party/PHPExcel.php";

class Excel extends PHPExcel {
public function __construct() {
parent::__construct();
}
}

3).接下来继续阅读 pdf。首先,您应该选择要使用的库。我选择使用dompdf https://github.com/dompdf/dompdf并将其安装在应用程序/库中

4).创建了一个文件名 pdf.php (将其放在您想要的位置)并在其中放置了这个(基于官方 phpexcel 文档中给出的示例:21pdf.php 和 01simple-download-pdf.php 您可以在测试中找到PHPExcel 中的文件夹):

$rendererName = PHPExcel_Settings::PDF_RENDERER_DOMPDF;
$rendererLibrary = 'dompdf_0-6-0_beta3';
$rendererLibraryPath = dirname(__FILE__).'/'. $rendererLibrary;

“dompdf_0-6-0_beta3”是包含用于渲染为 pdf 的库的文件夹的名称

目录名(文件).'/'。 $rendererLibrary 是查找此“dompdf_0-6-0_beta3”文件夹的路径

5).在我的 admin.php 中构建方法来调用此函数。我首先做的是构建 Excel 表格并放入一些数据。之后,我使用 bool 值来查看用户是否想要 .xls 或 .pdf。如果他想要 .pdf 格式,则生成具有该扩展名的报告的代码如下:

require_once (realpath(dirname(dirname(dirname(__FILE__))))."/libraries/pdf.php");

$filename=$rDate.'_Reporte_Usuarios_front'.'.pdf';
header('Content-Type: application/pdf');
header('Content-Disposition: attachment;filename="'.$filename.'"'); //tell browser what's the file name
header('Cache-Control: max-age=0'); //no cache
// $objWriter = new PHPExcel_Writer_PDF($objPHPExcel);
$objWriter = PHPExcel_IOFactory::createWriter($this->excel, 'PDF');
$objWriter->setSheetIndex(0);
$objWriter->save('php://output');

当我的错误是找不到渲染库时,我发布了这个问题。这就是为什么我尝试使用 phpexcel 包装器而不是适当的库。所以在那之后不得不与这条路作一些斗争,但最终还是成功了。

修复后,出现另一个错误:DomPDF 中“无法加载 PDF 渲染库”(来自 PHPExcel)。所以我发现这一行:

$pdfRendererClassFile = PHPExcel_Settings::getPdfRendererPath() . '/dompdf/dompdf_config.inc.php';

我缺少包含 dompdf_config.inc.php 的文件夹,因为完整路径是:

应用程序/库/dompdf_0-6-0_beta3/dompdf/stuff

所以只需添加“dompdf”即可完成:)

关于pdf - 如何为pdf配置phpexcel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20409494/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com