将csv转换为pdf的php脚本

Posted

技术标签:

【中文标题】将csv转换为pdf的php脚本【英文标题】:php script to convert csv to pdf 【发布时间】:2018-01-07 23:44:49 【问题描述】:

我将修改下面的 php 脚本,使其将数据库下载为 .pdf 文件而不是 .csv 格式。我该怎么做?当前,当调用此脚本时,数据库将下载为 .csv 文件。数据库在directadmin中定义。

<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

require 'db.php';
define("tableStuff", "stuff");
define("tableUser", "user");

define("ERR", '"status":1');
define("INVALID", '"status":2');

define("rowUserId", "user_id");
define("rowRegDate", "reg_date");
define("rowStuffName", "stuff_name");
define("rowPurchaseDate", "purchase_date");
define("rowStuffCount", "stuff_count");
define("rowStuffDescription", "stuff_description");
define("rowPicUrl", "pic_url");
define("rowUserName", "user_name");

//**********************************************************************
$mysqli = mysqli_connect(DBIP, DBUN, DBPW, DBNAME);
if ($mysqli->connect_errno) 
    echo ERR;
    die;

mysqli_set_charset($mysqli, "utf8");
$result = $mysqli->query("SELECT ".rowStuffName.",".rowStuffCount.",".rowStuffDescription.",".rowPurchaseDate.",".tableStuff.".".rowRegDate.",".rowUserName." FROM " . tableStuff .",".tableUser.
    " WHERE " . tableStuff.".".rowUserId . " = " . tableUser.".".rowUserId);
if ($result->num_rows > 0) 
    $array = array();
    while ($row = $result->fetch_array(MYSQL_ASSOC)) 
        $array[] = $row;
    
    header('Content-Encoding: UTF-8');
    header('Content-Type: application/csv; charset=utf-8' );
    header(sprintf( 'Content-Disposition: attachment; filename=stuff.csv', date( 'dmY-His' ) ) );
    header('Content-Transfer-Encoding: binary');
    header('Expires: 0');
    header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
    header('Pragma: public');
    //echo pack("CCC",0xef,0xbb,0xbf);
    $title = array("نام کالا","تعداد (مقدار)","توضیحات","زمان ثبت","نام فرد ثبت کننده");
    $out = fopen("php://output", 'w');
    //fputs($out,"\xEF\xBB\xBF");
    fputcsv($out, $title,"\t");
    foreach ($array as $data)
    
        fputcsv($out, $data,"\t");
    
    fclose($out);
 else 
    echo INVALID;

mysqli_close($mysqli);

【问题讨论】:

如果你想生成报告,首先你应该生成html表格,然后你可以使用某种html到pdf(google it)转换器来创建pdf。没有从 csv 生成 pdf 的简单方法。 采用@ErnestasStankevičius 的方式。至于转换器,我建议 wkhtmltopdf 【参考方案1】:

我迟到了,但我正在使用FPDF 生成所有 PDF 文件,它包括一个使用 CSV 文件中的表格制作 PDF 的内置示例,我刚刚更改了 CSV 文件的源。非常简单。

【讨论】:

假设服务器没有连接到公共网络!

以上是关于将csv转换为pdf的php脚本的主要内容,如果未能解决你的问题,请参考以下文章

使用 PHP(ghostscript) 将 PDF 转换为图像耗时太长

php 示例导出脚本,用于将MODX资源转换为CSV条目,以便在另一个站点中导入。

我用 php 创建了一个脚本来将 xml 转换为 csv,但是所有结果都是垂直的,而不是在一行中带有标题

PHP 中的 HTML2PDF - 转换实用程序和脚本 - 示例和演示

将PDF转换为Excel / csv / xlsx

在PHP中将EXCEL文件转换为CSV文件[重复]