Pdfium .NET SDK 中的打印功能

Print functionality in Pdfium .NET SDK

我目前正在为我的雇主开发一个使用 PDF 渲染功能的 C# 应用程序。 Pdfium.Net 在显示 PDF 方面表现出色,但该应用程序还必须能够打印它们。有人知道通过这个 API 打印当前 PDF 文档的方法吗?我已经检查了可能的地方,但我没有找到任何东西。

要打印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();

其中一个 .Render() 变体允许您直接在 Graphics 上下文上绘图,从而消除了对上述示例中的中间位图的需求。