回应预定义pdf的正确方法

时间:2016-07-22 17:25:31

标签: php html pdf get

我正在尝试制作一个将在线查看为PDF的文档。示例网址为url.com/PDF.php?name=John Doe

PDF将包含大量预定义文本,我想多次将name=之后的部分回显到PDF中。

我已阅读(并试过)FPDF,TCPDF,但我无法弄清楚如何实现这一点。

<?php
    echo htmlentities($_GET["name"]); //John
?>

有没有人知道实现这一目标的直接方式?

我没有PDF代码,因为我没有得到FPDF或TCPDF来正确地工作/显示我正在做的事情。以为我会检查这是否是正确的方法,或者我应该使用纯PHP。

使用这些php / pdf库工作的'for dummies'指南实际上很棒。我下载了库,将其上传到我的服务器,复制了examples文件夹中的一个文件,将路由更改为(tcpdf-relative)文件,但不是,它不起作用。如果我转到examples / example_001.pdf中的一个文件,它会正确显示。如果我将该文件复制到root并更改链接以匹配新位置,则它不起作用。

示例效果很好 http://fragger.no/pdf/examples/example_003.php

此文件放在root中根本不显示,只显示白页。没有错误。

<?php

// Include the main TCPDF library (search for installation path).
require_once('examples/tcpdf_include.php');


// Extend the TCPDF class to create custom Header and Footer
class MYPDF extends TCPDF {

    //Page header
    public function Header() {
        // Logo
        $image_file = K_PATH_IMAGES.'logo_example.jpg';
        $this->Image($image_file, 10, 10, 15, '', 'JPG', '', 'T', false, 300, '', false, false, 0, false, false, false);
        // Set font
        $this->SetFont('helvetica', 'B', 20);
        // Title
        $this->Cell(0, 15, '<< TCPDF Example 003 >>', 0, false, 'C', 0, '', 0, false, 'M', 'M');
    }

    // Page footer
    public function Footer() {
        // Position at 15 mm from bottom
        $this->SetY(-15);
        // Set font
        $this->SetFont('helvetica', 'I', 8);
        // Page number
        $this->Cell(0, 10, 'Page '.$this->getAliasNumPage().'/'.$this->getAliasNbPages(), 0, false, 'C', 0, '', 0, false, 'T', 'M');
    }
}

// create new PDF document
$pdf = new MYPDF(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 003');
$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, 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', 'BI', 12);

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

// set some text to print
$txt = <<<EOD
TCPDF Example 003

Custom page header and footer are defined by extending the TCPDF class and overriding the Header() and Footer() methods.
EOD;

// print a block of text using Write()
$pdf->Write(0, $txt, '', 0, 'C', true, 0, false, false, 0);

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

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

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

我编辑了这个:  //包含主TCPDF库(搜索安装路径)。     require_once( '的例子/ tcpdf_include.php');

要  //包含主TCPDF库(搜索安装路径)。     require_once( 'tcpdf.php');

并且它有效,所以现在我需要的是在文档中使用GET信息。

这是我想要展示的地方吗?name =

// set font
$pdf->SetFont('helvetica', '', 12);

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

// set some text to print
$txt = <<<EOD
My text

**NAME VALUE**

Some more text
EOD;

1 个答案:

答案 0 :(得分:0)

首先,为了使用$_GET,你必须检查它是否存在:

<?php

if ( isset( $_GET[ "name" ] ) )
     $name = $_GET[ "name" ];    // ◄■■■■■■ NAME FROM URL.
else $name = "noname";  // ◄■■■■■■ "NONAME" OR "?" OR ANYTHING ELSE.

// Include the main TCPDF library (search for installation path).
require_once('examples/tcpdf_include.php');
.
.
.

名称存储在$name中,因此您可以在任何地方使用该变量:

$txt = <<<EOD
My text

$name

Some more text
EOD;