在 Evince 中,我知道我可以右键单击注释 -> 注释属性... 并在属性窗口中清除作者。但是,对每个注释都这样做有点过头了。
有没有一种简单的方法可以匿名化 Evince 上的所有注释?
答案1
您无法在 evince 中执行此操作。您可以使用一个名为 pymupdf 的小型 Python 库来执行此操作。这是一个小脚本。
try:
import fitz
except ImportError as e:
import subprocess
print('Trying to install pip install PyMuPDF')
subprocess.call("pip install PyMuPDF".split())
print('Try pip install PyMuPDF')
raise
import sys
if len(sys.argv) < 2:
raise ValueError("Please provide a pdf to anonymize")
if len(sys.argv) < 3:
outfilename = filename.replace('.pdf', '.anon.pdf')
else:
outfilename = sys.argv[2]
filename = sys.argv[1]
doc = fitz.open(filename)
metadata = doc.metadata
for k, v in metadata.items():
if k not in ['format']: # retain some metadata
metadata[k] = ''
doc.set_metadata(metadata)
for page in doc:
for annot in page.annots():
info = annot.info
info['title'] = ''
annot.set_info(info)
annot.update()
doc.save(outfilename)
源码要点链接: https://gist.github.com/wecacuee/f1e92d421312b7c7c1907667f4f3a318