Bagaimana saya bisa dengan mudah menghapus semua komentar dan anotasi (ditambahkan dengan Foxit Reader) dari semua PDF dalam folder?
Bagaimana saya bisa dengan mudah menghapus semua komentar dan anotasi (ditambahkan dengan Foxit Reader) dari semua PDF dalam folder?
Jawaban:
Saya baru saja menyelesaikan masalah ini, dan tidak ada jawaban yang diberikan untuk saya. Apa yang melakukan pekerjaan adalah rewritepdf
alat dari paket Ubuntu libcam-pdf-perl
:
rewritepdf -C in.pdf out.pdf
Membungkus ini dalam skrip kecil untuk menghapus anotasi dari semua file pdf dalam direktori sekarang mudah:
for i in *.pdf; do rewritepdf -C '$i' '$i'.new; done
Asalkan Anda menggunakan sistem Unix:
cd <directory containing PDFs>
find . -type f -name '*.pdf' -exec perl -pi -e 's:/Annots \[[^]]+\]::g' {} +
Ini adalah retasan yang menghapus semua /Annots
perintah dari PDF (perintah yang menarik anotasi). Itu meninggalkan objek penjelasan di sana (Anda dapat membuka PDF dengan editor teks dan mencarinya), mereka tidak digambar.
s:
(pengganti) /Annots \[
(teks " /Annots [
") [^]]+
(satu contoh atau lebih karakter apa pun selain " ]
") \]
(karakter literal " ]
") ::
(ganti apa pun yang cocok dengan yang sebelumnya dengan apa-apa) g
(ganti beberapa kali per baris jika perlu).
]
biasanya harus diloloskan, tetapi tidak segera setelah ^
negasi.
Belum mengujinya banyak, tetapi yang berikut ini sepertinya berhasil. Ini menghapus semua anotasi, kecuali tautan dokumen internal (yang tampaknya tidak ada jawaban di sini). Script ini tergantung pada pdfrw python library.
#!/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()
Pemakaian:
PATH
), mis /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
Saya pikir Anda dapat melakukannya dengan paling mudah dengan "refrying" the PDF. Pengecekan ulang berarti: pertama mengonversi file ke PostScript, lalu mengonversi PostScript kembali ke PDF. Biasanya refrying disukai, karena biasanya Anda kehilangan kualitas dan beberapa konten. Dalam kasus Anda, Anda ingin kehilangan konten. Penggorengan ulang dapat dilakukan dengan Ghostscript (dan file kumpulan pembantu dikirim bersama - unduh gs900w32.exe
jika Anda menggunakan Windows), jadi begini, dengan 2 perintah mudah:
pdf2ps.bat input.pdf output.ps
ps2pdf.bat output.ps input_refried.pdf
OKE, Anda bilang Anda juga akan mempertimbangkan solusi komersial ....
Saya sarankan Anda mencoba callas pdfToolbox . Ini tersedia untuk Windows dan Mac OS X. (Mereka memiliki CLI untuk Linux juga, tetapi Anda hanya dapat menggunakan "profil" yang sudah dikonfigurasikan dengannya. Dengan Windows GUI, Anda dapat membuat profil khusus dan menggunakannya kembali dengan CLI Linux.
PdfToolbox memiliki banyak dan banyak cara untuk memanipulasi dan memperbaiki banyak, banyak masalah PDF individual.
Salah satu "Perbaikan" adalah untuk menghapus semua anotasi.
Anda tidak perlu mengeluarkan uang untuk mengujinya terlebih dahulu; callas memberikan lisensi percobaan 14 hari secara gratis.