ชุดลบความคิดเห็นจากไฟล์ PDF


18

ฉันจะลบความคิดเห็นและคำอธิบายประกอบทั้งหมด (เพิ่มด้วย Foxit Reader) ได้อย่างง่ายดายจากไฟล์ PDF ทั้งหมดในโฟลเดอร์ได้อย่างไร


1
เป็นสมมติฐานที่ถูกต้องหรือไม่ที่จะคิดว่าคุณต้องการคำแนะนำเพียงอย่างเดียวสำหรับฟรี (ในเบียร์) หรือเพื่อแก้ปัญหาฟรี (ในเสรีภาพ)
Kurt Pfeifle

@pipitas ฉันสนใจวิธีการแก้ปัญหาใด ๆ
แอนดรู

คำตอบ:


7

ฉันเพิ่งพบปัญหานี้และไม่มีคำตอบให้ที่นี่สำหรับฉัน สิ่งที่ได้ผลคือrewritepdfเครื่องมือจากแพ็คเกจ Ubuntu libcam-pdf-perl:

rewritepdf -C in.pdf out.pdf

การรวมสิ่งนี้ไว้ในสคริปต์เล็กน้อยเพื่อลบคำอธิบายประกอบออกจากไฟล์ pdf ทั้งหมดในไดเรกทอรีนั้นเป็นเรื่องง่าย:

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

มันใช้งานได้ดี :) ความช่วยเหลือบางอย่าง: แพ็คเกจ Ubuntu (เช่น debian) อยู่ที่นี่packages.debian.org/sid/perl/libcam-pdf-perl Dependences ติดตั้งโดยอัตโนมัติโดยใช้ "ศูนย์ซอฟต์แวร์ Ubuntu" (โอ้และระวังเมืองหลวง "-C" ก่อนอื่นฉันวิ่ง "-c" และไม่มีอะไรเกิดขึ้นแม้จะไม่มีข้อผิดพลาดเกิดขึ้นก็ตาม)
รักโดยพระเยซูคริสต์

5

ให้คุณใช้ระบบ Unix:

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

นี่คือแฮ็คที่จะลบ/Annotsคำสั่งทั้งหมดออกจาก PDF (คำสั่งที่ดึงหมายเหตุประกอบ) มันปล่อยให้วัตถุคำอธิบายประกอบอยู่ตรงนั้น (คุณสามารถเปิด PDF ด้วยโปรแกรมแก้ไขข้อความและค้นหาได้) พวกมันไม่ได้ถูกวาด


คุณอธิบายเรื่อง RE ได้ไหม? [^]] + จับคู่อะไร
jftuga

1
@jftuga, s:(ตัวแทนที่) /Annots \[(ข้อความ " /Annots [") [^]]+(อย่างน้อยหนึ่งอินสแตนซ์ของตัวละครใด ๆ นอกเหนือจาก " ]") \](ตัวอักษรตัวอักษร " ]") ::(แทนที่สิ่งใดg
Divinenephron

1
ส่วนหนึ่งที่อาจทำให้สับสนของ regex ก็คือ]โดยปกติแล้วตัวอักษรจะต้องหลบหนี แต่ไม่ถูกต้องหลังจากถูก^ปฏิเสธ
Divinenephron

นอกจากนี้ยังลบลิงก์เอกสารภายใน (ตามที่ฉันเชื่อว่าลิงก์เหล่านั้นจะถูกนำไปใช้ในรูปแบบ pdf เป็น / Annots ด้วย)
Alec Jacobson

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

ฉันคิดว่าคุณสามารถทำได้อย่างง่ายดายที่สุดโดย "อ้างอิง" PDF วิธีการอ้างอิง: ก่อนอื่นให้แปลงไฟล์เป็น PostScript จากนั้นแปลง PostScript กลับเป็น PDF โดยทั่วไปการ refried จะขมวดคิ้วเพราะคุณมักจะสูญเสียคุณภาพและเนื้อหาบางส่วน ในกรณีของคุณคุณต้องการหลวมเนื้อหา การทอดอีกครั้งสามารถทำได้ด้วยGhostscript (และชุดไฟล์ผู้ช่วยจัดส่งพร้อม - ดาวน์โหลดgs900w32.exeถ้าคุณใช้ Windows) ดังนั้นคุณจะไปได้ด้วยคำสั่งง่ายๆ 2 คำสั่ง:

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 ไม่ได้หมายถึงการเป็นตัวแทนของการเชื่อมโยงใด ๆ ที่ไม่ได้เชื่อมโยงเอกสารภายใน ....
เคิร์ต Pfeifle

2

ตกลงคุณบอกว่าคุณจะต้องพิจารณาโซลูชันเชิงพาณิชย์ด้วยเช่นกัน ....

ผมอยากแนะนำให้คุณพยายามCallas pdfToolbox สามารถใช้งานได้กับ Windows และ Mac OS X (มี CLI สำหรับ Linux ด้วย แต่คุณสามารถใช้ "โปรไฟล์" ที่กำหนดค่าไว้ล่วงหน้าเท่านั้นด้วย Windows GUI คุณสามารถสร้างโปรไฟล์ที่กำหนดเองและนำกลับมาใช้ใหม่ได้ด้วย แม้ว่า Linux CLI

pdfToolbox มีวิธีมากมายในการจัดการและแก้ไขปัญหา PDF ของแต่ละบุคคลมากมาย

หนึ่งใน "Fixups" คือการลบคำอธิบายประกอบทั้งหมด

คุณไม่จำเป็นต้องใช้เงินในการทดสอบก่อน callas ให้สิทธิ์ใช้งานทดลองใช้ 14 วันฟรี


แน่นอนว่ามีวิธีในการลบคำอธิบายประกอบทั้งหมด แต่ฉันไม่แน่ใจว่าจะทำงานแบ็ตช์ได้อย่างไร
Andrew

Dunno เกี่ยวกับรุ่นก่อนหน้านี้ --- แต่ปล่อย pdfToolbox5 ล่าสุดช่วยให้การทำงานในโหมดแบทช์กับโฟลเดอร์ที่มีไฟล์ PDF ที่สมบูรณ์ .....
เคิร์ต Pfeifle
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.