tôi phải đối mặt với cùng một vấn đề trong các dự án cho khách hàng. Làm mờ hình ảnh trong tài liệu pdf được tạo ngay cả khi thuê hình ảnh.
Tôi mất một vài giờ, nhưng đây là những gì hiệu quả đối với tôi.
Tôi đã một lấy một cái nhìn vào mã và thấy rằng có một yếu tố quy mô đang được thiết lập trong constructor của tài liệu 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);
Các scalefactor là tùy thuộc vào giá trị được đưa ra trong các nhà xây dựng của tài liệu pdf:
function FPDF($orientation='P',$unit='mm',$format='A4')
Giá trị mặc định là 'mm'. Trong hầu hết các tài liệu của tôi, tôi bắt đầu một tài liệu pdf như:
$pdf = new PDF('P');
Điều này có nghĩa là máy tính tỷ lệ 72/25.4 = 2.83 được sử dụng. Khi tôi đặt một hình ảnh trước khi tôi vừa mới sử dụng:
$this->Image('path/to/file', 0, 0);
Bằng cách này tôi có hình ảnh mờ. Nó cũng có thể cung cấp cho chiều rộng của hình ảnh trong lệnh
$this->Image('path/to/file', 0, 0, 200); // for a image width 200
này đã cho tôi một hình ảnh đó là quá lớn. Nhưng - và ở đây có sự lừa - khi bạn chia chiều rộng thực tế do các scalefactor (trong trường hợp của tôi 2,83) và đặt này trong bản Tuyên Bố này nó mang lại một hình ảnh hoàn hảo sắc nét:
$this->Image('path/to/file', 0, 0, 71); // for a image width 200/2.83 = app 71
Tôi hy vọng công trình này cho bạn quá !
Tôi cũng có vấn đề này, bạn đã tìm ra? Có lẽ tôi có thể hỏi nó một cách khác ... Nếu một hình ảnh là 100 pixel x 100 pixel, chiều rộng và chiều cao FPDF để sử dụng để đảm bảo mở rộng hình ảnh không xảy ra là gì? – Scott
TCPDF là một lựa chọn thay thế - mặc dù bạn có thể không muốn nghe điều đó! Bạn có thể thử nó để so sánh chất lượng tuy nhiên trong trường hợp nó không phải là thư viện liên quan. –