PrintDocument:适合页面

时间:2018-07-09 09:34:05

标签: c# pdf .net-3.5 printdocument pdfium

我正在使用PdfiumViewer来打印PDF文件:

using (PdfDocument document = PdfDocument.Load(pdfFileName))
{
    using (PrintDocument printDocument = document.CreatePrintDocument())
    {
        printDocument.BeginPrint += PrintDocument_BeginPrint;
        printDocument.EndPrint += PrintDocument_EndPrint;
        printDocument.PrintPage += PrintDocument_PrintPage;
        printDocument.QueryPageSettings += PrintDocument_QueryPageSettings;

        printDocument.PrintController = new StandardPrintController();
        printDocument.Print();
    }
}

在我的printDocument BeginPrint,EndPrint,PrintPage和QueryPageSettings事件中,我什么也没做,只对文件做一些记录。

已打印PDF文件,但是文档的每一页的左,右页边距都被切掉,因此我试图将每个PDF文档页面调整为默认打印机中当前默认选择的纸张尺寸。我该怎么办?

1 个答案:

答案 0 :(得分:1)

最后,我已经通过使用PdfPrintMode.ShrinkToMargin初始化CreatePrintDocument构造函数来解决:

using (PdfDocument document = PdfDocument.Load(pdfFileName))
{
    using (PrintDocument printDocument = document.CreatePrintDocument(PdfPrintMode.ShrinkToMargin))
    {
        printDocument.BeginPrint += PrintDocument_BeginPrint;
        printDocument.EndPrint += PrintDocument_EndPrint;
        printDocument.PrintPage += PrintDocument_PrintPage;
        printDocument.QueryPageSettings += PrintDocument_QueryPageSettings;

        printDocument.PrintController = new StandardPrintController();
        printDocument.Print();
    }
}