多媒体应用之Unity调用打印机

Unity调用打印机方法一: 调用win自带的画图工具(缺点是无法更改打印的默认设置)

System.Diagnostics.Process.Start("mspaint.exe","/pt "+filename);

调用打印机方法二:使用插件直接调用打印机,不需要调用画图工具

这里使用LCPrinter打印机插件

Print.PrintTextureByPath(filename,1,printerName);

这里讲一下打包发布时会报错,因为缺少Drawing Dll,此时需要到安装目录中寻找Drawing Dll并且拖到unity工程里进行编译。

filename是要打印图片的路径,建议放在unity的StreamingAssets文件夹里面;我这里的路径名字使用的是

filename = Application.datapath+@"StreamingAssets\行书\01.png";

运行后发现打印没用,检查后返现Application.datapath 使用的是正斜杠/  而我们需要的是\反斜杠

此时使用字符串替换       filename2 =filename.Replace(@"/" ,@"\");

下面贴上我项目的源代码

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using System.IO;
using UnityEngine.SceneManagement;
using LCPrinter;


public class PrintShuqian : MonoBehaviour {

    public Image[] nineS;
    public Image shuqian;
    private int shufa;
    private int printNum;//打印数字
    private string filename;
    public Canvas PrintCanvas;
    
    public Image ziti;
    public Sprite[] zitis;

    public Button m_button;
    public string printerName = "";
    int m = 0;

    private  string filename2;
    private void Start()
    {
         m_button.onClick.AddListener(delegate () {
            m++;
            if (m == 9)
            {
                Application.Quit();
            }
        });
        
    }
    public void LoadNine()//加载九宫格书签
    {
        if (shufa == 0)
        {
            for (int i = 1; i < 10; i++)
            {
                nineS[i-1].sprite = Resources.Load<Sprite>("aa/0" + i.ToString());
                nineS[i - 1].SetNativeSize();
            }
           
        }
        if (shufa == 1)
        {
            for (int i = 1; i < 10; i++)
            {
                nineS[i - 1].sprite = Resources.Load<Sprite>("bb/0" + i.ToString());
                nineS[i - 1].SetNativeSize();
            }
        }
        if (shufa == 2)
        {
            for (int i = 1; i < 10; i++)
            {
                nineS[i - 1].sprite = Resources.Load<Sprite>("cc/0" + i.ToString());
                nineS[i - 1].SetNativeSize();
            }
        }
        if (shufa == 3)
        {
            for (int i = 1; i < 10; i++)
            {
                nineS[i - 1].sprite = Resources.Load<Sprite>("dd/0" + i.ToString());
                nineS[i - 1].SetNativeSize();
            }
        }
        if (shufa == 4)
        {
            for (int i = 1; i < 10; i++)
            {
                nineS[i - 1].sprite = Resources.Load<Sprite>("ee/0" + i.ToString());
                nineS[i - 1].SetNativeSize();
            }
        }
        Preview(1);
        ziti.sprite = zitis[shufa];
      }
    public void Preview(int i )//点击书签预览
    {
        printNum = i;
        if (shufa == 0)
        {
            shuqian.sprite = Resources.Load<Sprite>("aaa/0" + i.ToString());
        }
        // shuqian.sprite = Resources.Load<Sprite>(i.ToString());
        if (shufa == 1)
        {
            shuqian.sprite = Resources.Load<Sprite>("bbb/0" + i.ToString());
        }
        if (shufa == 2)
        {
            shuqian.sprite = Resources.Load<Sprite>("ccc/0" + i.ToString());
        }
        if (shufa == 3)
        {
            shuqian.sprite = Resources.Load<Sprite>("ddd/0" + i.ToString());
        }
        if (shufa == 4)
        {
            shuqian.sprite = Resources.Load<Sprite>("eee/0" + i.ToString());
        }
       }

    public void Prints()//打印书签
    {
        if (shufa == 0)
        {
            filename = Application.dataPath + @"\StreamingAssets\草书\0" + printNum.ToString()+".png";
            
        }
        if (shufa == 1)
        {
            filename = Application.dataPath + @"\StreamingAssets\行书\0" + printNum.ToString() + ".png";

        }
        if (shufa == 2)
        {
            filename = Application.dataPath + @"\StreamingAssets\楷书\0" + printNum.ToString() + ".png";

        }
        
        if (shufa == 3)
        {
            filename = Application.dataPath + @"\StreamingAssets\隶书\0" + printNum.ToString() + ".png";

        }
        if (shufa == 4)
        {
            filename = Application.dataPath + @"\StreamingAssets\篆书\0" + printNum.ToString() + ".png";

        }

        //System.Diagnostics.Process.Start("mspaint.exe", "/pt " + filename);

        filename2 = filename.Replace(@"/", @"\");
       
        Print.PrintTextureByPath(filename2, 1, printerName);

        }
    public void  ShufaNum(int i)//选择哪种字体
    {
        shufa = i;
        LoadNine();
        PrintCanvas.gameObject.SetActive(true);
    }
    public void LoadScene()
    {
        SceneManager.LoadScene(0);
    }
    public void Chongzhi()//重置功能
    {
        shuqian.sprite = Resources.Load<Sprite>("222");
    }
    
}

猜你喜欢

转载自blog.csdn.net/qq_38834505/article/details/83446111