2011-07-21 29 views
30

私はpdfファイルをC#でjpegに変換する必要があります。そして、ソリューション(ライブラリ)は無料でなければなりません。Cを使ってjpegにPDFを保存する#

私は多くの情報を検索しましたが、何も分かりません。

私はすでにitextsharpとpdfboxを試しました(ただし、pdf2imageはjavaのみです)、成功しません。

私はpdfから個別に画像を抽出しようとしましたが、画像を抽出しようとすると無効なパラメータのエラーがあります...奇妙なエンコーディングがあるようです。

誰でも私に任意のライブラリをjpegにPDFを保存するお勧めできますか?例も非常に評価されます。

ありがとうございます!


SOLUTION:ウェブ

  • のステップは、あなたを追加フォローhttp://www.codeproject.com/KB/cs/GhostScriptUseWithCSharp.aspx

  • ダウンロード・デ・ライブラリー
  • :C#

    1. 移動にを使用して画像をPDFに変換する方法あなたのアプリケーションにコードを書く(これはとても簡単です):

      //Transform pdf to jpg 
          PdfToImage.PDFConvert pp = new PDFConvert(); 
          pp.OutputFormat = "jpeg"; //format 
          pp.JPEGQuality = 100; //100% quality 
          pp.ResolutionX = 300; //dpi 
          pp.ResolutionY = 300; 
          pp.FirstPageToConvert = 1; //pages you want 
          pp.LastPageToConvert = 1; 
          pp.Convert(PATH_PDF+ "report.pdf", PATH_IMAGE + "name.jpg"); 
      
  • +1

    感謝。 –

    +1

    パーフェクト!非常にうまくいった! – Joe

    答えて

    12

    ライブラリpdfiumviewerが参考になります。それはまた、ナゲットとして利用可能です。

    1. 新しいwinformsアプリケーションを作成します。それにナゲット "PdfiumViewer"を加えてください。
    2. これはまた、フォルダx86とx64に "pdfium.dll"という名前の2つのネイティブdllをプロジェクトに追加します。 "Copy to Output Directory"を "Copy Always"に設定します。
    3. 次のコードを試してください(設定に合わせてパスを変更してください)。

      try 
          { 
           using (var document = PdfiumViewer.PdfDocument.Load(@"input.pdf")) 
           { 
            var image = document.Render(0, 300, 300, true); 
            image.Save(@"output.png", ImageFormat.Png); 
           } 
          } 
          catch (Exception ex) 
          { 
           // handle exception here; 
          } 
      

      編集2:

    編集1を下回るSCでのコメントで指摘したように、そのページのインデックスを表示するように変更コードが0基づいています。更新ソリューション あなたがpdfsharpを試してみました?

    This link might be helpful

    +0

    私はPDFSharpが好きです...すべてについてちょうどすべてのPDFを扱うようです+1 – War

    +0

    @ Vijay Gillこんにちは。推奨していただきありがとうございますが、動作していません。それはイメージを抽出するが、フォーマットは読み込みできません...画像がjpeg形式でないようです...私はすべての単一の画像を書き出すことはpdfのページ全体を画像に書き出すよりも難しいと思っています(2つの方法は私が望むところでは大丈夫です)。 – FrioneL

    +0

    イメージをいくつかの16進エディタで開き、署名を見てフォーマットを推測するために最初の数バイト/文字を確認します。 BPMにBMがあるように、JPEGにはJFIF、PNGと最初の数バイトのPNGがあります。それはフォーマットを知っているあなたを助けるかもしれません。 –

    0

    これは私がPDFLibNetでそれをやった方法です:ソリューションを共有するための

    public void ConvertPDFtoHojas(string filename, String dirOut) 
    { 
        PDFLibNet.PDFWrapper _pdfDoc = new PDFLibNet.PDFWrapper(); 
        _pdfDoc.LoadPDF(filename); 
    
        for (int i = 0; i < _pdfDoc.PageCount; i++) 
        { 
    
         Image img = RenderPage(_pdfDoc, i); 
    
         img.Save(Path.Combine(dirOut, string.Format("{0}{1}.jpg", i,DateTime.Now.ToString("mmss")))); 
    
        } 
        _pdfDoc.Dispose(); 
        return; 
    } 
    public Image RenderPage(PDFLibNet.PDFWrapper doc, int page) 
    { 
        doc.CurrentPage = page + 1; 
        doc.CurrentX = 0; 
        doc.CurrentY = 0; 
    
        doc.RenderPage(IntPtr.Zero); 
    
         // create an image to draw the page into 
         var buffer = new Bitmap(doc.PageWidth, doc.PageHeight); 
         doc.ClientBounds = new Rectangle(0, 0, doc.PageWidth, doc.PageHeight); 
         using (var g = Graphics.FromImage(buffer)) 
         { 
          var hdc = g.GetHdc(); 
          try 
          { 
           doc.DrawPageHDC(hdc); 
          } 
          finally 
          { 
           g.ReleaseHdc(); 
          } 
         } 
         return buffer; 
    
    } 
    
    +1

    は、要求されたとおりに無料のライブラリではないようです –

    関連する問題