using System;
using System.Diagnostics;
using System.Drawing.Printing;
using System.IO;
using UnityEngine;namespace LCPrinter
{public static class Prints{//打印图片(图片的字节流,打印张数,打印的名字)public static void PrintTexture(byte[] texture2DBytes, int numCopies, string printerName){//字节流是否为空if (texture2DBytes == null){//输出提示UnityEngine.Debug.LogWarning("LCPrinter: Texture is empty.");return;}//打印设置新建对象PrinterSettings printerSettings = new PrinterSettings();//打印名字为空或者等于空if (printerName == null || printerName.Equals("")){printerName = printerSettings.PrinterName;UnityEngine.Debug.Log("LCPrinter: Printing to default printer (" + printerName + ").");}//储存时间段信息string str = string.Concat(new string[]{DateTime.Now.Year.ToString(),"-",DateTime.Now.Month.ToString(),"-",DateTime.Now.Day.ToString(),"-",DateTime.Now.Hour.ToString(),"-",DateTime.Now.Minute.ToString(),"-",DateTime.Now.Second.ToString(),"-",DateTime.Now.Millisecond.ToString()});//文本string text = (Application.persistentDataPath + "\\LCPrinterFiletmp_" + str + ".png").Replace("/", "\\");UnityEngine.Debug.Log("LCPrinter: Temporary Path - " + text);//字节流写入File.WriteAllBytes(text, texture2DBytes);Prints.PrintCMD(text, numCopies, printerName);}//通过纹理路径(路径,打印张数,输出的名字)public static void PrintTextureByPath(string path, int numCopies, string printerName){//打印机设置PrinterSettings printerSettings = new PrinterSettings();//判断是否为空if (printerName == null || printerName.Equals("")){//设置打印的名字printerName = printerSettings.PrinterName;UnityEngine.Debug.Log("LCPrinter: Printing to default printer (" + printerName + ").");}Prints.PrintCMD(path, numCopies, printerName);}//CMDprivate static void PrintCMD(string path, int numCopies, string printerName){//对进程的控制Process process = new Process();try{for (int i = 0; i < numCopies; i++){process.StartInfo.FileName = "rundll32";process.StartInfo.Arguments = string.Concat(new string[]{"C:\\WINDOWS\\system32\\shimgvw.dll,ImageView_PrintTo \"",path,"\" \"",printerName,"\""});process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;process.StartInfo.UseShellExecute = true;process.Start();}}catch (Exception arg){UnityEngine.Debug.LogWarning("LCPrinter: " + arg);}finally{process.Close();UnityEngine.Debug.Log("LCPrinter: Texture printing.");}}}
}

使用时需要Using 命名空间,然后通过Prints.PrintTexture()方法来打印。

举个栗子:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using LCPrinter;public class demo : MonoBehaviour {public  Texture2D screenShot;void test(){Prints.PrintTexture(screenShot.EncodeToPNG(), 1, "");}
}

这里并没有给打印机名字是使用默认的打印机,需要自己设置。

需要注意的是texture2D的分辨率是否符合打印机默认的尺寸。

Unity调用打印机相关推荐

  1. Unity调用打印机打印文本或者图片

    Unity调用打印机打印文本或者图片 通过windows命令行使用记事本打印文本 private void PrintTxt(){//picPath=Application.streamingAsse ...

  2. Unity 调用打印机遇到的坑

    仅供个人学习 1.通用打印 System.Diagnostics.Process.Start("mspaint.exe", "/pt d:\\screenshots\\s ...

  3. unity 调用打印机打印图片问题

    1.引用System.Drawing.Printing.dll: 代码如下: /// <summary>/// 开始打印/// </summary>public void Pr ...

  4. unity 调用打印机打印照片

    System.Diagnostics.Process.Start("mspaint.exe", "/pt d:\\44.png"); 备注:打印机的驱动要事前安 ...

  5. Unity调用安卓Android的Toast

    需求:在游戏中弹窗消息,调起安卓的Toast 项目中需要做Unity和安卓交互时,经常需要通过安卓Toast来做简单的输出,以便于测试. 方法一:Unity中,C#主导 // Unity调用安卓的土司 ...

  6. UNITY调用安桌方法出现 JNI: Init'd AndroidJavaClass with null ptr!

    UNITY调用安桌方法出现 JNI: Init'd AndroidJavaClass with null ptr! 原因是····· 得运行在一个真正的Android设备上! 得运行在一个真正的And ...

  7. [原] Unity调用android版新浪微博

    本文提供unity调用微博android版 SDK 分享图片,现有sdk支持路径调用分享图片 雨凇MOMO已实现; 本文教会大家如何通过byte流分享图片(官方API pic true binary ...

  8. unity调用 Android 分享图片文字 方法 不需要第三方sdk 兼容android7.0+

    直接说方法把,在Android Studio中 新建一个工程,新建时选择Add No Activity,包名跟unity中设置的一样比如这里用 come.demo.share 在res目录下新建个文件 ...

  9. android视频分享功能吗,Unity 调用 Android 分享功能(基于ShareRec SDK视频分享)

    需求 Mob 平台是一个强大的提供分享功能的平台,为移动开发者提供 ShareSDK 社交分享.ShareREC 手游录像分享.短信验证码 SDK 及 BigApp 等免费服务. Unity 使用 S ...

  10. 在unity调用WebService的接口方法

    在unity 调用WebService的soap接口方法总结: 1,wsdl工具 2,www的post方法 第一种在iOS无法发布(Android和PC都可以),第二种亲测可以在iOS模拟器上运行 第 ...

最新文章

  1. Animation 模拟纸盒的爆破
  2. 量化金融第一步获取市场数据 (Python Tushare)
  3. C++头文件保护符和变量的声明定义
  4. 生物信息学biojava|从本地读取并解析遍历genbank文件|从genbank中提取CDS等注释信息
  5. c语言汇率转换代码_拜求c语言编写的人民币大小写转换的代码!
  6. php文件夹压缩视频教程,高清视频压缩教程 如何将高清视频压缩文件大小
  7. Vue整合Markdown组件+SpringBoot文件上传+代码差异对比
  8. 记忆日语的奥秘—日语汉字读音变化
  9. 深入浅出对话系统——概述
  10. 4.9-4.10 矩阵乘法的性质 矩阵的幂运算 矩阵的转置及其性质
  11. 计算机考研四大名著,2017考研英语翻译每日一句:四大名著
  12. 【城北徐公之机器学习】感知机模型
  13. java基础 equals与hashCode
  14. gdoi2016爆零记
  15. 双回路隔离输出DC/DC高压电源模块
  16. mysql安装后没有mysql数据库怎么处理
  17. STC 51单片机42——汇编 定时器 舵机
  18. STM32应用(二)测速模块、寻迹模块、数码管显示、TFT显示屏
  19. android中获取设备的型号和手机厂商
  20. 树莓派gpio指令问题:找不到指令或不能识别板子类型

热门文章

  1. matlab微积分如何计算器,如何用电脑进行微分计算/如何用科学计算器计算微积分...
  2. 温度监视器的设计与制作
  3. 软件工程领域2021年上半年的CCF-A和B类会议列表
  4. Windows官方镜像大全---【内附网盘链接】
  5. DSOFramer的类别和安装
  6. 计算机基础无纸化考试题库,计算机基础考试题库及答案
  7. 【数学建模】五:MATLAB优化模型求解方法(1):标准模型
  8. UI自动化,元素被遮挡
  9. Unlock Music音乐解锁源码
  10. pyGurobi使用手册