2016-06-08 418 views
0

我使用iText和Java创建一个PDF文件。我试图在左侧放置一段,并在右侧浮动一个图像(例如,彼此相邻)。使用下面的代码插入图像,但它也使整个页面上的文本模糊(其他页面都很好)。iText:为什么添加图像会导致文本在PDF中显得模糊?

// add image 
Image img = Image.getInstance(imgPath); 
img.setAlignment(Image.RIGHT | Image.TEXTWRAP); 
img.scaleToFit(1000, 72f); // 1" height 
//img.setSpacingBefore(0f); // does not have any effect 
document.add(img); 

// add text 
Paragraph par = new Paragraph("some text here", styleBody); 
par.setSpacingBefore(20f); 
document.add(par); 

如果我删除代码的图像部分,文本看起来很干净。这是我第一次尝试在文字旁添加图片。一定是做了明显错误的事情。任何想法可能导致这种情况?

+1

我没有投票,但如果我不得不猜测,我会说这是因为你描述的问题不能被复制。我从来没有见过这种行为。我不知道你使用的是哪个版本的iText。我不知道你正在使用哪个PDF阅读器。也许这个问题只针对一个特定的观众。使用Adobe Reader时是否也会出现这种情况?也许这是一个查看器设置(类似于“降级打印”)。在目前的状态下,你的问题是无法回答的。也许倒票是为了告诉你(但解释倒票的评论会很好)。 –

+0

谢谢@BrunoLowagie。我正在使用Adobe Acrobat X Pro。我唯一改变的是注释掉上面代码中的// add image部分。当注释掉时,页面看起来很好,当它出现时,页面上的所有文本都是模糊的。但是,如果我在纸上打印PDF,打印的文字就没有问题。从你的回应中,至少这对于所示的代码来说并不明显,所以这很有帮助。我会看看我能否以其他方式找到解决方法。 – user46688

+1

提供一个[SSCCE](http://sscce.org/),以便其他人可以复制它。给我们一个没有任何外部依赖(iText除外)的独立示例并共享图像。 (是否有可能是WMF文件?)只有当我们能够重现这个例子的问题时,我们才能开始寻找罪魁祸首。现在,我们没有任何工作。我们有成千上万的例子,我们添加了不显示您描述的行为的图片。我们现在可以给你的唯一有效答案是*“它适用于我们。”* –

回答

1

我能解决这个问题。上面的代码非常好。问题是我正在使用带有透明度的PNG图像。当我删除透明度时(通过在透明度关闭的情况下从Illustrator中重新导出图像),我能够以明文形式创建PDF。

我认为透明度强制PDF页面写入CMYK颜色方案而不是RGB,这可能会导致此问题。

希望这可以帮助别人。我到处搜索,但找不到任何有关iText模糊文本的线索。

+0

这听起来像是有问题的pdf查看器(即使它是adobe Acrobat),而不是作为PDF生成器的itext。 – mkl

相关问题