2012-03-23 11 views

答えて

1

iTextSharpがそれを処理します。最初の画像上の出口

例ここhttp://www.vbforums.com/showthread.php?t=530736

編集:stanav

Public Shared Function ExtractImages(ByVal sourcePdf As String) As List(Of Image) 
    Dim imgList As New List(Of Image) 

    Dim raf As iTextSharp.text.pdf.RandomAccessFileOrArray = Nothing 
    Dim reader As iTextSharp.text.pdf.PdfReader = Nothing 
    Dim pdfObj As iTextSharp.text.pdf.PdfObject = Nothing 
    Dim pdfStrem As iTextSharp.text.pdf.PdfStream = Nothing 

    Try 
     raf = New iTextSharp.text.pdf.RandomAccessFileOrArray(sourcePdf) 
     reader = New iTextSharp.text.pdf.PdfReader(raf, Nothing) 

     For i As Integer = 0 To reader.XrefSize - 1 
      pdfObj = reader.GetPdfObject(i) 
      If Not IsNothing(pdfObj) AndAlso pdfObj.IsStream() Then 
       pdfStrem = DirectCast(pdfObj, iTextSharp.text.pdf.PdfStream) 
       Dim subtype As iTextSharp.text.pdf.PdfObject = pdfStrem.Get(iTextSharp.text.pdf.PdfName.SUBTYPE) 
       If Not IsNothing(subtype) AndAlso subtype.ToString = iTextSharp.text.pdf.PdfName.IMAGE.ToString Then 
        Dim bytes() As Byte = iTextSharp.text.pdf.PdfReader.GetStreamBytesRaw(CType(pdfStrem, iTextSharp.text.pdf.PRStream)) 
        If Not IsNothing(bytes) Then 
         Try 
          Using memStream As New System.IO.MemoryStream(bytes) 
           memStream.Position = 0 
           Dim img As Image = Image.FromStream(memStream) 
           imgList.Add(img) 
          End Using 
         Catch ex As Exception 
          'Most likely the image is in an unsupported format 
          'Do nothing 
          'You can add your own code to handle this exception if you want to 
         End Try 
        End If 
       End If 
      End If 
     Next 
     reader.Close() 
    Catch ex As Exception 
     MessageBox.Show(ex.Message) 
    End Try 
    Return imgList 
End Function 
+1

他のWebページ(特にスレッド)にリダイレクトするときは、いつか削除される可能性があります。無意味なあなたは答えにいくつかのコードを入れ、参照としてリンクを置くことができます:) –

+0

ヒントのtyvm huMpty! –

+0

私は何を意味しているのですか?私は整数として= 0にreader.XrefSize - 1 " – dhyabi

0

によりスレッドからコードをコピーし

おそらく、PDFのページをラスタライズしようとしています。イメージなどを探す場合は、PDF上で実行できる他の操作を表示します。既に投稿された道のlistがあります。私はこれを非常に簡単に行うためにABCpdfを使用しました。

0

ウェブ、またはネイティブ環境にいますか?それは大きな違いになります。あなたがしたいことは、PDFを画像にラスタライズすることです。これは、GhostDocまたは同様のツールを使用してネイティブ環境で行うのは簡単です。彼らはすべて仮想プリンタドライバを使用してPDFをラスタライズします。このアプローチは、おそらくあなた自身のラスタライズエンジンを書くことが大規模な作業であるため、コマーシャルを使用する必要のあるウェブ環境では機能しません。

+0

私は動的にC#のプログラムやWeb asp.netの実行時に画像を取得 – dhyabi

関連する問題