Làm cách nào tôi có thể dễ dàng xóa tất cả các nhận xét và chú thích (được thêm bằng Foxit Reader) khỏi tất cả các tệp PDF trong một thư mục?
Làm cách nào tôi có thể dễ dàng xóa tất cả các nhận xét và chú thích (được thêm bằng Foxit Reader) khỏi tất cả các tệp PDF trong một thư mục?
Câu trả lời:
Tôi chỉ rơi vào vấn đề này, và không có câu trả lời nào được đưa ra ở đây có hiệu quả với tôi. Những gì đã làm là rewritepdf
công cụ từ gói Ubuntu libcam-pdf-perl
:
rewritepdf -C in.pdf out.pdf
Việc gói nó thành một đoạn script nhỏ để xóa chú thích khỏi tất cả các tệp pdf trong một thư mục giờ đây thật dễ dàng:
for i in *.pdf; do rewritepdf -C '$i' '$i'.new; done
Cung cấp cho bạn trên hệ thống Unix:
cd <directory containing PDFs>
find . -type f -name '*.pdf' -exec perl -pi -e 's:/Annots \[[^]]+\]::g' {} +
Đây là một hack loại bỏ tất cả /Annots
các lệnh từ PDF (các lệnh rút ra các chú thích). Nó để các đối tượng chú thích ở đó (bạn có thể mở tệp PDF bằng trình soạn thảo văn bản và tìm kiếm chúng), chúng không được vẽ.
s:
(thay thế) /Annots \[
(văn bản " /Annots [
") [^]]+
(một hoặc nhiều trường hợp của bất kỳ ký tự nào ngoài " ]
") \]
(ký tự chữ " ]
") ::
(thay thế bất kỳ thứ gì khớp với trước bằng không có gì) g
(thay thế nhiều lần trên mỗi dòng nếu cần).
]
thông thường phải được thoát ra, nhưng không phải ngay sau khi ^
phủ định.
Không thử nghiệm nó rất nhiều, nhưng sau đây dường như làm việc. Nó xóa tất cả các chú thích, ngoại trừ các liên kết tài liệu nội bộ (điều mà không câu trả lời nào ở đây dường như làm được). Kịch bản này phụ thuộc vào thư viện 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()
Sử dụng:
PATH
), vd /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
Tôi nghĩ bạn có thể làm điều đó một cách dễ dàng nhất bằng cách "giới thiệu lại" PDF. Refrying có nghĩa là: đầu tiên chuyển đổi tệp thành PostScript, sau đó chuyển đổi PostScript trở lại thành PDF. Thông thường việc giới thiệu lại được tán thành, bởi vì thông thường bạn mất chất lượng và một số nội dung. Trong trường hợp của bạn, bạn muốn mất nội dung. Việc chiên lại có thể được thực hiện với Ghostscript (và các tệp bó của trình trợ giúp vận chuyển cùng với nó - tải xuống gs900w32.exe
nếu bạn đang ở trên Windows), vì vậy, ở đây bạn đi, với 2 lệnh dễ dàng:
pdf2ps.bat input.pdf output.ps
ps2pdf.bat output.ps input_refried.pdf
OK, bạn nói bạn cũng sẽ xem xét một giải pháp thương mại ....
Tôi khuyên bạn nên thử callas pdfToolbox . Nó có sẵn cho Windows và Mac OS X. (Họ cũng có CLI cho Linux, nhưng bạn chỉ có thể sử dụng "hồ sơ" được cấu hình sẵn với nó. Với GUI Windows, bạn có thể tạo hồ sơ tùy chỉnh của mình và sử dụng lại chúng với Linux CLI, mặc dù.
PdfToolbox có rất nhiều và rất nhiều cách để thao tác và khắc phục nhiều, rất nhiều vấn đề PDF riêng lẻ.
Một trong những "Fixups" là xóa tất cả các chú thích.
Bạn không cần phải bỏ ra bất kỳ khoản tiền nào để kiểm tra trước; Callas cung cấp giấy phép dùng thử 14 ngày miễn phí.