PrintDocument: По размеру страницы

Я использую 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 к текущему выбранному размеру бумаги по умолчанию в принтере по умолчанию. Как я могу это сделать?


person Ralph    schedule 09.07.2018    source источник


Ответы (1)


Наконец, я решил, инициализировав конструктор CreatePrintDocument с помощью PdfPrintMode.ShrinkToMargin:

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();
    }
}
person Ralph    schedule 09.07.2018