最近2018中文字幕在日韩欧美国产成人片_国产日韩精品一区二区在线_在线观看成年美女黄网色视频_国产精品一区三区五区_国产精彩刺激乱对白_看黄色黄大色黄片免费_人人超碰自拍cao_国产高清av在线_亚洲精品电影av_日韩美女尤物视频网站

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Unity中怎么調(diào)用打印機打印圖片

這期內(nèi)容當中小編將會給大家?guī)碛嘘P(guān)Unity中怎么調(diào)用打印機打印圖片,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

成都創(chuàng)新互聯(lián)公司10多年企業(yè)網(wǎng)站設(shè)計服務(wù);為您提供網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)頁設(shè)計及高端網(wǎng)站定制服務(wù),企業(yè)網(wǎng)站設(shè)計及推廣,對石涼亭等多個領(lǐng)域擁有多年的網(wǎng)站推廣經(jīng)驗的網(wǎng)站建設(shè)公司。

1、調(diào)用打印機首先就是要配置好打印機

就是電腦跟打印機已經(jīng)連接好,有默認的打印機可以啟動使用

2、調(diào)用方式

(1)使用外部第三方軟件exe

代碼如下:(就兩句)

string path = Application.dataPath + @"\Textures02.png";  System.Diagnostics.Process.Start("mspaint.exe", path);//調(diào)用第三方應(yīng)用去打印(其中path是要打印圖片的路徑,而mspaint.exe是調(diào)用Windows中的畫板,然后從畫板里啟用打印功能)

(2)使用win自帶軟件

這個需要下載一個應(yīng)用(應(yīng)用會放在我的博客下載文件中名字是PrintImage.exe) 然后直接上代碼:

public void Test()  {    string path = Application.dataPath + @"\Textures02.png,0,0,750,400";//從紙張的0. 0點,將圖像調(diào)整為750×350點(計算:150mm/28.346 px/cm=529點,100mm/28.346 pm/cm=352點) 圖片路徑    string exepath = Application.streamingAssetsPath + @"\PrintImage.exe";//這個是需要下載的應(yīng)用直接放到電腦上就行(調(diào)用打印機打印圖片應(yīng)用的路徑)    ProcessStartInfo info = new ProcessStartInfo(exepath);//指定啟動進程時使用的一組值    info.Arguments = path;//獲取或設(shè)置啟動應(yīng)用程序時要使用的一組命令行自變量    using (Process p=new Process())    {      p.StartInfo = info;      p.Start();    }  }

(3)自己進行打印

///

 /// 打印  ///  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);    }  }

(這里的第三種我還未進行測試,如出現(xiàn)錯誤無法實現(xiàn)請指正)

這里我選擇的是第二種,1不好實現(xiàn)靜默,3太麻煩,2使用是后臺調(diào)用命令行

3、顏色問題

同時這里本人還找到了有博主自己寫的調(diào)用打印機方法項目中需要用到調(diào)用打印機打印圖片,原本覺得會很復(fù)雜,結(jié)果一搜索發(fā)現(xiàn)Assetstore有相應(yīng)的插件。在網(wǎng)上找到別人分享的插件,完美的實現(xiàn)了功能,所以現(xiàn)在也來分享一下(因為想看到具體實現(xiàn),所以用工具反編譯了DLL,原本插件是直接導(dǎo)入就可以的)。

using System;using System.Diagnostics;using System.Drawing.Printing;using System.IO;using UnityEngine;namespace LCPrinter{  public static class Print  {    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);      Print.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 + ").");      }      Print.PrintCMD(path, numCopies, printerName);    }    private 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.");      }    }  }}

這是實現(xiàn)功能的源碼。調(diào)用方法如下:

using UnityEngine;using System.Collections;using System.Diagnostics;using System;using System.IO;using LCPrinter;using UnityEngine.UI;public class LCExampleScript : MonoBehaviour {  public Texture2D texture2D;  public string printerName = "";  public int copies = 1;  public InputField inputField;  public void printSmileButton()  {    Print.PrintTexture(texture2D.EncodeToPNG(), copies, printerName);//打印一張編輯器中的圖片  }  public void printByPathButton()  {    Print.PrintTextureByPath("D:\\pic.png", copies, printerName);//打印一張存在指定路徑的圖片  }}

上述就是小編為大家分享的Unity中怎么調(diào)用打印機打印圖片了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


新聞標題:Unity中怎么調(diào)用打印機打印圖片
標題路徑:http://fisionsoft.com.cn/article/jheiog.html