如何解决iext中的图像质量差
我正在使用itext7创建pdf文件 ,然后在页脚处尝试添加png图片,如下所示:
PdfDocumentEvent documentEvent = (PdfDocumentEvent) event;
pdfpage page = documentEvent.getPage();
PdfCanvas canvas = new PdfCanvas(page);
byte[] signature = null; // retrieved from database
PngImageData imageData = (PngImageData) ImageDataFactory.createPng(signature);
canvas.addImageAt(imageData,5f,25f,false);
原始图像本身具有很好的分辨率,但是当我将图像添加到pdf中时,尽管我添加的图像没有任何更改或缩放,但显示的质量很差。
如何在最终的pdf文件中改善图像质量?
解决方法
这是我的用于将图像添加到PDF的代码的片段:
PdfContentByte cbLogo = writer.getDirectContent();
if (instanceSettings.getDocumentHeaderImageLocation() != null) {
try {
String encodedString = instanceSettings.getDocumentHeaderImageLocation();
byte[] decodedBytes = Base64
.getDecoder()
.decode(encodedString);
Image imgLogo = Image.getInstance(decodedBytes);
imgLogo.scaleToFit(220f,150f);
imgLogo.setAbsolutePosition((writer.getPageSize().getWidth() / 4) - (imgLogo.getScaledWidth() / 2),writer.getPageSize().getHeight() - imgLogo.getScaledHeight() - 30);
cbLogo.addImage(imgLogo);
} catch (Exception e){
ErrorHandler.handle(e);
}
}
这是另一个:
Image qr = Image.getInstance(file.getAbsolutePath());
qr.scaleToFit(70f,70f);
qr.setSpacingBefore(0);
qr.setSpacingAfter(0);
qr.setPaddingTop(0);
PdfPCell cell = new PdfPCell();
cell.setPadding(0f);
cell.setUseAscender(true);
cell.setUseDescender(true);
cell.addElement(qr);
图像类型:
import com.itextpdf.text.Image;
您可以尝试使用此代码。对我来说,两者都能按预期工作,但是正如我在评论中说的那样,有时在PDF应用程序中查看它有时有些困难。据我所知,itext与它无关。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。