【问题标题】:Editing PDF text using Java and Itext使用 Java 和 Itext 编辑 PDF 文本
【发布时间】:2014-09-01 00:04:43
【问题描述】:

有没有一种方法可以编辑 PDF 文档文本?比如查找和替换特定文本?

我有一个 PDF 文档,其中包含我需要识别和替换或删除该文本的文本占位符。

我可以使用特定坐标 (x, y) 编辑 pdf,但无法识别和替换。我看到的所有库都从头开始创建 PDF 和小型编辑功能。 无论如何我可以使用itext进行上述编辑吗? 请指教...谢谢!

**示例:pdf 文档包含以下段落。在本段中,我需要将 DATE: 和 FROM: 标识为文本并将其替换为其他内容。

最古老的古典希腊和拉丁文字在单词或其他单词之间几乎没有空格,并且可以用 boustrophedon(交替方向)书写。随着时间的推移,文本方向(从左到右)变得标准化,分词和终端标点符号变得普遍。 **日期: 发件人: 将句子分组的第一种方法是原始段落,类似于新组开头的下划线 -------------------------------------------------- ---------**

【问题讨论】:

  • 创建 PDF 是一个单向过程。 PDF 不是用于编辑的格式。请阅读我的书第 6 章的介绍,你就会明白为什么你看到的所有库都只有很小的编辑功能。它是 PDF 格式所固有的:manning.com/lowagie2/samplechapter6.pdf

标签: java itext


【解决方案1】:

请允许我复制我的chapter 6 的简介book

当我写第一本关于 iText 的书时,出版商不喜欢 副标题“创建和操作 PDF”。他不喜欢这个词 操纵,因为它有一些贬义。如果您在 Yahoo! 上查阅字典!教育,你会发现 以下定义:

  • 以精明或狡猾的方式影响或管理
  • 篡改或伪造以谋取私利

显然,这不是本书的主题。发布者建议 “创建和编辑 PDF”作为更好的副标题。我解释说 PDF 不是一种非常适合编辑的文档格式。 PDF是一个结束 产品。这是一种 显示 格式。这不是一个文字处理 格式。

在文字处理格式中,内容分布在不同的 在应用程序中打开文档时的页面,而不是更早的页面。这 有一些缺点:如果你在不同的地方打开同一个文档 应用程序,您最终可能会得到不同的页数。相同 在 Microsoft Word 中查看时,文本 sn-p 可以在页面 X 上,并且 在 Open Office 中查看时在页面 Y 上。这正是那种 您希望通过选择 PDF 来避免的问题。

在 PDF 文档中,PDF 页面上的每个字符或字形都有其对应的 固定位置,与用于查看的应用程序无关 文档。这是一个优点,但也有一个缺点。 假设你想用单词“manipulate”替换单词“edit” 在一个句子中,你必须重排文本。你必须重新定位 该单词后面的所有字符。也许你甚至不得不 将部分文本移至下一页。这不是微不足道的,如果 并非不可能。

如果您想“编辑” PDF,建议您更改原始文件 文件的来源并重新制作 PDF。如果原始文件 使用 Microsoft Word 编写,更改 Word 文档并制作 来自新版本 Word 文档的 PDF。不要指望任何 能够像编辑 Word 一样编辑 PDF 文件的工具 文件。

话虽如此,动词“操纵”也意味着

  • 用手或机械方式移动、安排、操作或控制,尤指以熟练的方式

这正是你在本章中要做的。使用 iText, 您将熟练地操作 PDF 文件的页面 方式。您将把 PDF 文档视为由 数字纸。

在您的问题中,您说:“我看到的所有库都从头开始创建 PDF 和小型编辑功能。”

嗯,这很正常。这是您选择的文档格式所固有的。您的设计涉及“需要识别和替换或只是删除的文本的占位符”存在严重缺陷。它受到文档格式选择错误的影响。您应该选择适合编辑的格式。 PDF 不是这样的格式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-07
    • 2018-04-14
    • 2018-12-14
    • 2012-01-02
    • 2012-04-23
    • 2017-08-29
    • 1970-01-01
    相关资源
    最近更新 更多