2015-04-23 10 views
0

В настоящее время я работаю над приложением C#, которое использует функции рендеринга PDF для моего работодателя. Pdfium.Net отлично справляется с отображением PDF-файлов, но приложение также должно иметь возможность печатать их. Кто-нибудь знает способ распечатать текущий документ PDF через этот API? Я проверил в вероятных местах, и я ничего не нашел.Функция печати в Pdfium .NET SDK

+0

Вы просили продавца на [patagames.com] (patagames.com)? –

ответ

1

Для печати PDF-документ, вы можете использовать стандартный .Net Framework, например, как показано в коде ниже:

//.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() вариантов позволяет рисовать непосредственно на графический контекст резки из-за необходимости промежуточного растрового изображения в приведенном выше примере.

Смежные вопросы