我正在将文档扫描到存储在ByteArrayOutputStream
。
然后从ByteArrayOutputStream
,我使用iText创建PDF,但该PDF中的图像模糊不清。如果我们扫描小文档,就可以了,但是当我们扫描一张大小的图片时,它会被保存为PDF中的模糊图像。
我们尝试了各种方法来提高质量,但没有提高质量。 我尝试将图像转换为打印流,但这使它比以前更加模糊。
Component[] comps = MainPanel.this.getComponents();
List<ImagePanel> scannedImages = new ArrayList<ImagePanel>();
for (Component c : comps) {
if (c instanceof ImagePanel) {
scannedImages.add((ImagePanel) c);
}
}
ByteArrayOutputStream output = new ByteArrayOutputStream();
Document document = new Document(PageSize.A4, 0, 0, 0, 0);
try {
PdfWriter.getInstance(document, output);
document.open();
for (ImagePanel p : scannedImages) {
com.lowagie.text.Image iTextImage = com.lowagie.text.Image.getInstance(p.getImage().getScaledInstance(documentWidth, documentHeight, Image.SCALE_DEFAULT), null);
document.add(iTextImage);
document.newPage();
}
}
catch(Exception e) {
}
document.close();
DocumentUploadInfo.setDocumentStream(output.toByteArray());
DocumentUploadInfo.setDocumentMIMEType("application/pdf");