C# 将 PDF 打印到热敏打印机 (Star TSP100) 生成不清晰/模糊的收据

C# Printing PDF to thermal printer (Star TSP100) produces an unclear/fuzzy receipt

提问人:DeanEncoded 提问时间:11/6/2023 更新时间:11/6/2023 访问量:63

问:

我有一个 C# .NET Framework 控制台应用程序,可将 PDF 文档发送到指定的打印机。 我主要使用A4打印机和热敏打印机进行打印。

以下是打印过程的代码片段:

// PdfiumViewer
var pdfViewer = new PdfViewer
{
    Document = PdfDocument.Load(filename)
};

// Create the printer settings for our printer
var printerSettings = new PrinterSettings
{
    PrinterName = printer,
    Copies = (short)1,
};

// Create our page settings with the paper size as the document size.
var pageSettings = new PageSettings(printerSettings)
{
    Margins = new Margins(0, 0, 0, 0), // No margins
    Color = false,
    PaperSize = new PaperSize("Custom PDF Size", pdfViewer.Document.PageSizes[0].Width, pdfViewer.Document.PageSizes[0].Height)
};

// Proceed to print
// Now print the PDF document
using (var document = PdfDocument.Load(filename))
{
    using (var printDocument = document.CreatePrintDocument())
    {
        printDocument.PrinterSettings = printerSettings;
        printDocument.DefaultPageSettings = pageSettings;
        printDocument.PrintController = new StandardPrintController();
        
        // Print the document
        printDocument.Print();
    }
}

我只打印单页文档。打印到A4打印机工作正常。 打印到热敏打印机 (Star TSP100) 时,始终会产生不清晰/模糊的收据。您可以在下面看到文档和打印输出之间的区别。

不清晰/模糊的打印输出 |PDF 文档

PDF 文档的页面大小为 3.78 x 7.92 英寸。

将相同的 PDF 打印到 A4 打印机可生成非常清晰的文档。

我只是想知道为什么收据不清楚。是否有任何可能的解决方法?

我尝试将 PDF 转换为收据的位图,然后打印 - 结果更糟。输出更不清楚

BMP转换输出

C# 控制台 - 应用程序 热敏打印机 收据

评论

1赞 Daevin 11/6/2023
这和我从零售商那里看到的收据一样清晰,哈哈。我认为您只是“被宠坏”了,因为您已经习惯了 A4 打印机比热敏打印机更好的打印体验?您可以尝试以小于尺寸的尺寸创建 PDF,并查看打印机是否正在进行任何压缩/拉伸。
0赞 JonasH 11/6/2023
这看起来像是一些缩放问题,例如使用“最近邻”缩小图像。但它也可能只是一台蹩脚的热敏打印机。如果以其他方式打印,结果看起来不错吗?
0赞 kunif 11/7/2023
你有没有检查过每张纸上的实际点数?大多数热敏打印机都是 203dpi,可能使用 80 毫米纸,但水平点的数量约为 576 点。这远低于 A4 页文档打印机支持的分辨率。首先,水平创建具有 576 个点的 PDF 数据,然后在热敏打印机上逐点打印,无需缩放。

答:

-2赞 mikon 11/6/2023 #1

请验证您的打印机设置。您应该在打印机的设置中具有类似的窗口。

评论

0赞 Community 11/7/2023
正如目前所写的那样,你的答案尚不清楚。请编辑以添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。您可以在帮助中心找到有关如何写出好答案的更多信息。
0赞 DeanEncoded 11/7/2023
我将更改设置并返回此线程。