Bozuk bir PDF dosyasını nasıl onarabilirim / onarabilirim?


80

Bozuk bir PDF'yi onarmak için herhangi bir öneri veya prosedürü olan var mı? Dosyayı açtığımda, "Bu belgeyi açarken bir hata oluştu. Dosya zarar gördü ve onarılamıyor." Orada sayısız araç var gibi görünüyor ama hiçbiri saygın olarak tanımlayamadım. Bunun için herhangi bir açık kaynak kodlu linux tabanlı çözüm var mı?


Açık kaynak kodlu PDF araçları oldukça berbat olma eğilimindedir, korkarım. Ne kullanıyorsun?
Satanicpuppy


Herhangi bir aracın görünüşünü beğenmediler, orada sayısız "Kayıt Defteri Temizleyicileri" gibi görünüyorlardı. Adobe Pro'yu denedim ve Ghostscript veya PDFForge'da herhangi bir onarım anahtarı olup olmadığına bakmaya yeni başladım.
Tim Alexander,

Ghostscript tamam, ama kesinlikle Acrobat'tan daha iyi değil. Tamamen çıplak kemikler.
Satanicpuppy

6
@Satanicpuppy Aynı fikirde değilim: Hasar görmüş veya düşük kaliteli pdf'leri sık sık yeniden oluşturmak için ghostscript kullanıyorum ve çok iyi bir performans sergiliyor.
Eddie B,

Yanıtlar:


100

Ghostscript bozuk PDF'nizi otomatik olarak onaracak ... ilk etapta açabilirse (yani onarılamayacak kadar zarar görmemişse). Fakat daha sonra sonucu tekrar kontrol etmeniz gerekecek ...

Linux'ta şu komutu deneyin:

 gs \
  -o repaired.pdf \
  -sDEVICE=pdfwrite \
  -dPDFSETTINGS=/prepress \
   corrupted.pdf

Windows'ta şunu deneyin:

 gswin32c.exe ^
  -o repaired.pdf ^
  -sDEVICE=pdfwrite ^
  -dPDFSETTINGS=/prepress ^
   corrupted.pdf

2
Ghostscript PDF oluşturma konusunda harika bir iş çıkarıyor ... Yazı tipi kalitesini iyileştirmek için düzenli olarak PDF dosyalarını yeniden oluşturmak için gs kullanıyorum.
Eddie B,

1
/ Baskı öncesi / ekrana kıyasla kaliteyi gerçekten iyi yapar. Teşekkürler.
Dolanor

"XREF tablosu okunurken bir hata oluştu" alıyorum. Bu ne anlama geliyor?
Geremia

