如何在TCPDF中添加图像

时间:2016-05-15 10:36:44

标签: image magento pdf tcpdf

我想使用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'); 

请指导我如果我想在页脚中添加我的商店名称(左角)和徽标(右角),那么我必须遵循哪些步骤。

请帮帮我。

3 个答案:

答案 0 :(得分:1)

确定。首先,$PDF_HEADER_LOGO假设是图像文件名,而不是图像数据 - 就像Header()函数的默认实现一样。但是,有一件重要的事情要记住,确切的位置取决于K_PATH_IMAGES常量,它应包含图像文件夹的路径。如果它在包含TCPDF库之前定义了它的确定,如果不是TCPDF检查一些默认路径并且首先将现有的用作图像目录。那些目录是:

  • ./实例/图像/
  • ./图像/
  • 的/ usr /共享/ DOC / PHP-TCPDF /示例/图像/
  • 的/ usr /共享/ DOC / TCPDF /示例/图像/
  • 的/ usr /共享/ DOC / PHP / TCPDF /示例/图像/
  • 的/ var / WWW / TCPDF /图像/
  • /无功/网络/ HTML / TCPDF /图像/
  • 的/ usr /本地/ apache2的/ htdocs中/ TCPDF /图像/
  • K_PATH_MAIN(root 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页面上查看很棒的示例部分:

http://www.tcpdf.org/examples.php

答案 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 插入是很棘手的。它实现了一些技巧来判断正在加载的内容:

  1. 插入带有 src 属性的图像作为绝对路径 - must have star * 前缀:

    <img src="*/var/www/my-image.png">

  2. 插入带有 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

  1. 正在加载 base-64 encoded string - @ 属性中必须有 src 前缀:

    <img src="@iVBORw0KGgoAAggfd0000555....">

    <img src="@'.base64_encode(file_get_contents($path)).'" width=50 height=35>

如果您想避免计算正确路径时出现问题,这是一个安全的选择,但会增加额外的 I/O 开销,因为 TCPDF 会尝试将提供的数据存储为临时图像文件,以确定图像宽度和高度。