unity静默打印

发布全屏之后,不退出,背景静默打印,可用于截图直接打印

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System;
using System.Diagnostics;
using System.Drawing.Printing;
public class Test : MonoBehaviour {
    PrintDocument pri;
    // Use this for initialization
    void Start () {
        int i = Screen.resolutions.Length;
        Screen.SetResolution(Screen.resolutions[i - 1].width, Screen.resolutions[i - 1].height, true);

        pri = new PrintDocument();
        //pri.PrintPage += Printpagetest;
        pri.PrintPage += new PrintPageEventHandler(Printpagetest);
    }
	
	// Update is called once per frame
	void OnGUI () {
        if (GUILayout.Button("Print"))
        {
            //System.Diagnostics.Process.Start("mspaint.exe", "/pt d:\\test.jpg");
            PrintFile();
        }
	}

    /// 
    /// 打印
    /// 
    public void PrintFile()
    {
        
        try
        {
            pri.Print();
        }
        catch (Exception _e)
        {
            UnityEngine.Debug.Log(_e);
        }
    }
    string printPath = "d:\\test.jpg";
    float _4AHeight = 595;
    float _4AWidth = 842;
    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);

            System.Drawing.Bitmap bitmap = new System.Drawing.Bitmap(printPath);
            e.Graphics.DrawImage(bitmap,150,240,500,700);
        }
        catch (Exception ee)
        {
           UnityEngine.Debug.LogError(ee.Message);
        }
    }
}


你可能感兴趣的:(unity-开发设计)