当前位置: 首页 > 知识库问答 >
问题:

用iText实现pdf格式文本的不同位置

吕文林
2023-03-14

下面是我调用iText方法的java代码

PdfReader template = new PdfReader(templ);
XfdfReader xfdfReader = new XfdfReader(xfdf);
OutputStream outputStream = new FileOutputStream(output);
PdfStamper stamper = new PdfStamper(template, outputStream, '\0');

AcroFields form = stamper.getAcroFields();                                            

Set<String> fields = form.getFields().keySet();

form.setFields(xfdfReader);

stamper.setFreeTextFlattening(true);            
stamper.setFormFlattening(true);    
stamper.close();
template.close();

有人知道为什么当我把PDF放平时,文本会移动吗?我怎样才能避免这种情况呢?

我allready尝试了iText的不同版本。从版本4.x到5.x。不同之处出现在所有版本中。

共有1个答案

赵雅懿
2023-03-14

PDF文件中字段基线的位置多年来一直在改变。你甚至会看到不同版本的Acrobat你正在使用。

除非您知道确切的偏移量,否则没有解决您的问题的方法。如果这样做,则可以使用setExtramargin()方法在展平文档时更改所有字段的偏移量。

我们创建这个方法是为了处理特定的表单,这些表单具有与预期不同的基线。对于不同的表单,您选择的值可能不同。

 类似资料:
  • 问题内容: 使用iText合并不同宽度的文档时出现问题。 下面是我用来合并的代码。 pdf的首页宽度为14英寸,高度为13英寸。文档上的所有其他页面将始终小于该页面。 我想将所有文档全部合并到一个文档中。 我不知道如何设置单个合并文档的宽度和高度。 我认为应该这样做,但是如果将其更改为,文档无效将不起作用。 请进一步指导我。 问题答案: 使用类合并文档违反了 官方 文档中的所有建议,尽管有一些 非

  • 这是我找到的两种方法。但由于它们都不适合我的目的,我的问题是:有没有一种方法可以导入所有东西,除了结尾的空行,但包括文本样式的信息,表格和其他所有东西,从PDF到我的文档使用iText?

  • 问题内容: 我正在尝试使用iText库将.txt文件转换为.pdf文件。我面临的问题如下: 我在txt文件中有清晰的格式,与此类似: 在输出中,格式消失了,看起来像这样: 代码如下: 我还尝试使用IDENTITY_H创建BaseFont,但是它不起作用。我猜这是关于编码或类似的东西。你怎么看?我用完了解决方案… 谢谢 LE:正如艾伦(Alan)以及iText页面上的教程所建议的那样,除了我现有的代

  • 问题内容: 我使用itext将pdf转换为文本文件,它实际上工作良好,但是对于某些词它可以完成以下操作:例如,在pdf中,有诸如“ present the main idea”之类的短语,但是itext创建了诸如“ presentthemainideas”之类的输出。无论如何,有没有纠正这种行为? 问题答案: 缺少空格字符的原因是,您在渲染的PDF中看到的空格不一定与PDF页面内容描述中的空格相对

  • 我正在尝试将包含表格和图像的文件转换为格式文件。 我四处寻找但没有得到妥善的解决方案,请求给出妥善正确的解决方案: 这里我尝试了: 请建议。 使用的罐子: