使用pdfium卷纸从C#打印PDF

问题描述

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

我使用下面的代码发送此文件,文件名为80 x 297mm,与物理热敏打印机的纸张尺寸相对应。我无法弄清楚为什么pdfiumviewer在80mm宽的纸张上将打印机的输出缩小到只有20mm宽的情况。当我直接从EDGE或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),};
        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;
    }
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...