PDF 파일에서 주석을 일괄 제거


18

폴더의 모든 PDF에서 모든 주석 및 주석 (Foxit Reader로 추가)을 쉽게 제거하려면 어떻게해야합니까?


1
무료 (맥주에서와 같이) 또는 무료 (자유에서와 같이) 솔루션에 대한 제안 만 원한다고 생각하는 것이 올바른 가정입니까?
Kurt Pfeifle

@ pipitas 나는 모든 종류의 솔루션에 관심이 있습니다.
앤드류

답변:


7

나는이 문제를 넘어서서 여기에 주어진 대답 중 어느 것도 나를 위해 일하지 않았다. 어떤 일이 있었다 rewritepdf우분투 패키지 도구 libcam-pdf-perl:

rewritepdf -C in.pdf out.pdf

디렉토리의 모든 pdf 파일에서 주석을 제거하기 위해 이것을 작은 스크립팅으로 감싸는 것은 이제 쉽습니다.

for i in *.pdf; do rewritepdf -C '$i' '$i'.new; done

그것은 좋은 일했다 :) 도움 :. 우분투를 (즉, 데비안) 패키지는 여기 packages.debian.org/sid/perl/libcam-pdf-perl 의존성이 자동으로 "우분투 소프트웨어 센터"를 사용하여 설치됩니다. (오, 수도 "-C"로주의를
기울

5

유닉스 시스템을 제공하는 경우 :

cd <directory containing PDFs>
find . -type f -name '*.pdf' -exec perl -pi -e 's:/Annots \[[^]]+\]::g' {} +

이것은 /AnnotsPDF에서 모든 명령 (주석을 그리는 명령) 을 제거하는 핵입니다 . 주석 객체는 그대로두고 (텍스트 편집기로 PDF를 열고 검색 할 수 있음) 그려지지 않습니다.


RE를 설명 할 수 있습니까? [^]] +와 일치하는 것
jftuga

1
@jftuga, s:(대체) /Annots \[(텍스트 " /Annots [") [^]]+( " ]" 이외의 문자의 하나 이상의 인스턴스 ) \](리터럴 문자 " ]") ::(이전 문자 와 일치하는 항목은 없음으로 g교체 ) (필요한 경우 한 줄에 여러 번 교체)
Divinenephron

1
정규 표현식의 잠재적으로 혼란스러운 부분 중 하나는 리터럴이 ]정상적으로 이스케이프되어야하지만 ^부정 직후에는 빠져서 는 안된다는 것입니다.
Divinenephron

이것은 또한 (너무 내가 생각으로, 그이 / Annots로 PDF로 구현) 내부 문서 링크를 제거
알렉 제이콥슨에게

3

많이 테스트하지는 않았지만 다음과 같이 작동합니다. 내부 문서 링크를 제외한 모든 주석을 삭제합니다 (여기서 답변이없는 것 같습니다). 이 스크립트는 pdfrw python 라이브러리 에 따라 다릅니다 .

#!/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()

용법:

  1. 어딘가에 스크립트로 저장하십시오 ( PATH예 :) /usr/local/bin/annotclean.
  2. annotclean in.pdf cleaned.pdf
  3. (선택 사항) 배치 처리 :
# 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

내가 생각하는 당신이 "refrying"를 PDF로 쉽게 그렇게 할 수 있습니다. 다시 가져 오기 : 먼저 파일을 PostScript로 변환 한 다음 PostScript를 다시 PDF로 변환합니다. 일반적으로 품질이 떨어지고 일부 내용물이 있기 때문에 다시 튀기는 것은 눈살을 찌푸리게합니다. 귀하의 경우 콘텐츠를 잃고 싶습니다 . 다시 튀기는 Ghostscript (및 도우미 배치 파일 gs900w32.exe-Windows에 있는 경우 다운로드)를 사용하여 수행 할 수 있으므로 여기에 두 가지 쉬운 명령이 있습니다.

pdf2ps.bat input.pdf output.ps
ps2pdf.bat output.ps input_refried.pdf

1
작동하지 않습니다. 작성된 주석은 주석이 아니라 pdf의 일부로 남아 있습니다.
앤드류

2
주석이 실제로 PDF 내용에 추가 된 경우 수동으로 만 제거 할 수 있습니다. 실제 PDF 주석은 별개입니다.
CarlF

변환기를 사용하지 않고 어떤 방법이 있습니까?
사용자

내부 문서 링크도 제거됩니다.
Alec Jacobson

@AlecJacobson : 물론입니다. PostScript로 변환하면 PDF의 일부인 "풍부한"내용이 많이 손실됩니다. PostScript에는 내부 문서 링크가 아닌 모든 링크를 나타내는 수단이 없습니다.
Kurt Pfeifle

2

그렇습니다. 상용 솔루션도 고려할 것이라고 말했습니다 ....

callas pdfToolbox를 사용하는 것이 좋습니다 . Windows 및 Mac OS X에서 사용할 수 있습니다. Linux 용 CLI도 있지만 사전 구성된 "프로파일"만 사용할 수 있습니다. Windows GUI를 사용하여 사용자 정의 프로파일을 작성하여 재사용 할 수 있습니다. 리눅스 CLI.

pdfToolbox에는 많은 개별 PDF 문제를 조작하고 수정하는 방법이 많이 있습니다.

"수정"중 하나는 모든 주석을 제거하는 것입니다.

먼저 테스트하기 위해 돈을 낼 필요가 없습니다. callas는 14 일 평가판 라이센스를 무료로 제공합니다.


실제로 모든 주석을 제거하는 방법이 있지만 배치 작업을 수행하는 방법을 잘 모르겠습니다.
Andrew

이전 버전에 대한 Dunno --- 최신 pdfToolbox5 릴리스를 사용하면 PDF가 포함 된 전체 폴더에 대해 배치 모드로 실행할 수 있습니다 .....
Kurt Pfeifle
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.