using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;

namespace Project1
{
	/// <summary>
	/// Summary description for Form1.
	/// </summary>
	public class Form1 : System.Windows.Forms.Form
	{
		public System.Windows.Forms.Button Command4;
		public System.Windows.Forms.Button Command3;
		public System.Windows.Forms.Button Command2;
		public System.Windows.Forms.Button Command1;
		public System.Windows.Forms.TextBox Text1;
		private AxIMAGEKIT7Lib.AxImageKit ImageKit1;
		/// <summary>
		/// Required designer variable.
		/// </summary>
		private System.ComponentModel.Container components = null;

		public Form1()
		{
			//
			// Required for Windows Form Designer support
			//
			InitializeComponent();

			//
			// TODO: Add any constructor code after InitializeComponent call
			//
		}

		/// <summary>
		/// Clean up any resources being used.
		/// </summary>
		protected override void Dispose( bool disposing )
		{
			if( disposing )
			{
				if (components != null) 
				{
					components.Dispose();
				}
			}
			base.Dispose( disposing );
		}

		#region Windows Form Designer generated code
		/// <summary>
		/// Required method for Designer support - do not modify
		/// the contents of this method with the code editor.
		/// </summary>
		private void InitializeComponent()
		{
			System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(Form1));
			this.Command4 = new System.Windows.Forms.Button();
			this.Command3 = new System.Windows.Forms.Button();
			this.Command2 = new System.Windows.Forms.Button();
			this.Command1 = new System.Windows.Forms.Button();
			this.Text1 = new System.Windows.Forms.TextBox();
			this.ImageKit1 = new AxIMAGEKIT7Lib.AxImageKit();
			((System.ComponentModel.ISupportInitialize)(this.ImageKit1)).BeginInit();
			this.SuspendLayout();
			// 
			// Command4
			// 
			this.Command4.BackColor = System.Drawing.SystemColors.Control;
			this.Command4.Cursor = System.Windows.Forms.Cursors.Default;
			this.Command4.Font = new System.Drawing.Font("Arial", 8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));
			this.Command4.ForeColor = System.Drawing.SystemColors.ControlText;
			this.Command4.Location = new System.Drawing.Point(412, 343);
			this.Command4.Name = "Command4";
			this.Command4.RightToLeft = System.Windows.Forms.RightToLeft.No;
			this.Command4.Size = new System.Drawing.Size(129, 49);
			this.Command4.TabIndex = 10;
			this.Command4.Text = "End";
			this.Command4.Click += new System.EventHandler(this.Command4_Click);
			// 
			// Command3
			// 
			this.Command3.BackColor = System.Drawing.SystemColors.Control;
			this.Command3.Cursor = System.Windows.Forms.Cursors.Default;
			this.Command3.Font = new System.Drawing.Font("Arial", 8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));
			this.Command3.ForeColor = System.Drawing.SystemColors.ControlText;
			this.Command3.Location = new System.Drawing.Point(412, 247);
			this.Command3.Name = "Command3";
			this.Command3.RightToLeft = System.Windows.Forms.RightToLeft.No;
			this.Command3.Size = new System.Drawing.Size(129, 49);
			this.Command3.TabIndex = 9;
			this.Command3.Text = "Use Printer Information File To Print Image";
			this.Command3.Click += new System.EventHandler(this.Command3_Click);
			// 
			// Command2
			// 
			this.Command2.BackColor = System.Drawing.SystemColors.Control;
			this.Command2.Cursor = System.Windows.Forms.Cursors.Default;
			this.Command2.Font = new System.Drawing.Font("Arial", 8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));
			this.Command2.ForeColor = System.Drawing.SystemColors.ControlText;
			this.Command2.Location = new System.Drawing.Point(412, 175);
			this.Command2.Name = "Command2";
			this.Command2.RightToLeft = System.Windows.Forms.RightToLeft.No;
			this.Command2.Size = new System.Drawing.Size(129, 49);
			this.Command2.TabIndex = 8;
			this.Command2.Text = "Load an Image";
			this.Command2.Click += new System.EventHandler(this.Command2_Click);
			// 
			// Command1
			// 
			this.Command1.BackColor = System.Drawing.SystemColors.Control;
			this.Command1.Cursor = System.Windows.Forms.Cursors.Default;
			this.Command1.Font = new System.Drawing.Font("Arial", 8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));
			this.Command1.ForeColor = System.Drawing.SystemColors.ControlText;
			this.Command1.Location = new System.Drawing.Point(412, 103);
			this.Command1.Name = "Command1";
			this.Command1.RightToLeft = System.Windows.Forms.RightToLeft.No;
			this.Command1.Size = new System.Drawing.Size(129, 49);
			this.Command1.TabIndex = 7;
			this.Command1.Text = "Save Printer Information To Print File";
			this.Command1.Click += new System.EventHandler(this.Command1_Click);
			// 
			// Text1
			// 
			this.Text1.AcceptsReturn = true;
			this.Text1.AutoSize = false;
			this.Text1.BackColor = System.Drawing.Color.FromArgb(((System.Byte)(255)), ((System.Byte)(255)), ((System.Byte)(192)));
			this.Text1.Cursor = System.Windows.Forms.Cursors.IBeam;
			this.Text1.Font = new System.Drawing.Font("Arial", 8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));
			this.Text1.ForeColor = System.Drawing.Color.FromArgb(((System.Byte)(192)), ((System.Byte)(0)), ((System.Byte)(0)));
			this.Text1.Location = new System.Drawing.Point(8, 0);
			this.Text1.MaxLength = 0;
			this.Text1.Multiline = true;
			this.Text1.Name = "Text1";
			this.Text1.RightToLeft = System.Windows.Forms.RightToLeft.No;
			this.Text1.Size = new System.Drawing.Size(529, 80);
			this.Text1.TabIndex = 6;
			this.Text1.Text = @"The SavePrinterInfo method displays the ""Print Setup"" dialog allowing you to set printer properties and then save these settings into a printer information file. Then by using the PrintFileName property to specify the printer information file, it is possible to print without having to display the Print dialog. The PrintFileName property also has an extention that allows you to change the number of copies, paper orientation, or paper size without changing the settings that have been already saved in the printer information file";
			// 
			// ImageKit1
			// 
			this.ImageKit1.Location = new System.Drawing.Point(8, 88);
			this.ImageKit1.Name = "ImageKit1";
			this.ImageKit1.OcxState = ((System.Windows.Forms.AxHost.State)(resources.GetObject("ImageKit1.OcxState")));
			this.ImageKit1.Size = new System.Drawing.Size(393, 304);
			this.ImageKit1.TabIndex = 11;
			// 
			// Form1
			// 
			this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
			this.ClientSize = new System.Drawing.Size(552, 398);
			this.Controls.Add(this.ImageKit1);
			this.Controls.Add(this.Command4);
			this.Controls.Add(this.Command3);
			this.Controls.Add(this.Command2);
			this.Controls.Add(this.Command1);
			this.Controls.Add(this.Text1);
			this.Name = "Form1";
			this.Text = "Setting Print Properties in the Printer Information File";
			((System.ComponentModel.ISupportInitialize)(this.ImageKit1)).EndInit();
			this.ResumeLayout(false);

		}
		#endregion

		/// <summary>
		/// The main entry point for the application.
		/// </summary>
		[STAThread]
		static void Main() 
		{
			Application.Run(new Form1());
		}

		private void Command1_Click(object sender, System.EventArgs e)
		{
			bool Ret;
			//set the location where the printer information file will be saved...
			ImageKit1.PrintDraw.PrintFileName = Application.StartupPath + "\\IkPrn.Ik";
			
			//display the "Print Setup" dialog and save settings in printer information file...
			Ret = ImageKit1.PrintDraw.SavePrinterInfo();
		}

		private void Command2_Click(object sender, System.EventArgs e)
		{
			//display the Open file dialog and choose the image to be loaded...
			if (ImageKit1.File.OpenFileDialog() == false) 
			{
				return;
			}

		
			//load the image file...
			ImageKit1.File.LoadFile(IMAGEKIT7Lib.LoadFileConstants.ikLoad);
			
			//display image
			ImageKit1.Display(IMAGEKIT7Lib.DispModeConstants.ikScale);
		}

		private void Command3_Click(object sender, System.EventArgs e)
		{
			bool Ret;
		
			//check the current directory to see if there is a printer information file...
			ImageKit1.PrintDraw.PrintFileName = Application.StartupPath + "\\IkPrn.Ik";
			
			//if there is then use it to create a device context for the printer...
			Ret = ImageKit1.PrintDraw.PrintCreateDC(IMAGEKIT7Lib.PrintModeConstants.ikPrintFileName);
			
			//If the printer information file does not exist, call the SavePrinterInfo method and create one...
			if (Ret == false) 
			{
				MessageBox.Show("Unable to print. Printer information file not found");
				return;
			}
			
			//Print using the printer information file settings.
			Ret = ImageKit1.PrintDraw.PrintStartDoc();
			Ret = ImageKit1.PrintDraw.PrintStartPage();
			if (ImageKit1.ImageHandle != 0) 
			{
				//prints the image in a rectangle 15 centimeters by 15 centimeters while maintaining width/height ratio of original...
				Ret = ImageKit1.PrintDraw.ImageOut(ImageKit1.PrintDraw.hDC, ImageKit1.ImageHandle, 100, 100, 1600, 1600, true, false, IMAGEKIT7Lib.OutPutDeviceModeConstants.ikPrinter);
			}
			else 
			{
				MessageBox.Show("Please load an image to print");
				return;
			}
			ImageKit1.PrintDraw.PrintEndPage();
			ImageKit1.PrintDraw.PrintEndDoc();
			
			//delete the device context for the printer...
			Ret = ImageKit1.PrintDraw.PrintDeleteDC();
		}

		private void Command4_Click(object sender, System.EventArgs e)
		{
			this.Close();
		}
	}
}
