Як я можу легко видалити всі коментарі та примітки (додані разом із програмою Foxit Reader) з усіх PDF-файлів у папці?
Як я можу легко видалити всі коментарі та примітки (додані разом із програмою Foxit Reader) з усіх PDF-файлів у папці?
Відповіді:
Я просто перейнявся цією проблемою, і жоден із наведених тут відповідей не працював на мене. Що ж робота була rewritepdf
інструментом з пакета Ubuntu libcam-pdf-perl
:
rewritepdf -C in.pdf out.pdf
Згорнути це в невеликий сценарій для видалення приміток із усіх файлів PDF у каталозі зараз просто:
for i in *.pdf; do rewritepdf -C '$i' '$i'.new; done
За умови, що ви перебуваєте в системі Unix:
cd <directory containing PDFs>
find . -type f -name '*.pdf' -exec perl -pi -e 's:/Annots \[[^]]+\]::g' {} +
Це злом, який видаляє всі /Annots
команди з PDF (команди, які малюють анотації). Він залишає там об’єкти анотацій (ви можете відкрити PDF за допомогою текстового редактора і шукати їх), вони просто не намальовані.
s:
(заміна) /Annots \[
(текст " /Annots [
") [^]]+
(один або кілька екземплярів будь-якого символу, крім " ]
") \]
(буквальний символ " ]
") ::
(замініть будь-що, що відповідає першому, нічим) g
(замініть кілька разів на рядок, якщо потрібно).
]
зазвичай потрібно уникати, але не відразу після ^
заперечення.
Не випробовував її багато, але наступне, здається, працює. Він видаляє всі примітки, крім внутрішніх посилань на документи (на що, схоже, жоден з відповідей тут). Цей скрипт залежить від бібліотеки python pdfrw .
#!/usr/bin/python
import sys, pdfrw
try:
in_path = sys.argv[1]
out = sys.argv[2]
except:
print("Usage:\tannotclean IN.pdf OUT.pdf")
exit(0)
reader = pdfrw.PdfReader(in_path)
for p in reader.pages:
if p.Annots:
# See PDF reference, Sec. 12.5.6 for all annotation types
p.Annots = [a for a in p.Annots if a.Subtype == "/Link"]
pdfrw.PdfWriter(out, trailer=reader).write()
Використання:
PATH
), напр /usr/local/bin/annotclean
.annotclean in.pdf cleaned.pdf
# fish shell syntax
for p in **pdf # pdfs from current directory and subdirectories
annotclean $p $p.new
mv $p.new $p # overwrite the old
end
Я думаю, що ви можете це зробити найпростіше, "перезавантаживши" PDF. Переосмислення означає: спочатку перетворіть файл у PostScript, а потім перетворіть PostScript назад у PDF. Зазвичай пересмаження нахмуриться, тому що зазвичай ви втрачаєте якість та певний вміст. У вашому випадку ви хочете втратити вміст. Повторне обсмажування можна здійснити за допомогою Ghostscript (і допоміжні пакетні файли, що доставляють його - завантажте, gs900w32.exe
якщо ви перебуваєте в Windows), тож ось вам, з двома простими командами:
pdf2ps.bat input.pdf output.ps
ps2pdf.bat output.ps input_refried.pdf
Гаразд, ви сказали, що також можете розглянути комерційне рішення ....
Я рекомендую вам спробувати callas pdfToolbox . Він доступний для Windows та Mac OS X. (Вони також мають CLI для Linux, але ви можете використовувати лише попередньо налаштовані "профілі". За допомогою GUI Windows ви можете створювати власні профілі та повторно використовувати їх за допомогою Linux CLI, однак.
У pdfToolbox є багато-багато і багато способів маніпулювання та виправлення багатьох, багатьох індивідуальних проблем з PDF.
Одне з «виправлень» - це видалення всіх приміток.
Вам не потрібно викладати жодних грошей, щоб перевірити їх спочатку; callas безкоштовно видає пробні ліцензії на 14 днів.