首页 文章

将PDF标签打印到Zebra打印机(420d)

提问于
浏览
1

在我的网上商店,我可以下载一份送货单作为pdf文件 . 我已经构建了一个使用 FileSystemWatcher 的.net服务来监视我的"Print"文件夹 . 该服务将处理该文件夹中的所有 .pdf.zpl 文件 .

所有 .zpl 文件将使用 RawPrinterHelper 类直接使用Windows驱动程序打开并写入Zebra 420d打印机 . 它按预期工作!

我的问题是 .pdf 文件 . 当我从Windows 10中的浏览器手动打印文件到Zebra 420d打印机时,它可以正常工作 . 但是当我尝试从我的服务中打印它们时,标签的大小将非常小 . 看起来内容已经缩小了 .

public static bool PrintPdf(string filepath, string printerName)
    {
        try
        {
            var doc = new PdfDocument();
            doc.LoadFromFile(filepath);
            doc.PrinterName = printerName;
            doc.PrintDocument.Print();
            doc.Dispose();

            return true;
        }
        catch (Exception ex)
        {
            // More code ...
        }
    }

我整晚都用Google搜索并尝试了各种方法将PDF转换为PNG / SVG到ZPL,但没有用 .

如何使用c#将PDF格式的标签打印到Zebra 420d打印机?

编辑:我还尝试将PDF转换为BMP,然后转换为GRF(Zebras母语) . 还是行不通 . 我得到的只是一个空白页面 .

2 回答

  • 0

    我解决了!

    我根本不需要任何转换 . 我只需要重新安装并调整打印机驱动程序设置并修改我的代码以使用新设置 .

    这是我的最终代码:

    public static bool Print(string filepath, string printerName)
        {
            try
            {
                var doc = new PdfDocument();
                doc.LoadFromFile(filepath);
                doc.PrinterName = printerName;
    
                var psize = new PaperSize("Custom Paper Size", 417, 1007);
                doc.PrintDocument.DefaultPageSettings.PaperSize = psize;
                doc.PageSettings.Rotate = PdfPageRotateAngle.RotateAngle180;
    
                doc.PrintDocument.Print();
                doc.Dispose();
    
                return true;
            }
            catch (Exception ex)
            {
                // More code ...
            }
        }
    
  • 0

    从nuget包下载器下载Spire.Pdf包以访问PdfDocument类

相关问题