【问题标题】:Qt: printing on printer dot matrixQt:在打印机点阵上打印
【发布时间】:2015-08-31 12:02:30
【问题描述】:

我正在尝试使用 Qt 将一些字符串打印到打印机点阵 LX-300+,但字体似乎是倾斜的。有些用户也有这个问题http://www.qtcentre.org/threads/11814-printing-program-in-LX-300-(dot-matrix-printer)-problem,但我直到现在才找到解决方案。请帮我解决这个问题。如果这是 Qt 错误,我是否需要使用其他框架(可能是 .net)创建 dll 或应用程序?这是我的代码

QTextDocument document;
QTextCursor cursor = QTextCursor(&document);
QFont font = QFont("Courier");
QTextCharFormat format = QTextCharFormat();
format.setFont(font);
cursor.setCharFormat(format);
cursor.insertText("lorem ipsum dolor sit amit amit ");

QPrinter printer(QPrinter::ScreenResolution);
printer.setPrinterName(ui->ddlPrinter->currentData().toString());
printer.setColorMode(QPrinter::GrayScale);
printer.setPageSize(QPrinter::A4);
printer.setFullPage(false);
QPrintDialog dialog(&printer, this);
document.print(&printer);

我正在使用 Qt5.4.0 mingw491 32 OS win 7 64bit

【问题讨论】:

  • "字体似乎歪了" 如果您不提供清晰的 (600dpi+ 扫描) 问题图像,甚至无法开始解决您的问题打印。要重现,您还必须在 QTextDocument 上设置明确的字体,并让我们知道它在什么操作系统上,什么 Qt 版本,以及您使用的打印机驱动程序版本和提供程序。
  • 我添加了更多描述,如何在 QTextDocument 上设置字体?
  • 设置defaultFont之前向文档添加任何其他内容。
  • 你真的应该添加来自 Qt 的无效打印输出的图像(或者如果你还不能直接附加图像,则只添加指向 imgur 的链接,通常有人会快速编辑以添加图像),以及来自写字板的预期打印输出或记事本。您可能可以使用照相手机获得足够好的图像来显示问题。

标签: c++ qt printing


【解决方案1】:

我可以像这个伪代码一样直接使用 Windows API 来解决这个问题

OpenPrinter(name,&hPrinter, NULL);
dwJob = StartDocPrinter( hPrinter, 1, (LPBYTE)&DocInfo );
bStatus = StartPagePrinter(hPrinter);
BOOL bStatus = WritePrinter(hPrinter,(LPVOID)buffer,text.length(),&dwBytesWritten);

希望这对某人有所帮助

【讨论】:

    猜你喜欢
    • 2011-05-02
    • 2018-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多