Bu, içindekiler tablosunun (PDF'lerin XREF tablosu olarak içermesi gereken ) bir PDF nesnesi için yanlış bir bayt kaymasına işaret eden bir hatası olduğu anlamına gelir . Ghostscript büyük olasılıkla bu hatayı onardı ve çıktıya doğru bir XREF tablosu ekledi. Bunu Ghostscript üzerinden çıktıyı bir kez daha çalıştırarak kontrol edebilir ve bu mesajın hala görünüp görünmediğine bakın.
Kurt Pfeifle

37

Bozuk bir PDF dosyasına sahip oldum print.pdf, Ghostscript açılamıyordu, ancak normal Linux Linux görüntüleyicileri (Okular, Evince) gayet iyi açıldı. (Benim durumumda, dosya başında bir hex başlığında açıldığında, PDF üstbilgisi yerine çöp içeriyordu.)

Bu PDF görüntüleyicileri Poppler'i arka uç PDF oluşturucu olarak kullanır. Böylece Poppler'ın komut satırı araçlarını kullanarak PDF'yi onarabilirsiniz. Ubuntu'da bunlar poppler-utilspakette. Kullandım:

pdftocairo -pdf print.pdf print_repaired.pdf

doğru başlıklara sahip bir PDF dosyası oluşturdu, Ghostscript gibi araçlar şimdi kabul etti.


3
+1, Quartz'umu PDF'leri şikayet etmeden okudu ve hemen çıktı oluşturmaya başladı. Ghostscript, Adobe Acrobat Pro ve diğerleri ilk 120GB pdf'mi yeniden oluşturmakta ısrar etti.
Orwellophile

Bu, karşılaştığım en az bir tuhaf PDF için işe yaramadı, ancak iyi bir başlangıç ​​gibi görünüyor.
Brian Peterson

1
Ghostscript'in sayfalardaki bazı rasgele öğeleri kaldırmak istediği bir PDF'de mükemmel çalışır.
Andrea Lazzarotto

Ghostscript belgeyi okuyamadı ama bu bir cazibe gibi çalıştı. BTW Bunu Windows'ta yeni linux alt sistemini kullanarak yaptım, çok havalı!
HyLian

24

mutool( proje sayfası , manpage ), bozuk PDF'leri yazdırmadan onaracak .

  • Kurulum örneğin Ubuntu'da: sudo apt-get install mupdf-tools
  • Bu şekilde çalıştırın: mutool clean input.pdf output.pdf
mutool clean [options] input.pdf [output.pdf] [pages]

  The clean command pretty prints and rewrites the syntax of a PDF file.
   It can be used to repair broken files, expand compressed streams,
   filter out a range of pages, etc.
  If no output file is specified, it will write the cleaned PDF to
   "out.pdf" in the current directory.

Alternatif olarak, PDF'leri oluşturmadan bileşenlerine ayrıştırıp / kodlarını çözebilecek birkaç araç ve çerçeve vardır. Bunlar metin, komut dosyaları ve resimleri çıkarmak için yararlı olabilir. Bu tür araçların bir listesi için bu cevaba bakınız: https://reverseengineering.stackexchange.com/q/1526/8210 . Örneğin, mevcut en iyi cevabı Origami'yi deneyebilirsiniz, GTK tabanlı bir görüntüleyiciye sahiptir.


3
Bu çözüm, yukarıda sunulan çözümlerden "daha iyi" çalışır; PDF dosyasını "yazdırmaz" ve bağlantıları, tıklanabilir öğeleri vb. Etkin tutar. veya kahire.
Speredenn

1
Ne yazık ki, mutool cleanolası tüm hataları düzeltmez. Yazı tipi ve içerik akışlarında çeşitli hataları olan bir dosyam var ve mutool bu hataları tutacaktır.
Dominik Honnef

1
@DominikHonnef Her zaman PDF'yi parçalayan ve tüm parçaları oluşturmadan görüntülemenizi sağlayan araçları / çerçeveleri deneyebilirsiniz. Bu, doğrudan metin, komut dosyaları, resimler vb. Bu araçların listesi için cevaba bakınız: reverseengineering.stackexchange.com/q/1526/8210
jmiserez

Benim için çalışan tek şey!
jamadagni

Bu daha iyi çalıştı çünkü bu belgeyi incelemesini sağlayan pdf dosyasını oluşturmadı.
riccs_0x

10

Bozuk bir pdf dosyasına sahiptim, çünkü indirmek için kullanılan php dosyası bazı hataları (HTML olarak) ve sonunda NUL karakterlerini yankılandı.

Çözüm, pdf'i Notepad ++ ile açmak ve satırın sonunda tüm metni kaldırmaktı.

%%EOF

aynı, Adobe Reader açılmadı, ancak yerel Mac, Chrome ve Firefox PDF eklentisi PDF dosyasını iyi gösterdi. Nedeni, yükleme sırasında eklenen son satırda "NUL" olarak da ekstraydı.
Tilo

İkili bir PDF'im vardı %%EOF. %%EOFBir hex editörü kullanarak ilkinden sonra her şeyi sildim . Şimdi her şey iyi çalışıyor.
Adrian
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.