我正在准备考试,并找到了一些非常好的资源,但它们有一个问题。所有答案都用红墨水写在每个问题的正下方。我想把它们打印出来,然后手写,但如果答案就在每个问题的正下方,那就行不通了。
理论上我可以通过编辑 pdf 手动删除它们,但对于约 200 页的问题来说这是不可行的。
我正在寻找某种脚本或自动化程序,可以将所有红色文本变成白色以使其不可见或直接将其删除,无论哪种方式都有效。
事情变得更加复杂,有些页面包含多项选择题。在这里,正确答案用红色文字书写。在这里我需要代码或自动化将红色文字变成黑色文字。
当然,我不介意分离出 MCQ 来对它们运行不同的代码并将 pdf 重新组合在一起,我只是想快速删除所有答案。
我尝试使用 Photoshop 选择红色并将其变为白色,虽然效果很好,但也存在一些主要问题,使其变得毫无用处。
- 此更改并不适用于所有页面
- 所有页面都变成单独的 PNG,这让恢复 PDF 变得非常麻烦
上述两个问题使得我尝试在大约 200 页的时间内完成这项工作毫无用处
我将非常感激所有能帮助我的人们!
答案1
一个建议是将阅读的背景设置为与不需要的颜色相匹配。
SumatraPDF-prerel.exe -set-color-range #000000 #f00b0a pdfoutput.pdf
PDF 中单一颜色的问题在于,它们有数百种定义方法。
以这个非文本示例为例,其中红色是ÿ
如果删除所有红色,则没有其他颜色https://docs.google.com/viewer?url=https://github.com/GitHubRulesOK/MyNotes/raw/master/colours.pdf&嵌入=真
%PDF-1.3
1 0 obj<</Type/Catalog/Pages 2 0 R>>endobj
2 0 obj<</Type/Pages/Count 1/Kids[3 0 R]>>endobj
3 0 obj<</Type/Page/MediaBox[0 0 72 72]/Rotate 0/Resources 4 0 R/Contents 5 0 R/Parent 2 0 R>>endobj
4 0 obj<</XObject<</Img3 6 0 R>>>>endobj
5 0 obj<</Length 46>>
stream
1 0 0 -1 -0 72 cm 72 0 0 -72 0 72 cm /Img3 Do
endstream
endobj
6 0 obj<</Length 27/Type/XObject/Subtype/Image/Width 3/Height 3/BitsPerComponent 8/ColorSpace/DeviceRGB>>
stream
ÿ ÿ ÿ ÿÿÿ ÿÿÿ ÿÿÿ
endstream
endobj
xref
0 7
0000000000 00001 f
0000000010 00000 n
0000000054 00000 n
0000000104 00000 n
0000000206 00000 n
0000000248 00000 n
0000000341 00000 n
trailer
<</Size 7/Root 1 0 R>>
startxref
502
%%EOF
对于文本,它是不同的笔触,因为文本具有内部和外部颜色(它是单色轮廓和填充),所以在一些简单的情况下,您可能会发现/C [1 0 0] 并轻松更改它,但是/C [0.99 0.01 0.01] 或 CMYK [0 0.96 0.91 0] 或 CMYB(0%, 100%, 100%, 0%) 呢?
因此,转换为 16 色图像并滤除红色成分也许是最简单的像素方法?
最常见的方法是将颜色预先设置在 PDF 中,作为页面流的一部分,如下所示
如果我们对文件使用 SED,就像解压时看到的那样,我们可以像这样将其设置为白色
请注意,白色文字在灰白色背景下仍然可读,但如果背景为红色,它就会完全消失。(除非你拼命寻找它)。