私は顧客向けのプロジェクトでも同じ問題に直面しました。採用画像があっても、生成された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);
scalefactorは、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, 0);
このようにして、ぼやけた画像を取得しました。コマンドで画像の幅を指定することもできます
$this->Image('path/to/file', 0, 0, 200); // for a image width 200
これは私に大きすぎる画像を与えました。しかし、-そしてここにトリックがあります-実際の幅をスケールファクター(私の場合は2.83)で割って、これをこのステートメントに入れると、完全に鮮明な画像が得られます:
$this->Image('path/to/file', 0, 0, 71); // for a image width 200 / 2.83 = app 71
これがあなたにも役立つことを願っています!