我正在尝试从PDF的特定部分删除文本。如果我知道该区域的X,Y坐标,我就可以删除文本。但我无法从PDF中获取所选区域的坐标。请帮助我。
答案 0 :(得分:1)
此问题是对上一个问题的跟进:Remove text occurrences contained in a specified area with iText
在此问题中,您要求从特定区域中删除内容。现在您要问如何确定这个特定区域,但您的问题不完整:您没有告诉我们选择该区域的任何标准。
似乎你正在尝试做一些叫做编辑的事情。 StackOverflow问题中解释了这一点:How to create and apply redactions?
在回答这个问题时,我将解释如何以编程方式创建编校注释。但是,编辑通常使用Adobe Acrobat手动完成:
箭头显示您需要的功能:工具>保护>标记为编辑
如果您只需要坐标而不需要编辑注释,则可以引入另一个注释,允许您手动标记矩形,然后使用iText提取坐标。例如:如果矩形是表单字段,那么获取坐标非常容易。如果您要删除的内容是表单字段的值,则删除该内容会更容易:您只需删除该字段。
如果无法手动检索这些坐标,那么您可能面临一些不可能的事情:例如:如果您对要删除的区域的内容一无所知,那么究竟是怎样的你打算教一个程序需要删除的东西吗?
如果您确实知道自己要查找的内容,则需要解析该内容。之前已经提出并回答了这个问题:Get the exact Stringposition in PDF
<强>更新强>
在评论中,您解释了将PDF页面转换为图像,您在Java Swing应用程序中渲染图像,以便用户可以选择矩形。此矩形存储为java.awt.Image
。
由于Java中的坐标系与PDF中的坐标系不同,这导致了以下潜在问题。
所有这些原因都可能导致您从Swing应用程序获得的矩形与您需要在PDF中使用的坐标不同。你需要考虑所有这些因素,否则,你将继续面对你,它不会工作&#34;问题。这不是iText问题,这是一个数学问题。