2015-07-09 66 views
2

我使用庫spire.pdf將pdf文件轉換爲圖片,通過文檔中提供的代碼完成。生成一個PDF文件,圖像,因爲他想讓他們打印,和PDF文件本身不能打印(我指的是打印機)C#WPF System.Drawing.Image到System.Windows.Media.Imaging.BitmapSource

public partial class MainWindow : Window 
    { 
     public MainWindow() 
     { 
      InitializeComponent(); 


      Spire.Pdf.PdfDocument pdf = new PdfDocument(); 
      pdf.LoadFromFile("sample.pdf"); 

      BitmapSource source; 
      Bitmap bmp; 

      for (int i = 1; i < pdf.Pages.Count+1; i++) 
      { 
       source = pdf.SaveAsImage(i); 
       bmp = SourceToBitmap(source); 
       bmp.Save(string.Format("result-{0}.png", i), ImageFormat.Png); 
      } 
     } 

     private Bitmap SourceToBitmap(BitmapSource source) 
     { 
      Bitmap bmp; 
      using (MemoryStream ms = new MemoryStream()) 
      { 
       PngBitmapEncoder encoder = new PngBitmapEncoder(); 
       encoder.Frames.Add(BitmapFrame.Create(source)); 
       encoder.Save(ms); 
       bmp = new Bitmap(ms); 
      } 
      return bmp; 
     } 
    } 

我包括:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Windows; 
using System.Windows.Controls; 
using System.Windows.Data; 
using System.Windows.Documents; 
using System.Windows.Input; 
using System.Windows.Media; 
using System.Windows.Navigation; 
using System.Windows.Shapes; 
using Spire.Pdf; 
using System.Drawing; 
using System.Drawing.Imaging; 
using System.Windows.Media.Imaging; 
using System.IO; 

,但我從 錯誤source = pdf.SaveAsImage(i);

Error 1 Cannot implicitly convert type 'System.Drawing.Image' to 'System.Windows.Media.Imaging.BitmapSource' c:\users\łukasz\documents\visual studio 2013\Projects\WpfApplication5\WpfApplication5\MainWindow.xaml.cs 39 26 WpfApplication5 

回答

0

顯然PdfDocument.SaveAsImage返回System.Drawing.Image,所以你不需要做任何WPF中的WinForms位圖轉換。

這應該是足夠了:

var source = pdf.SaveAsImage(i); 
source.Save(string.Format("result-{0}.png", i), ImageFormat.Png); 
+1

謝謝,它的工作原理!還有另一種方式來打印PDF文件?我必須將它們轉換爲圖像? – lukassz

相關問題