我想在我的Magento商店中使用TCPDF在标题中添加一个图像。
我是这样做的:
$tcpdf = new TCPDF_TCPDF();
$img = file_get_contents(Mage::getBaseDir('media') . '/dhl/logo.jpg');
$PDF_HEADER_LOGO = $tcpdf->Image('@' . $img);//any image file. check correct path.
$PDF_HEADER_LOGO_WIDTH = "20";
$PDF_HEADER_TITLE = "This is my Title";
$PDF_HEADER_STRING = "This is Header Part";
$tcpdf->SetHeaderData($PDF_HEADER_LOGO, $PDF_HEADER_LOGO_WIDTH, $PDF_HEADER_TITLE, $PDF_HEADER_STRING);
$tcpdf->Output('report_per_route_'.time().'.pdf', 'I');
如果我想添加我的商店名称(左角)和徽标(右角),我必须遵循哪些步骤?
3条答案
按热度按时间dsekswqp1#
如果你试图使用
WriteHTML()
生成pdf,这里有一个小技巧,可以在不使用image()
函数的情况下添加图像。简单地使用HTML
<img>
,如下所示:$image_path = 'path/to/image'; $print = '<p>some text here...</p>'; $print .= '<img src=" '. $image_path .' ">'
;并且可以使用内联css来应用高度、宽度等。
jdg4fx2g2#
TCPDF在以HTML格式插入图像时很棘手。它实现了一些黑客技术来判断正在加载的内容:
1.插入具有
src
属性的图像作为绝对路径-必须具有星星*
前缀:<img src="*/var/www/my-image.png">
1.插入具有
src
属性的图像作为相对路径-两个示例都被视为相对路径:<img src="/var/www/my-image.png">
<img src="var/www/my-image.png">
请注意,相对路径在linux和windows上的计算方式不同--在windows上正确的计算方式在linux上可能不适用。这是由于检查路径字符串中的第一个字符是否为正斜杠
/
造成的,它被认为是linux根目录,并且路径将被重新计算--相对路径将附加到全局变量DOCUMENT_ROOT
。1.正在加载base-64编码字符串-在
src
属性中必须具有@
前缀:<img src="@iVBORw0KGgoAAggfd0000555....">
个<img src="@'.base64_encode(file_get_contents($path)).'" width=50 height=35>
个如果您想避免计算正确路径的问题,这是一个安全的选择,但是会增加额外的I/O开销,因为TCPDF会尝试将提供的数据存储为临时图像文件,以便确定图像的宽度和高度。
6mzjoqzu3#
首先,
$PDF_HEADER_LOGO
应该是一个图像文件名,而不是图像数据-就像Header的默认实现一样()函数.但是,有一点需要记住,确切位置取决于K_PATH_IMAGES
常量,其中应该包含图像文件夹路径.如果其定义之前包含TCPDF库其就可以了,如果没有,TCPDF将检查一些默认路径,并将第一个现有路径用作映像目录。这些目录是:因此,要么在之前定义常量,要么将文件放到上述目录之一,然后只将文件名作为第一个参数传递给
SetHeaderData
,这样就可以工作了。要使Footer具有类似的功能,您需要扩展TCPDF_TCPDF基类并覆盖其Footer方法。
示例:
你可能需要计算出精确的坐标。特别是在Image中,它取决于你的尺寸,你可以在Image函数中添加另一个参数y坐标,以及另外两个参数-图像的宽度和高度。
最重要的是,我建议您查看TCPDF页面上的优秀示例部分:
http://www.tcpdf.org/examples.php