我有一堆pdf文件,其中包含在字母之间的歌曲歌词(黑色字体)和和弦(蓝色字体)。
是否可以仅提取黑色字体的文本并忽略所有其他颜色的文本?
答案 0 :(得分:0)
您可以花大量精力在Ghostscript中执行此操作,但这将意味着专门针对该任务更改PDF解释器(绝非易事)。
您需要知道要丢弃(或保留)的确切颜色。然后修改/ghostpdl/Resource/Init/pdf_ops.ps中定义的每个显示操作符的文本(TJ,Tj,'和“)。首先检查当前颜色,如果要继续,请检查当前颜色。处理文本,否则弹出字符串并返回而不进行处理。
请注意,您要么需要重建Ghostscript,要么通过在命令行上使用-I开关告诉它使用修改后的文件。
将原始PDF文件作为输入运行,选择pdfwrite设备并在缺少文本的地方创建一个新文件。
这可能会产生意想不到的结果,其中后面的文本依赖于前面的操作正在移动的当前点。在这种情况下,您可以尝试在绘制颜色之前将其颜色更改为白色。这本身就有缺点。如果页面下方的页面不是白色,文本仍会显示,即使白色文本不可见,复制和粘贴仍会拾取白色文本。