2015-04-23 293 views
0

我目前正在为我的雇主使用PDF渲染功能的C#应用​​程序。 Pdfium.Net在显示PDF文件方面做得非常出色,但应用程序也必须能够打印它们。有人知道通过这个API打印当前PDF文档的方法吗?我检查了可能的地方,但我还没有找到任何东西。在Pdfium .NET SDK中打印功能

+0

您是否在[patagames.com](patagames.com)询问供应商? –

回答

1

要打印PDF文档,可以使用标准的.Net框架,如在下面的代码所示:

//.Net Framework class from System.Drawing.Printing namespace 
PrintDocument pd = new PrintDocument(); 
int pageForPrint = 0; 

pd.PrintPage += (s, e) => 
{ 
    using (PdfBitmap bmp = new PdfBitmap((int)e.PageSettings.PrintableArea.Width, (int)e.PageSettings.PrintableArea.Height, true)) 
    { 
     //Render to PdfBitmap using page's Render method with FPDF_PRINTING flag 
     pdfView1.Document.Pages[pageForPrint].Render 
      (bmp, 
      0, 
      0, 
      (int)e.PageSettings.PrintableArea.Width, 
      (int)e.PageBounds.Height, 
      Patagames.Pdf.Enums.PageRotate.Normal, Patagames.Pdf.Enums.RenderFlags.FPDF_PRINTING); 

     //Draw rendered image to printer's graphics surface 
     e.Graphics.DrawImageUnscaled(bmp.Image, 
      (int)e.PageSettings.PrintableArea.X, 
      (int)e.PageSettings.PrintableArea.Y); 

     //Print next page 
     if(pageForPrint< pdfView1.Document.Pages.Count) 
     { 
      pageForPrint++; 
      e.HasMorePages = true; 
     } 
    } 
}; 

//start printing routine 
pd.Print(); 
+0

我真的很感激看到这个vb.net版本。我不知道如何将pd.PrintPage + =(s,e)=> {...}行转换为vb.net。谢谢 – nuander

+0

请看这里:http://forum.patagames.com/posts/m271-Print-functionality-in-Pdfium--NET-SDK#post271 – Paul

0

其中.Render的()的变体允许你直接绘制到Graphics上下文切削在上面的例子中不需要中间位图。