如何制作名片与fpdf或tcpdf或其他?当我有一个jpg背景和文字重叠的要求


How to make business card with fpdf or tcpdf or others? When i have a jpg background and text overlap requires?

我有一张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 -测试。我希望这有助于缩短代码和快速重用。