Batch xóa bình luận từ các tập tin PDF


18

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?


1
đó có phải là một giả định hợp lệ để nghĩ rằng bạn chỉ muốn đề xuất cho các giải pháp miễn phí (như trong bia) hoặc miễn phí (như trong tự do) không?
Kurt Pfeifle

@pipitas Tôi quan tâm đến bất kỳ loại giải pháp.
Andrew

Câu trả lời:


7

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à rewritepdfcô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

Nó hoạt động tốt :) Một số giúp đỡ:. Các Ubuntu (ví dụ, debian) gói là ở đây packages.debian.org/sid/perl/libcam-pdf-perl dependences sẽ được tự động cài đặt bằng cách sử dụng "trung tâm phần mềm Ubuntu". (Ồ, và coi chừng vốn "-C". Lần đầu tiên tôi chạy "-c" và không có gì xảy ra, thậm chí không có lỗi nào là đầu ra.)
love.by.Jesus

5

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ả /Annotscá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ẽ.


Bạn có thể giải thích RE? [^]] +
Khớp gì

1
@jftuga, 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).
Divinenephron

1
Một phần có khả năng gây nhầm lẫn của regex là một nghĩa đen ]thông thường phải được thoát ra, nhưng không phải ngay sau khi ^phủ định.
Divinenephron

Điều này cũng loại bỏ các liên kết tài liệu nội bộ (như, tôi tin rằng, những liên kết đó cũng được thực hiện trong pdf dưới dạng / Annots)
Alec Jacobson

3

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:

  1. Lưu dưới dạng tập lệnh ở đâu đó (tôi giả sử là của bạn PATH), vd /usr/local/bin/annotclean.
  2. annotclean in.pdf cleaned.pdf
  3. (tùy chọn) xử lý hàng loạt:
# 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 

2

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.exenế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

1
Điều này không hoạt động. Nhận xét bằng văn bản vẫn còn (không phải là nhận xét, mà là một phần của pdf).
Andrew

2
Nếu các bình luận thực sự được thêm vào nội dung của PDF, chúng chỉ có thể được xóa bằng tay. Chú thích PDF thực tế là riêng biệt.
CarlF

Có cách nào mà không sử dụng bất kỳ bộ chuyển đổi?
người dùng

Điều này cũng loại bỏ các liên kết tài liệu nội bộ.
Alec Jacobson

@AlecJacobson: Tất nhiên rồi. Nếu bạn chuyển đổi sang PostScript, bạn sẽ mất rất nhiều nội dung "phong phú" là một phần của PDF. PostScript không có phương tiện để thể hiện BẤT K links liên kết nào, thậm chí không có liên kết tài liệu nội bộ ....
Kurt Pfeifle

2

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í.


Nó thực sự có một cách để loại bỏ tất cả các chú thích, nhưng tôi không chắc làm thế nào để thực hiện một công việc hàng loạt.
Andrew

Không biết về các phiên bản trước --- nhưng bản phát hành pdfToolbox5 mới nhất cho phép chạy nó ở chế độ hàng loạt đối với các thư mục hoàn chỉnh có chứa tệp PDF .....
Kurt Pfeifle
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.