破損したPDFを修復するための推奨事項や手順はありますか?ファイルを開くと、「このドキュメントを開くときにエラーが発生しました。ファイルが破損しており、修復できません。」というメッセージが表示されます。世の中には無数のツールが存在するようですが、評判の良いツールはありません。これに対するオープンソースのLinuxベースのソリューションはありますか?
破損したPDFを修復するための推奨事項や手順はありますか?ファイルを開くと、「このドキュメントを開くときにエラーが発生しました。ファイルが破損しており、修復できません。」というメッセージが表示されます。世の中には無数のツールが存在するようですが、評判の良いツールはありません。これに対するオープンソースのLinuxベースのソリューションはありますか?
回答:
Ghostscriptは、破損したPDFを自動的に修復します...最初に開くことができる場合(つまり、修復できないほど破損していない場合)。ただし、その後、結果を再確認する必要があります...
Linuxでは、次のコマンドを試してください。
gs \
-o repaired.pdf \
-sDEVICE=pdfwrite \
-dPDFSETTINGS=/prepress \
corrupted.pdf
Windowsでは、これを試してください:
gswin32c.exe ^
-o repaired.pdf ^
-sDEVICE=pdfwrite ^
-dPDFSETTINGS=/prepress ^
corrupted.pdf
print.pdf
Ghostscriptで開くことができなかった破損したPDFファイルがありましたが、通常のグラフィカルLinux PDFビューアー(Okular、Evince)は正常に開きました。(私の場合、ファイルは、16進エディターで開くと、PDFヘッダーではなく、開始時にゴミがありました。)
これらのPDFビューアーは、バックエンドPDFレンダラーとしてPopplerを使用します。したがって、Popplerのコマンドラインツールを使用してPDFを修復できます。Ubuntuでは、これらはpoppler-utils
パッケージに含まれています。私が使用した:
pdftocairo -pdf print.pdf print_repaired.pdf
これにより、正しいヘッダーを持つPDFファイルが生成され、Ghostscriptなどのツールが受け入れられるようになりました。
mutool
(プロジェクトページ、マンページ)は壊れたPDF を印刷せずに修復します。
sudo apt-get install mupdf-tools
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.
あるいは、レンダリングせずにPDFをコンポーネントに分解/逆コンパイルできるいくつかのツールとフレームワークがあります。これらは、テキスト、スクリプト、および画像の抽出に役立ちます。:そのようなツールの一覧については、この回答を参照してくださいhttps://reverseengineering.stackexchange.com/q/1526/8210を。たとえば、現在のトップアンサーOrigamiを試すことができます。これにはGTKベースのビューアがあります。
mutool clean
考えられるすべてのエラーを修正するわけではありません。フォントとコンテンツストリームにさまざまなエラーがあるファイルがあり、mutoolはそれらのエラーを保持します。
破損したpdfファイルがありました。ダウンロードに使用したphpファイルに、最後にいくつかのエラー(HTML)とNUL文字がエコーされていたためです。
解決策は、pdfをNotepad ++で開き、行の後のすべてのテキストを削除することでした
%%EOF
%%EOF
。最初に%%EOF
16進エディターを使用してすべてを削除しました。今、すべてが正常に動作します。