2016-10-24 19 views
0

PDFSharpを使用して既存のPDFから画像(すべて)を削除するにはどうすればよいですか?PDFSharpを使用してpdfから画像を削除するには?

私はこのコードを試してみました:?

public static PdfDocument RemoveImages(PdfDocument pdf) 
{ 
    foreach (PdfPage page in pdf.Pages) 
    { 
     PdfDictionary resource = page.Elements.GetDictionary("/Resources"); 
     if (resource != null) 
     { 
      PdfDictionary objects = resource.Elements.GetDictionary("/XObject"); 
      if (objects != null) 
      { 
       foreach (string itemKey in objects.Elements.Keys) 
       { 
        PdfItem item = objects.Elements[itemKey]; 
        PdfReference reference = item as PdfReference;       
        if (reference != null) 
        { 
         PdfDictionary xObject = reference.Value as PdfDictionary; 
         if (xObject != null && xObject.Elements.GetString("/Subtype") == "/Image") 
         { 
          pdf.Internals.RemoveObject((PdfObject)reference.Value); // remove image from internal document table 
          objects.Elements.Remove(itemKey); // remove image from page resource 
         } 
        } 
       } 
      } 
     } 
    } 

    return pdf; 
} 

しかし、このコードは時にAcrobat Readerで開いているファイル...

がどのように私はcurruptionなしPDFSharpを使用して、既存のPDFファイルから画像を削除することができたPDF curruptionを提供

ありがとうございます!

答えて

1

イメージを削除しますが、イメージが描画されたページの内容は変更しません。 Adobe Readerは、もはや存在しないイメージを描画しようとします。 そのため、ファイルが壊れています。

可能な解決策(専門知識の単なる推測ではなく、私の地域):

  • は、ページが透明画像を描画してみましょう、透明画像で画像を交換してください。
  • ページの内容を解析し、削除されたイメージを描画するすべてのコードを削除します。
関連する問題