![删除 PDF 文件中的红色方框](https://linux22.com/image/1548742/%E5%88%A0%E9%99%A4%20PDF%20%E6%96%87%E4%BB%B6%E4%B8%AD%E7%9A%84%E7%BA%A2%E8%89%B2%E6%96%B9%E6%A1%86.png)
我从 LPIC 网站下载了《Linux Essentials》PDF 文件,其链接为 https://www.linuxcertification.co.za/sites/default/files/linux-esentials-manual.pdf
我将 PDF 文件保存在系统上,并使用 Foxit PDF 阅读器和 Adobe 阅读器打开它。现在,在 Chrome 中以 PDF 形式查看文件时,看不到红色框:
但是,当我在 Foxit 和 Adobe 中查看它时,会出现这些框:
导致此问题的原因是什么?
我尝试使用在线转换器将 PDF 文件转换为 Word,然后将 Word 文件转换为 PDF。在大多数情况下,方框被删除,但文本对齐被扭曲,有时甚至会出现一些语法错误。
我不能总是依赖在 Chrome 中打开文件,而是希望使用 Foxit 或 Adobe 阅读器来打开文件。如能得到任何帮助,我将不胜感激。
答案1
事实上,你可以很容易地删除边框,因为它们不属于 PDF 页面本身。边框实际上是链接注释的一部分,可用于浏览文档。因此,要删除它们的外观,只需只是需要调整适当的 PDF 对象。
该文档的许可证不允许分发衍生版本。因此,这里有一个脚本,它使用HexaPDF删除链接注释中的边框:
require 'hexapdf'
doc = HexaPDF::Document.open(ARGV[0])
doc.pages.each {|page| page[:Annots]&.each {|a| a = doc.deref(a); a[:C] = nil; a[:Border] = [0, 0, 0]}}
doc.write(ARGV[0] + '.pdf', validate: false)
您需要安装 HexaPDF(gem install hexapdf
,需要安装可运行的 Ruby 2.4),将此脚本保存为 Ruby 文件,remove_borders.rb
然后像这样运行它:
ruby remove_borders.rb path/to/linux-essentials-manual.pdf
输出是一个同名但.pdf
附加了附加内容的文件,其中链接注释的边框已被删除。