TCPDF:如何使用从MySQL数据库中检索到的BLOB值在TCPDF中显示图像?
答案 0 :(得分:6)
// Example of Image from data stream ('PHP rules')
$imgdata = base64_decode('iVBORw0KGgoAAAANSUhEUgAAABwAAAASCAMAAAB/2U7WAAAABlBMVEUAAAD///+l2Z/dAAAASUlEQVR4XqWQUQoAIAxC2/0vXZDrEX4IJTRkb7lobNUStXsB0jIXIAMSsQnWlsV+wULF4Avk9fLq2r8a5HSE35Q3eO2XP1A1wQkZSgETvDtKdQAAAABJRU5ErkJggg==');
// The '@' character is used to indicate that follows an image data stream and not an image file name
$pdf->Image('@'.$imgdata);
API documentation for Image()
更详细地解释了它:
<强> $文件 (字符串)包含图像或“@”字符的文件的名称 后跟图像数据字符串。无需嵌入即可链接图像 它在文档上,在URL之前设置一个星号字符(即:
*http://www.example.com/image.jpg
)。
答案 1 :(得分:0)
正如ÁlvaroGonzálezTCPDF已经回答的那样,您可以将图像blob传递给TCPDF::Image()
,但这有一些主要缺点:
TCPDF图像缓存不适用于图像blob。因此,如果多次传递相同的图像,TCPDF会消耗更多的内存。
如果传递图像blob,TCPDF会将其写入临时文件。但它不会检查是否已提供相同的图像blob。因此,即使再次传递相同的图像,它也会写入新的临时文件。这不仅会导致不必要的IO,还会将图像缓存构建到tcpdf中。
长话短说:如果多次使用图像,请不要将图像blob传递给tcpdf。将其保存到临时文件并传递该文件。
答案 2 :(得分:0)
我发现许多 php TCPDF库用户大多处于关于mysqli数据库的两难境地,让我们遵循以下快速指南
$ sql =“ SELECT * FROM成员WHERE id ='”。$ _ SESSION ['user']。“'”; $ query = $ conn-> query($ sql); $ user =(!empty($ user ['photo']))? 'images /'.$ user ['photo']:'images / profile.jpg'$ user = $ query-> fetch_assoc();
包括所有pdf参数,以在浏览器上设置pdf环境
//创建新的PDF文档
$ pdf =新的TCPDF(PDF_PAGE_ORIENTATION,PDF_UNIT,PDF_PAGE_FORMAT, true,'UTF-8',false);
//设置文档信息$ pdf-> SetCreator(PDF_CREATOR); $ pdf-> SetAuthor('Nicola Asuni'); $ pdf-> SetTitle('TCPDF Example 009'); $ pdf-> SetSubject('TCPDF Tutorial'); $ pdf-> SetKeywords('TCPDF,PDF, 例如测试,指南');
//设置默认标题数据$ pdf-> SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH,PDF_HEADER_TITLE。 009',PDF_HEADER_STRING);
//设置页眉和页脚字体 $ pdf-> setHeaderFont(Array(PDF_FONT_NAME_MAIN,``, PDF_FONT_SIZE_MAIN)); $ pdf-> setFooterFont(Array(PDF_FONT_NAME_DATA, '',PDF_FONT_SIZE_DATA));
//设置默认的等宽字体 $ pdf-> SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);
//设置边距$ pdf-> SetMargins(PDF_MARGIN_LEFT,PDF_MARGIN_TOP, PDF_MARGIN_RIGHT); $ pdf-> SetHeaderMargin(PDF_MARGIN_HEADER); $ pdf-> SetFooterMargin(PDF_MARGIN_FOOTER);
//设置自动分页符$ pdf-> SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
//设置图像比例因子$ pdf-> setImageScale(PDF_IMAGE_SCALE_RATIO);
//设置一些与语言相关的字符串(可选),如果 (@file_exists(dirname( FILE )。'/ lang / eng.php')){ require_once(dirname( FILE )。'/ lang / eng.php'); $ pdf-> setLanguageArray($ l); }
// --------------------------------------------- ----------------------
//添加页面$ pdf-> AddPage();
//设置JPEG质量$ pdf-> setJPEGQuality(75);
$ x = 165; $ y = 28; $ w = 50; $ h = 50; //调整大小的图片示例 $ pdf-> Image('images /'.$ voter ['photo']。“”,$ x,$ y,$ w,$ h,'JPG','');
$ x表示水平填充,而$ y表示垂直填充,$ w表示宽度,$ h表示高度。
设置您的输出
$ pdf-> Output('adding_from_Myqli_database.pdf','I');
?>