我正在使用FPDF与
PHP添加图像到PDF.但是,PDF中的图像质量比原始图像差得多,如下所示:
相关代码:
$image_height = 40; $image_width = 40; $pdf = new FPDF(); $pdf->AddPage(); $start_x = $pdf->GetX(); $start_y = $pdf->GetY(); $pdf->Image('./images/ds_pexeso_ros_0_17.jpg',$pdf->GetX(),$pdf->GetY(),$image_height,$image_width); $pdf->Output("pexeso".date("Y-m-d"),"I");
原始图像是150×150像素.
我在客户的项目中遇到同样的问题.
即使使用图像,也可以在生成的pdf文档中模糊图片.
即使使用图像,也可以在生成的pdf文档中模糊图片.
花了我几个小时,但这对我有用.
我看了一下代码,看到在pdf文档的构造函数中设置了一个比例因子:
//Scale factor if($unit=='pt') $this->k=1; elseif($unit=='mm') $this->k=72/25.4; elseif($unit=='cm') $this->k=72/2.54; elseif($unit=='in') $this->k=72; else $this->Error('Incorrect unit: '.$unit);
比例因子取决于pdf文档的构造函数中给出的值:
function FPDF($orientation='P',$unit='mm',$format='A4')
默认值为“mm”.在我的大部分文件中,我发起了一个pdf文件,如:
$pdf = new PDF('P');
这意味着将会使用72 / 25.4 = 2.83的比例因子.
当我使用之前放置一张图像:
$this->Image('path/to/file',0);
这样我就得到了模糊的图像.
也可以在命令中给出图像的宽度
$this->Image('path/to/file',200); // for a image width 200
这给了我一个太大的形象.但是,这里是一个诀窍 – 当你将实际宽度除以scalefactor(在我的情况下是2.83),并将其放在这个语句中,它给出了一个完全清晰的图像:
$this->Image('path/to/file',71); // for a image width 200 / 2.83 = app 71
我希望这也适合你!