Unity 调用打印机遇到的坑

仅供个人学习

1.通用打印

System.Diagnostics.Process.Start("mspaint.exe", "/pt d:\\screenshots\\sample.jpg");

//"mspaint.exe"表示画板程序。

//"d:\\screenshots\\sample.jpg"表示图片的绝对路径。

注意这里是调用本机的画图程序

所以unity打印的图片如果是1080*1920的话就会出现一些问题 。如下图

2.这时候就要考虑一下其他方法,我这里是找了个插件(LCPrint)。

Print.PrintTexture(texture2D.EncodeToPNG(), 1, “”);// 打印的图片,拷贝次数,图片名

Print.PrintTextureByPath("D:\\pic.png", 1, “”);//打印指定路径的图片 ,拷贝次数,图片名

用这个方法的话,打印的照片尺寸要跟打印机的匹配,如果不匹配会报错:

paper size of pinter driver and indribbon type do not match.

品特驱动器的纸张尺寸与印带式不匹配

3.使用win自带软件

该方法出自https://blog.csdn.net/qq_42855293/article/details/81981308

 public void MyPrint()
    {
        string path = Application.dataPath + @"\Textures\002.png,0,0,750,400";//图片路径 + 将图像调整为750×400点(计算:750mm/28.346 px/cm=529点,400mm/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();
        }
    }
发布了23 篇原创文章 · 获赞 13 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_42047805/article/details/91041436