【问题标题】:iText: why would adding an image cause text to appear fuzzy in PDF?iText:为什么添加图像会导致文本在 PDF 中显得模糊?
【发布时间】:2016-06-08 04:20:04
【问题描述】:

我正在使用 iText 和 Java 来创建 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);

如果我删除代码的图像部分,文本看起来很干净。这是我第一次尝试在文本旁边添加图像。一定是在做一些明显错误的事情。知道是什么原因造成的吗?

【问题讨论】:

  • 我没有投反对票,但如果我不得不猜测,我会说这是因为您描述的问题无法重现。我从未见过这种行为。我不知道您使用的是哪个版本的 iText。我不知道您使用的是哪个 PDF 查看器。也许问题是特定于一个特定的观众。使用 Adob​​e Reader 时也会出现这种情况吗?也许这是一个查看器设置(类似于“降级打印”)。在当前状态下,您的问题无法回答。也许反对票是为了告诉你(但解释反对票的评论会很好)。
  • 谢谢@BrunoLowagie。我正在使用 Adob​​e Acrobat X Pro。我唯一改变的是注释掉上面代码的//add image 部分。当被注释掉时,页面看起来很好,当它出现时,页面上的所有文本都是模糊的。但是,如果我将 PDF 打印在纸上,打印出来的文本就可以了。从您的回复来看,至少显示的代码并不明显,所以这会有所帮助。我会看看我是否可以通过其他方式找到解决方法。
  • 提供一个SSCCE,以便其他人可以复制它。给我们一个没有任何外部依赖的独立示例(iText 除外)并共享图像。 (它是否有可能是 WMF 文件?)只有当我们能够重现该示例的问题时,我们才能开始寻找罪魁祸首。现在,我们没有什么可处理的了。我们有数千个示例,我们在其中添加了未显示您描述的行为的图像。我们目前可以给您的唯一有效答案是“它对我们有用。”
  • 明白,我认为这是我正在做的事情,而不是框架。该图像是一个 png 文件。

标签: pdf itext


【解决方案1】:

我能够解决这个问题。上面的代码完全没问题。问题是我使用的是具有透明度的 PNG 图像。当我移除透明度时(通过从 Illustrator 重新导出图像并关闭透明度),我能够创建带有明文文本的 PDF。

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

希望这对其他人有所帮助。我到处搜索,但找不到任何关于 iText 中模糊文本的线索。

【讨论】:

  • 这听起来像是 pdf 查看器的问题(即使它是 adobe Acrobat),而不是 itext 作为 pdf 生成器的问题。
猜你喜欢
  • 1970-01-01
  • 2016-02-04
  • 1970-01-01
  • 1970-01-01
  • 2014-08-18
  • 1970-01-01
  • 1970-01-01
  • 2022-06-15
  • 1970-01-01
相关资源
最近更新 更多