首页 > 解决方案 > 使用 pdfium 从 C# 打印 PDF 到卷纸

问题描述

我正在尝试从生成的 pdf 文件进行打印,以复制 80 毫米宽的卷筒打印输出。即 pdf 打印到自定义的 80 毫米宽的页面类型。

我使用下面的代码发送此文件,它传递了一个 80 x 297 毫米的纸张名称,它对应于物理热敏打印机纸张尺寸。我无法弄清楚为什么 pdfiumviewer 将打印机上的输出缩小到仅在 80 毫米宽的纸张上只有大约 20 毫米宽当我直接从 EDGE ot adobe 打印 PDF 时,pdf 完全适合纸张。我无法弄清楚为什么它会缩小。

如果有人有解决方案或更好的方法将 PDF 静默打印到目标打印机,我非常愿意接受建议。

public bool PrintPDF(string printer, string paperName, string filename, int copies)
{
    try
    {
        // Create the printer settings for our printer
        var printerSettings = new PrinterSettings
        {
            PrinterName = printer,
            Copies = (short)copies,
        };
        // Create our page settings for the paper size selected
        var pageSettings = new PageSettings(printerSettings)
        
  
        {
            Margins = new Margins(0, 0, 0, 0),
        };
        foreach (PaperSize papersize in printerSettings.PaperSizes)
        {
            if (papersize.PaperName == paperName)
            {
                pageSettings.PaperSize = papersize;
                break;
            }
        }

    
       // Now print the PDF document
        using (var document = PdfDocument.Load(filename))
        {
            using (var printDocument = document.CreatePrintDocument())
            {
                printDocument.PrinterSettings = printerSettings;
                printDocument.DefaultPageSettings = pageSettings;
               

                printDocument.Print();
            }
        }
        return true;
    }
    catch
    {
        return false;
    }
}

标签: c#pdf

解决方案


推荐阅读