0

可能重复:
使用 PHP 创建 PDF 文件

我需要帮助..我想要一个 php 代码来下载存储在 mysql 数据库中的信息并将其保存在 pdf 文件中.. 到目前为止,下面是我拥有的代码,但它没有打印任何内容.. 请帮我修改它或给我另一个更好的代码。谢谢..

<?php
$host = 'localhost';
$user = 'root';
$pass = 'hello';
$db = 'version';
$table = 'childinfo';
$file = 'export';
$csv_output;

$link = mysql_connect($host, $user, $pass) or die("Can not connect." . mysql_error());
mysql_select_db($db) or die("Can not connect.");


$gotten =mysql_query("select sex,childnumber from child_nfo");
$row =mysql_fetch_assoc($gotten);
$bytes = $row[imgdata];
header("Content-type: application/pdf");
header('Content-disposition: attachment; filename="thing.pdf"');
print $bytes;
?> 
4

2 回答 2

1

您可以使用 tcpdf 创建 pdf。尝试使用以下格式的 tcpdf。此外,您可以拥有 tcpdf 文档以了解如何使用它。我正在分享代码,这只是如何使用 tcpdf 创建 pdf 文件的示例。

require_once('tcpdf/tcpdf.php');

        error_reporting(0);
// create new PDF document
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);

// set document information
$pdf->SetCreator(PDF_CREATOR);
$pdf->SetAuthor('your author name');
$pdf->SetTitle('title');
$pdf->SetSubject('subject');
$pdf->SetKeywords('TCPDF, PDF, example, test, guide');

// set default header data
$pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE, PDF_HEADER_STRING);

// set header and footer fonts
$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
$pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));

// set default monospaced font
$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);

//set margins
$pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
$pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
$pdf->SetFooterMargin(PDF_MARGIN_FOOTER);

//set auto page breaks
$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);

//set image scale factor
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);

//set some language-dependent strings
$pdf->setLanguageArray($l);

// ---------------------------------------------------------

// set font
$pdf->SetFont('dejavusans', '', 10);

// add a page
$pdf->AddPage();

// writeHTML($html, $ln=true, $fill=false, $reseth=false, $cell=false, $align='')
// writeHTMLCell($w, $h, $x, $y, $html='', $border=0, $ln=0, $fill=0, $reseth=true, $align='', $autopadding=true)

// create some HTML content
$html = $pdf_content;
// output the HTML content
$pdf->writeHTML($html, true, false, true, false, '');
// reset pointer to the last page
$pdf->lastPage();

// ---------------------------------------------------------

//Close and output PDF document
//$pdf->Output('example_006.pdf', 'I');
$pdf_filename = time().".pdf";
$pdf->Output('destination_directory/'.$pdf_filename, 'F');

您可以将获取的数据库信息放入$pdf_content变量中。希望这对你有帮助..

于 2012-12-06T08:58:21.653 回答
0

我假设 $byes 是图像的字节流?您不能只是print把它拿出来并期望它是一个格式化的 PDF 文件。这些类在生成 PDF 时可能很有用:

FPDF:http ://www.fpdf.org/

TCPDF:http ://www.tcpdf.org/

于 2012-12-06T08:28:57.120 回答