【问题标题】:How to make a good PDF table using PHP?如何使用 PHP 制作好的 PDF 表格?
【发布时间】:2014-01-20 02:29:12
【问题描述】:

我只是想问一下使用PHP创建一个好的pdf表格?表格中有需要多单元格的单元格,问题是,我无法使其他单元格的高度与多单元格中的高度相同。这是PDF生成的全部代码(我在网上搜索代码并尝试它是否有效,我还没有完成修改此代码)。

<?php
//============================================================+
// File name   : example_004.php
// Begin       : 2008-03-04
// Last Update : 2013-05-14
//
// Description : Example 004 for TCPDF class
//               Cell stretching
//
// Author: Nicola Asuni
//
// (c) Copyright:
//               Nicola Asuni
//               Tecnick.com LTD
//               www.tecnick.com
//               info@tecnick.com
//============================================================+

/**
 * Creates an example PDF TEST document using TCPDF
 * @package com.tecnick.tcpdf
 * @abstract TCPDF - Example: Cell stretching
 * @author Nicola Asuni
 * @since 2008-03-04
 */

// Include the main TCPDF library (search for installation path).
require_once('tcpdf_include.php');
include('../../../conn.php');
$sql = mysql_query("SELECT * FROM tbl_video LIMIT 10");
// 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('Nicola Asuni');
$pdf->SetTitle('TCPDF Example 004');
$pdf->SetSubject('TCPDF Tutorial');
$pdf->SetKeywords('TCPDF, PDF, example, test, guide');

// set default header data
$pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE.' 004', 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 (optional)
if (@file_exists(dirname(__FILE__).'/lang/eng.php')) {
    require_once(dirname(__FILE__).'/lang/eng.php');
    $pdf->setLanguageArray($l);
}

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

// set font
$pdf->SetFont('times', '', 11);

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

// MultiCell($w, $h, $txt, $border=0, $align='J', $fill=0, $ln=1, $x='', $y='', $reseth=true, $stretch=0, $ishtml=false, $autopadding=true, $maxh=0)

// test Cell stretching
while($row = mysql_fetch_array($sql)){
    $pdf->MultiCell(55, 5, $row['ref_code'], 1, 'L', 0, 0, '', '', true);
    $pdf->MultiCell(55, 5, $row['video_title'], 1, 'L', 0, 0, '', '', true);
    $pdf->Ln();
}

$pdf->AddPage();

// example using general stretching and spacing



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

//Close and output PDF document
$pdf->Output('example_004.pdf', 'I');

//============================================================+
// END OF FILE
//============================================================+

The photo of the table can be seen here.

【问题讨论】:

    标签: php pdf pdf-generation


    【解决方案1】:

    有一个很好的库,尽管文档非常有限,它扩展了名为 FPDF 高级表 (http://www.interpid.eu/) 的 FPDF 库。

    【讨论】:

      【解决方案2】:

      将文档布局定义为 HTML(使用 PHP 很自然)并将 HTML 转换为 PDF 不是更好的方法吗?

      如果您不限于免费的 PDF 生成工具,这里有一个如何使用 PD4ML 的分步说明:http://pd4ml.com/php.htm

      【讨论】:

      • 我已经尝试过另一种方法,是的,我使用了 HTML 到 PDF 生成 :) 但是,我使用了这个 html2pdf.fr/en/default 并使用函数 wordwrap() 来适应内容.
      【解决方案3】:
      <?php
          require('fpdf/fpdf.php');
      
          $pdf = new FPDF();
          $pdf->AddPage();
          $pdf->SetFont('Arial','B',12);
          $width_cell=array(10,30,20,30);
      
          $pdf->SetFillColor(193,229,252);
          $pdf->Cell($width_cell[0],10,'ID',1,0,true);
          $pdf->Cell($width_cell[1],10,'NAME',1,0,true); 
          $pdf->Cell($width_cell[2],10,'CLASS',1,0,true);
          $pdf->Cell($width_cell[3],10,'MARK',1,1,true);
      
          $pdf->SetFont('Arial','',10);
          $pdf->Cell($width_cell[0],10,'1',1,0,false); 
          $pdf->Cell($width_cell[1],10,'John Deo',1,0,false);
          $pdf->Cell($width_cell[2],10,'Four',1,0,false);
          $pdf->Cell($width_cell[3],10,'75',1,1,false);
          $pdf->Output();
      ?>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-09-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-11-04
        • 2019-07-05
        相关资源
        最近更新 更多