我想使用TCPDF在标头中添加Image。我在我的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');
请指导我如果我想在页脚中添加我的商店名称(左角)和徽标(右角),那么我必须遵循哪些步骤。
请帮帮我。
答案 0 :(得分:1)
确定。首先,$PDF_HEADER_LOGO
假设是图像文件名,而不是图像数据 - 就像Header()函数的默认实现一样。但是,有一件重要的事情要记住,确切的位置取决于K_PATH_IMAGES
常量,它应包含图像文件夹的路径。如果它在包含TCPDF库之前定义了它的确定,如果不是TCPDF检查一些默认路径并且首先将现有的用作图像目录。那些目录是:
所以要么先定义常量,要么将你的文件放到上面的一个目录中,然后将文件名作为第一个参数传递给SetHeaderData
,它应该可以工作。
要为Footer提供类似的功能,您需要扩展基本TCPDF_TCPDF类并覆盖其Footer方法。
示例:
class MYPDF extends TCPDF_TCPDF {
// 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, 'COMPANY NAME', 0, false, 'C', 0, '', 0, false, 'T', 'M');
$this->Image('/path/to/image.jpg', 500)
}
}
您可能需要计算出精确的坐标。特别是在图像中,它取决于您的尺寸,您可以将另一个参数添加到图像函数为y坐标,另外两个参数 - 图像的宽度和高度。
最重要的是,我建议在TCPDF页面上查看很棒的示例部分:
答案 1 :(得分:1)
如果您尝试使用WriteHTML()
生成pdf,则可以在不使用image()
函数的情况下添加图片。
只需使用下面的HTML <img>
$image_path = 'path/to/image';
$print = '<p>some text here...</p>';
$print .= '<img src=" '. $image_path .' ">'
;
你可以使用内联css来应用高度,宽度等。
答案 2 :(得分:0)
TCPD 将图像作为 HTML 插入是很棘手的。它实现了一些技巧来判断正在加载的内容:
插入带有 src
属性的图像作为绝对路径 - must have star *
前缀:
<img src="*/var/www/my-image.png">
插入带有 src
属性的图像作为相对路径 - 两个示例都被视为相对路径:
<img src="/var/www/my-image.png">
<img src="var/www/my-image.png">
请注意,相对路径在 linux 和 windows 上的计算方式不同 - 在 windows 上正常工作的内容在 linux 上可能无法正常工作。这是由检查 first character in a path string 作为正斜杠 /
引起的,它被认为是 linux 根,路径将被重新计算 - 相对路径将附加到全局变量 DOCUMENT_ROOT
。
正在加载 base-64 encoded string - @
属性中必须有 src
前缀:
<img src="@iVBORw0KGgoAAggfd0000555....">
<img src="@'.base64_encode(file_get_contents($path)).'" width=50 height=35>
如果您想避免计算正确路径时出现问题,这是一个安全的选择,但会增加额外的 I/O 开销,因为 TCPDF 会尝试将提供的数据存储为临时图像文件,以确定图像宽度和高度。