Unity调用打印机
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调用打印机相关推荐
- Unity调用打印机打印文本或者图片
Unity调用打印机打印文本或者图片 通过windows命令行使用记事本打印文本 private void PrintTxt(){//picPath=Application.streamingAsse ...
- Unity 调用打印机遇到的坑
仅供个人学习 1.通用打印 System.Diagnostics.Process.Start("mspaint.exe", "/pt d:\\screenshots\\s ...
- unity 调用打印机打印图片问题
1.引用System.Drawing.Printing.dll: 代码如下: /// <summary>/// 开始打印/// </summary>public void Pr ...
- unity 调用打印机打印照片
System.Diagnostics.Process.Start("mspaint.exe", "/pt d:\\44.png"); 备注:打印机的驱动要事前安 ...
- Unity调用安卓Android的Toast
需求:在游戏中弹窗消息,调起安卓的Toast 项目中需要做Unity和安卓交互时,经常需要通过安卓Toast来做简单的输出,以便于测试. 方法一:Unity中,C#主导 // Unity调用安卓的土司 ...
- UNITY调用安桌方法出现 JNI: Init'd AndroidJavaClass with null ptr!
UNITY调用安桌方法出现 JNI: Init'd AndroidJavaClass with null ptr! 原因是····· 得运行在一个真正的Android设备上! 得运行在一个真正的And ...
- [原] Unity调用android版新浪微博
本文提供unity调用微博android版 SDK 分享图片,现有sdk支持路径调用分享图片 雨凇MOMO已实现; 本文教会大家如何通过byte流分享图片(官方API pic true binary ...
- unity调用 Android 分享图片文字 方法 不需要第三方sdk 兼容android7.0+
直接说方法把,在Android Studio中 新建一个工程,新建时选择Add No Activity,包名跟unity中设置的一样比如这里用 come.demo.share 在res目录下新建个文件 ...
- android视频分享功能吗,Unity 调用 Android 分享功能(基于ShareRec SDK视频分享)
需求 Mob 平台是一个强大的提供分享功能的平台,为移动开发者提供 ShareSDK 社交分享.ShareREC 手游录像分享.短信验证码 SDK 及 BigApp 等免费服务. Unity 使用 S ...
- 在unity调用WebService的接口方法
在unity 调用WebService的soap接口方法总结: 1,wsdl工具 2,www的post方法 第一种在iOS无法发布(Android和PC都可以),第二种亲测可以在iOS模拟器上运行 第 ...
最新文章
- Animation 模拟纸盒的爆破
- 量化金融第一步获取市场数据 (Python Tushare)
- C++头文件保护符和变量的声明定义
- 生物信息学biojava|从本地读取并解析遍历genbank文件|从genbank中提取CDS等注释信息
- c语言汇率转换代码_拜求c语言编写的人民币大小写转换的代码!
- php文件夹压缩视频教程,高清视频压缩教程 如何将高清视频压缩文件大小
- Vue整合Markdown组件+SpringBoot文件上传+代码差异对比
- 记忆日语的奥秘—日语汉字读音变化
- 深入浅出对话系统——概述
- 4.9-4.10 矩阵乘法的性质 矩阵的幂运算 矩阵的转置及其性质
- 计算机考研四大名著,2017考研英语翻译每日一句:四大名著
- 【城北徐公之机器学习】感知机模型
- java基础 equals与hashCode
- gdoi2016爆零记
- 双回路隔离输出DC/DC高压电源模块
- mysql安装后没有mysql数据库怎么处理
- STC 51单片机42——汇编 定时器 舵机
- STM32应用(二)测速模块、寻迹模块、数码管显示、TFT显示屏
- android中获取设备的型号和手机厂商
- 树莓派gpio指令问题:找不到指令或不能识别板子类型