Unity调用打印机打印

文章目录[x]
  1. 1:1、准备工作
  2. 2:2、操作方法
  3. 2.1:2.1、使用画图软件
  4. 2.2:2.2、使用第三方软件
  5. 2.3:2.3、自己进行打印
  6. 2.4:2.4、unity插件打印
  7. 3:三、以上几种方式的分析

1、准备工作

调用打印机首先就是要配置好打印机
就是电脑跟打印机已经连接好,有默认的打印机可以启动使用

2、操作方法

2.1、使用画图软件

调用画图软件在弹出的窗口中手动打印。

代码如下:(就两句)

 string path = Application.dataPath + @"\Textures\002.png";
System.Diagnostics.Process.Start("mspaint.exe", path);//调用第三方应用去打印(其中path是要打印图片的路径,而mspaint.exe是调用Windows中的画板,然后从画板里启用打印功能)

2.2、使用第三方软件

这个需要下载一个应用(名字是PrintImage.exe)
然后直接上代码:

public void Test()
   {
       string path = Application.dataPath + @"\Textures\002.png,0,0,750,400";//从纸张的0. 0点,将图像调整为750×350点(计算:150mm/28.346 px/cm=529点,100mm/28.346 pm/cm=352点) 图片路径
       string exepath = Application.streamingAssetsPath + @"\PrintImage.exe";//这个是需要下载的应用直接放到电脑上就行(调用打印机打印图片应用的路径)
       ProcessStartInfo info = new ProcessStartInfo(exepath);//指定启动进程时使用的一组值
       info.Arguments = path;//获取或设置启动应用程序时要使用的一组命令行自变量
       using (Process p=new Process())
       {
           p.StartInfo = info;
           p.Start();
       }
   }

2.3、自己进行打印

使用C#框架中的API 调用打印机。这里主要是使用Graphics去绘制要打印的内容,能够实现图文混合,打印的内容可以自由排版。

system.Drawing.dll 可以从系统中找到并复制一份放到unity工程的目录下来实现引用,也可以在vs中从添加引用中找到再添加引用。

相关API可以从MSDN上查找,与打印相关的类有 PrintDocument PrintSetting Graphics等等

/// <summary>
    /// 打印
    /// </summary>
    public void PrintFile()
    {
        PrintDocument pri = new PrintDocument();
        pri.PrintPage += Printpagetest;
        pri.Print();
    }

    private void Printpagetest(object sender, PrintPageEventArgs e)
    {
        try
        {
            System.Drawing.Image image = System.Drawing.Image.FromFile(printPath);
            System.Drawing.Graphics g = e.Graphics;
            g.TranslateTransform(_4AHeight, 0);
            g.RotateTransform(90);
            g.DrawImage(image, 0, 0, _4AWidth, _4AHeight);
        }
        catch (Exception ee)
        {
            Debug.LogError(ee.Message);
        }
    }

2.4、unity插件打印

Untiy Asset Store上有一个叫LCPrinter的插件也可以实现图片的打印。

链接:https://assetstore.unity.com/packages/tools/integration/lcprinter-simple-texture-printer-67594

三、以上几种方式的分析

1.只能打印图片,还需要再弹出的软件手动打印,费时费力;

2.可以把软件设为无窗口模式比第1种方式效果好点,但是还是只能打印图片;

3.打印的内容自由度很高,能够打印文字、内置图形和图片,可以自己排版但是代码难度比较大;

4.与第2种方式类似。

点赞
  1. 阿宝震说道:

    大佬打印表格怎么做啊,有没有办法,夸赞下这个网页很有意思,还有我填写UID不对啊

    1. Alan说道:

      你指的是在unity做的程序中打印ugui做的表格吗?如果是着这种情况的话需要先把要打印的部分保存成图片才能打印。

发表回复

昵称和uid可以选填一个,填邮箱必填(留言回复后将会发邮件给你)
tips:输入uid可以快速获得你的昵称和头像(已失效)