将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,但是所有结果都是垂直的,而不是在一行中带有标题