php TCPDF $pdf->Image 插入的图像不可见

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/2260976/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-25 05:46:43  来源:igfitidea点击:

TCPDF $pdf->Image Inserted images not visible

phppdf

提问by Dennis Kioko

am trying to insert images into a PDF using TCPDF, but am just getting blank pages. Here is my code:

我正在尝试使用 TCPDF 将图像插入到 PDF 中,但我只是得到了空白页。这是我的代码:

if ((($_FILES["file"]["type"][0] == "image/gif")
|| ($_FILES["file"]["type"][0] == "image/jpeg")
|| ($_FILES["file"]["type"][0] == "image/pjpeg"))
&& ($_FILES["file"]["size"][0] < 1000001))


{
if ($_FILES["file"]["error"][0] > 0) 
{
$errmsg_arr[] = "Return Code: " . $_FILES["file[]"]["error"][0] . "<br />";
$errflag = true;

}  else
{  
require_once('tcpdf/config/lang/eng.php');
require_once('tcpdf/tcpdf.php');

// create new PDF document
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false); 

// set document information
$pdf->SetCreator(PDF_CREATOR);
$pdf->SetAuthor('');
$pdf->SetTitle('ePast Papers');
$pdf->SetSubject('ePast Papers Archives');
$pdf->SetKeywords('TCPDF, PDF, example, test, guide');

// set default header data
$pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE,      PDF_HEADER_STRING);

// set header and footer fonts
//$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
//$pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));

// set default monospaced font
$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);

//set margins
$pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
//$pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
//$pdf->SetFooterMargin(PDF_MARGIN_FOOTER);

//set auto page breaks
$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);

//set image scale factor
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO); 

//set some language-dependent strings
$pdf->setLanguageArray($l); 

// ---------------------------------------------------------
if ($_FILES["file"]["tmp_name"][0]!='')
{
// add a page
$pdf->AddPage();

// set JPEG quality
$pdf->setJPEGQuality(75);

// Image example
$pdf->Image($_FILES["file"]["tmp_name"][0] , 0, 0, 4, 6, '', 'http://www.tcpdf.org', '', true, 150);
}
if ($_FILES["file"]["tmp_name"][1] != '')
{
$pdf->AddPage();

// set JPEG quality
$pdf->setJPEGQuality(75);

// Image example
$pdf->Image($_FILES["file"]["tmp_name"][1] , 50, 50, 100 ,150, '', 'http://www.tcpdf.org', '', true, 150);
}

if ($_FILES["file"]["tmp_name"][2] != '')
{
$pdf->AddPage();

// set JPEG quality
$pdf->setJPEGQuality(75);

// Image example
$pdf->Image($_FILES["file"]["tmp_name"][2] , 50, 50, 100, 150, '', 'http://www.tcpdf.org', '', true, 150);
}

if ($_FILES["file"]["tmp_name"][3] != '')
{
$pdf->AddPage();

// set JPEG quality
$pdf->setJPEGQuality(75);

// Image example
$pdf->Image($_FILES["file"]["tmp_name"][3] , 50, 50, 100, 150, '', 'http://www.tcpdf.org', '', true, 150);
}

回答by Dennis Kioko

i figured the issue above. For some unknown reason, I was not able to pass the temporary files directly to TCPDF, the option was storing the temporary files in a folder first and then passing the new location to TCPDF like below

我想出了上面的问题。由于某些未知原因,我无法将临时文件直接传递给 TCPDF,该选项是先将临时文件存储在一个文件夹中,然后将新位置传递给 TCPDF,如下所示

for($i=0; $i<=6; $i++){ 

  move_uploaded_file($_FILES["file"]["tmp_name"][$i],
  "scans/" .$_FILES["file"]["name"][$i]);



  }
// create handle for new PDF document 

... 
require_once('tcpdf/config/lang/eng.php');
require_once('tcpdf/tcpdf.php');

// create new PDF document
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false); 

// set document information
$pdf->SetCreator(PDF_CREATOR);
$pdf->SetAuthor('');
$pdf->SetTitle('ePast Papers');
$pdf->SetSubject('ePast Papers Archives');
$pdf->SetKeywords('TCPDF, PDF, example, test, guide');

// set default header data
//$pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE, PDF_HEADER_STRING);

// set header and footer fonts
//$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
//$pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));

// set default monospaced font
$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);

//set margins
$pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
//$pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
//$pdf->SetFooterMargin(PDF_MARGIN_FOOTER);

//set auto page breaks
$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);

//set image scale factor
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO); 

//set some language-dependent strings
$pdf->setLanguageArray($l); 

// ---------------------------------------------------------
if ($_FILES["file"]["tmp_name"][0]!='')
{
// add a page
$pdf->AddPage();

// set JPEG quality
$pdf->setJPEGQuality(75);

// Image example
$pdf->Image('scans/'.$_FILES["file"]["name"][0] , 0, 0, 210, 297, '', '', '', true, 150);
}
if ($_FILES["file"]["tmp_name"][1] != '')
{
$pdf->AddPage();

// set JPEG quality
$pdf->setJPEGQuality(75);

// Image example
$pdf->Image('scans/'.$_FILES["file"]["name"][1] , 0, 0, 210, 297, '', '', '', true, 150);
}

if ($_FILES["file"]["name"][2] != '')
{
$pdf->AddPage();

// set JPEG quality
$pdf->setJPEGQuality(75);

// Image example
$pdf->Image('scans/'.$_FILES["file"]["name"][2] , 0, 0, 210, 297, '', '', '', true, 150);
}

if ($_FILES["file"]["tmp_name"][3] != '')
{
$pdf->AddPage();

// set JPEG quality
$pdf->setJPEGQuality(75);

// Image example
$pdf->Image('scans/'.$_FILES["file"]["name"][3] , 0, 0, 210, 297, '', '', '', true, 150);
}

for the line $pdf->Image('scans/'.$_FILES["file"]["name"][0] , x position on document, y position on document, width(mm), height(mm), '', 'Link inserted image to a URL', '', true, 150);

对于线 $pdf->Image('scans/'.$_FILES["file"]["name"][0] , x position on document, y position on document, width(mm), height(mm), '', 'Link inserted image to a URL', '', true, 150);