1

PDFからすべてのテキストを削除/削除するための解決策を探しています。私はしばらくの間iTextSharpを使用していて、それを使用してpdfからテキストを抽出するのは簡単です(OCRを使用すると)。ただし、テキストを削除するオプションが見つかりません。

この解決策は率直に言って私にはうまくいきません。

    page.GetAsArray(PdfName.CONTENTS);

PdfName.Text私が試した他のいくつかを使用しているときも、nullを返します。

使用するライブラリは実際には重要ではありません。iTextsharpがこれを実行できるはずだと思います。ただし、別の(無料の)解決策がある場合は、それを持参してください

編集:PDFからすべてのテキストを削除したい理由を明確にするためだけに

PDFのサイズを小さくしたい。これを行うには、PDFの画像の解像度を下げます。ただし、多くの場合、ベクター画像がスペースの大部分を占めます。そこで、次のことを考えました。残りのpdf(画像とベクトルのみを含む)をビットマップ(jpeg)に変換するよりも、すべてのテキストを削除します。その後、テキストをもう一度貼り付けます。もう1つのオプションは、テキストを非表示にすることですが、これは簡単ではないと思います。

4

3 に答える 3

2
  1. ページ辞書の/Contentsは、必ずしも配列で構成されているとは限りません。コンテンツがストリームとして保存されている場合は、がGetAsArray()返されることは明らかです。null
  2. を使用GetAsStream()し、ストリームからすべてのテキストコンテンツを削除した場合でも、XObjectsにテキストコンテンツが残っている可能性があります。/Resourcesそのテキストはコンテンツストリームから参照されませんが、オブジェクトはページディクショナリ内から引き続き参照されるため、iTextはXObjectを「未使用オブジェクト」として削除できません。

何が間違っているのかを知るためにISO-32000-1を読んでください。

于 2012-10-02T09:13:20.740 に答える
1

質問を更新し、意図した対策の動機を明らかにしたので、真実をお話ししましょう。

  • これらの対策によってPDFのサイズが縮小されることは決してありません。

  • 代わりに、ファイルが大幅に増加します。

    1. はい、最初にテキストとフォントを削除すると、サイズがわずかに縮小する可能性があります。

    2. 次に、ページの残りの部分をビットマップに変換すると、サイズが確実に大幅に増加します(または、非常に低い画質に同意するかもしれません)。

    3. 最後に、テキストをもう一度「貼り付ける」と、ファイルサイズが再び大きくなります(最初のステップで保存したのと同じ量になる可能性があります)。

それはまったく良い計画ではありません。

典型的なサンプルPDFファイルの1つ(へのリンク)を提供すると、Ghostscript(およびその他のツール)コマンドラインを思い付くことができます。このコマンドラインは、箱から出してすぐに機能し、PDFサイズをより効率的に縮小します。

于 2012-10-03T11:54:56.563 に答える
0

PDF内のすべてのテキストを削除するには、最も簡単な解決策はghostcriptを使用することです

gs -o output_no_text.pdf -sDEVICE=pdfwrite -dFILTERTEXT  input.pdf
于 2016-10-05T14:35:44.887 に答える