PDF dosyalarındaki yorumları toplu olarak kaldırma


18

Bir klasördeki tüm PDF'lerden (Foxit Reader ile eklenen) tüm yorumları ve ek açıklamaları nasıl kolayca kaldırabilirim?


1
sadece ücretsiz (birada olduğu gibi) veya Ücretsiz (özgürlükte olduğu gibi) çözümler için öneri istediğinizi düşünmek geçerli bir varsayım mı?
Kurt Pfeifle

@pipitas Her türlü çözümle ilgileniyorum.
Andrew

Yanıtlar:


7

Ben sadece bu sorunun üstesinden geldim ve burada verilen cevapların hiçbiri benim için işe yaramadı. Ne işe yaradırewritepdf Ubuntu paketinin aracıydı libcam-pdf-perl:

rewritepdf -C in.pdf out.pdf

Bir dizindeki tüm pdf dosyalarından ek açıklamaları kaldırmak için bunu küçük bir komut dosyasına sarmak artık kolay:

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

İyi çalıştı. :) Bazı yardımlar: Ubuntu (yani, debian) paketi burada paket.debian.org/sid/perl/libcam-pdf-perl Bağımlılıklar "Ubuntu yazılım merkezi" kullanılarak otomatik olarak kurulur. (Oh, ve başkent "-C" ile dikkat edin. İlk önce "-c" yi çalıştırdım ve hiçbir şey olmadı, hata bile çıkmadı.)
sevildi

5

Unix sisteminde olmanız şartıyla:

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

Bu, /AnnotsPDF'deki tüm komutları (ek açıklamaları çizen komutlar) kaldıran bir saldırıdır. Ek açıklama nesnelerini orada bırakır (PDF'yi bir metin düzenleyicisiyle açabilir ve arayabilirsiniz), bunlar çizilmez.


RE'yi açıklayabilir misiniz? [^]] + Ne eşleşir
jftuga

1
@jftuga, s:(yerine) /Annots \[(metin " /Annots [') [^]]+(yanında herhangi bir karakterin bir veya daha fazla örneği' ]') \](literal karakter' ]") ::(bir şey hiçbir şey eski eşleşen değiştirin) g(gerekirse satır başına birden çok kez değiştirin).
Divinenephron

1
]Normal ifadenin potansiyel olarak kafa karıştırıcı bir parçası, normalde bir değişmezin kaçması gerektiğidir, ancak bir ^olumsuzlamadan hemen sonra değil .
Divinenephron

Bu ayrıca dahili belge bağlantılarını da kaldırır (inandığım gibi pdf'de / Annots olarak da uygulanmaktadır)
Alec Jacobson

3

Çok fazla test etmedim, ancak aşağıdakiler işe yarıyor gibi görünüyor. Dahili belge bağlantıları (buradaki yanıtların hiçbirinin yapamadığı) hariç tüm ek açıklamaları siler . Bu komut dosyası pdfrw python kütüphanesine bağlıdır .

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

Kullanımı:

  1. Bir yerde bir komut dosyası olarak kaydedin (varsayalım PATH), örneğin /usr/local/bin/annotclean.
  2. annotclean in.pdf cleaned.pdf
  3. (isteğe bağlı) toplu işleme:
# 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

Ben düşünüyorum siz "refrying" PDF tarafından en kolay yapabilir. Yeniden doldurmak, önce dosyayı PostScript'e, ardından PostScript'i tekrar PDF'ye dönüştürmek anlamına gelir. Genellikle kızarma kaşlarını çatar, çünkü genellikle kaliteyi ve içeriği kaybedersiniz. Sizin durumunuzda içeriği kaybetmek istiyorsunuz . Yeniden kızartma Ghostscript ile yapılabilir (ve onunla birlikte gelen yardımcı toplu iş dosyaları - gs900w32.exeWindows'daysanız indirin), böylece işte 2 kolay komutla:

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

1
Bu işe yaramıyor. Yazılı yorumlar kalır (yorumlar olarak değil, pdf'in bir parçası olarak).
Andrew

2
Yorumlar aslında PDF'nin içeriğine eklenmişse, yalnızca manuel olarak kaldırılabilir. Gerçek PDF ek açıklamaları ayrıdır.
CarlF

Herhangi bir dönüştürücü kullanmanın bir yolu var mı?
kullanıcı

Bu, dahili belge bağlantılarını da kaldırır.
Alec Jacobson

@AlecJacobson: Elbette. PostScript'e dönüştürürseniz, PDF'nin bir parçası olan birçok "zengin" içeriği kaybedersiniz. PostScript, HERHANGİ bağlantıları temsil edecek araçlara sahip değil, dahili belge bağlantılarını bile ...
Kurt Pfeifle

2

Tamam, sen de ticari bir çözüm düşüneceksin demiştin ...

Callas pdfToolbox'ı denemenizi tavsiye ederim . Windows ve Mac OS X için kullanılabilir. (Linux için de CLI'leri vardır, ancak yalnızca önceden yapılandırılmış "profilleri" kullanabilirsiniz. Windows GUI ile özel profillerinizi oluşturabilir ve bunları yeniden kullanabilirsiniz yine de Linux CLI.

PdfToolbox çok sayıda bireysel PDF sorununu düzeltmek ve düzeltmek için çok ve çok fazla yol sunar.

"Düzeltmeler" den biri tüm ek açıklamaları kaldırmaktır.

Önce test etmek için para harcamanıza gerek yok; callas ücretsiz 14 günlük deneme lisansı verir.


Gerçekten tüm ek açıklamaları kaldırmak için bir yolu var, ama bir toplu iş yapmak nasıl emin değilim.
Andrew

Önceki sürümler hakkında Dunno --- ancak en son pdfToolbox5 sürümü, PDF içeren tam klasörlere karşı toplu modda çalıştırmaya izin verir .....
Kurt Pfeifle 27:30
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.