文章目录[x]
- 1:1、准备工作
- 2:2、操作方法
- 2.1:2.1、使用画图软件
- 2.2:2.2、使用第三方软件
- 2.3:2.3、自己进行打印
- 2.4:2.4、unity插件打印
- 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种方式类似。
大佬打印表格怎么做啊,有没有办法,夸赞下这个网页很有意思,还有我填写UID不对啊
你指的是在unity做的程序中打印ugui做的表格吗?如果是着这种情况的话需要先把要打印的部分保存成图片才能打印。