我有一张jpg图片用于名片布局,尺寸:9,8 cm/5,9 cm。我必须把它作为背景布局,在这个布局的顶部,我必须打印姓名/地址/电话号码/电子邮件等。然后打印出来/存为pdf格式,以备以后使用。
但问题是我不能使它与FPDF或TCPDF工作。知道我该怎么准备吗?使用FPDF还是TCPDF?
使用TCPDF可以完全按原样定位元素,因此您可以执行如下操作
$pdf = new TCPDF('L', 'mm', 'A4'); //Or whatever your required settings are
//Basic setup
$pdf->setPrintHeader(false);
$pdf->setPrintFooter(false);
$pdf->AddPage();
$pdf->Image('src', x, y); //Where x and y are the offset (probably 0, 0)
$pdf->writeHTMLCell(w, h, x, y, 'html') //Again where x and y are offset
$pdf->Output('filename.pdf', 'D'); //To force download
TCPDF在线文档不是很好,但是示例很有帮助http://www.tcpdf.org/examples.php
您特别要求创建名片大小的文档,因此您应该使用:
//Sets document size to a 5.9cm x 9.8cm landscape oriented page
$pdf = new TCPDF('L', 'mm', array(59,98));
文档在这里给出了一个预定义页面大小的列表:http://www.tcpdf.org/doc/classTCPDF.html#a087d4df77e60b7054e97804069ed32c5
在http://www.tcpdf.org的示例n. 51展示了如何创建一个完整的页面背景。然后,对于页面格式,检查getPageSizeFromFormat()方法的源代码文档(已经定义了300多种页面格式,包括名片)。
要设置fpdf的背景,您必须在类中设置Header()函数时首先调用Image()。
我通常的做法是在我自己的类中扩展Extend FPDF,即:
要求("路径//fpdf.php);
类someeclassname扩展FPDF {
//根据需要添加实例变量
…
头()函数{
//现在调用Image()
$ this ->图片();//设置你的背景
…
}
}
如果你看一下fpdf.org网站上的常见问题,你会看到关于如何做到这一点的(模糊的)说明
有一个实现FPDF的库叫做FPDI。要创建自定义纸张大小,例如名片,通常使用CR80,尺寸为54mm x 86mm,您可以直接将此大小添加到fpdf.php at stdpagesize 的类构造函数中:' CR80 '=>array(152.82,243.38)。这个条目已经存在,所以只需添加这个自定义条目。完整的定义应该是这样的:
$this->StdPageSizes = array('a3'=>array(841.89,1190.55), 'a4'=>array(595.28,841.89), 'a5'=>array(420.94,595.28), 'letter'=>array(612,792), 'legal'=>array(612,1008), 'cr80'=>array(152.82,243.38));
你的调用,如果使用FPDI,现在将是这样的:
$pdf = new Fpdi();
$pdf->AddPage('L','cr80'); //note our custom name
请注意,即使CR80的正确尺寸是54x86mm,似乎正确的设置需要这些值乘以2.83 -测试。我希望这有助于缩短代码和快速重用。