suhaitao0615 2024-01-24 14:09
浏览 5
已结题

winform用Graphics绘制界面打印乱码

做了一个 Winform用PrintDocument实现打印的功能,界面使用Graphics绘制的。包括一些基本的英文和数字信息以及一个二维码。用户那边是通过远程连接使用该程序调用自己本地的标签打印机进行打印,不过那边是繁体的xp系统,打印机是TCS ME340,然后打印出来二维码是正确的,英文和数字都是乱码,不同工厂的用户那边可以正常打印;在远程服务器上生成PDF后拿到这个用户本地打开也是正常的,求问一下这个到底是哪里出现了问题。

  • 写回答

1条回答 默认 最新

  • suhaitao0615 2024-01-24 14:21
    关注

    这个是PrintPage里面绘制的内容
    string txt_no = "Unmovable Pole attachment";
    Font d = this.lstInfo.Font;
    Font c = new Font(new InstalledFontCollection().Families.FirstOrDefault().Name,6f,FontStyle.Regular);
    //Font font_txt = new Font("Arial", 6.5f, FontStyle.Regular);
    Font font_color = new Font("Arial", 6f, FontStyle.Regular);
    Font s = new Font("宋体", 6f, FontStyle.Regular);
    Font font_txt = new Font(d.FontFamily.Name, 6f, FontStyle.Regular);
    SizeF sizeF = g.MeasureString(txt_no, font_txt);

    g.DrawString(txt_no, font_txt, Brushes.Black, new RectangleF(5f, 5f, sizeF.Width, sizeF.Height));
    g.DrawString(txt_no, font_color, Brushes.Black, new RectangleF(5f, 15f, sizeF.Width, sizeF.Height));
    g.DrawString(txt_no, c, Brushes.Black, new RectangleF(5f, 25f, sizeF.Width, sizeF.Height));
    g.DrawString(txt_no, s, Brushes.Black, new RectangleF(5f, 35f, sizeF.Width, sizeF.Height));

    这是打印的内容
    pd = new PrintDocument();
    pd.PrinterSettings.PrinterName = pName;
    pd.DefaultPageSettings.Landscape = false;
    pd.PrintPage += new PrintPageEventHandler(printDocument_PrintPage);

    pd.DefaultPageSettings.Margins = new Margins(5, 5, 5, 5); // 设置页边距
    pd.Print();

    打印出来效果

    img

    评论

报告相同问题?

问题事件

  • 系统已结题 2月1日
  • 创建了问题 1月24日

悬赏问题

  • ¥60 QQOP数据,什么是op数据号,怎么提取op数据!能不能大量提取(语言-c语言)
  • ¥15 matlab代码 关于微分方程和嵌套的分段函数。
  • ¥15 把VMware项目复制到另一台电脑
  • ¥15 onlyoffice编辑完后立即下载,下载的不是最新编辑的文档
  • ¥15 求caverdock使用教程
  • ¥15 Coze智能助手搭建过程中的问题请教
  • ¥15 12864只亮屏 不显示汉字
  • ¥20 三极管1000倍放大电路
  • ¥15 vscode报错如何解决
  • ¥15 前端vue CryptoJS Aes CBC加密后端java解密