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.TextBox Text1;
		public System.Windows.Forms.Button Command2;
		public System.Windows.Forms.Button Command1;
		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.Text1 = new System.Windows.Forms.TextBox();
			this.Command2 = new System.Windows.Forms.Button();
			this.Command1 = new System.Windows.Forms.Button();
			this.ImageKit1 = new AxIMAGEKIT7Lib.AxImageKit();
			((System.ComponentModel.ISupportInitialize)(this.ImageKit1)).BeginInit();
			this.SuspendLayout();
			// 
			// 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(232, 7);
			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(161, 136);
			this.Text1.TabIndex = 6;
			this.Text1.Text = @"Printing a multipage image is simply a matter of retrieving the total number of pages in the multipage file and then looping through each page to print. This sample illustrates how to do that, printing each image in the center of a seperate sheet of paper.";
			// 
			// Command2
			// 
			this.Command2.BackColor = System.Drawing.SystemColors.Control;
			this.Command2.Cursor = System.Windows.Forms.Cursors.Default;
			this.Command2.Font = new System.Drawing.Font("Arial", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));
			this.Command2.ForeColor = System.Drawing.SystemColors.ControlText;
			this.Command2.Location = new System.Drawing.Point(8, 87);
			this.Command2.Name = "Command2";
			this.Command2.RightToLeft = System.Windows.Forms.RightToLeft.No;
			this.Command2.Size = new System.Drawing.Size(217, 57);
			this.Command2.TabIndex = 5;
			this.Command2.Text = "End";
			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", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));
			this.Command1.ForeColor = System.Drawing.SystemColors.ControlText;
			this.Command1.Location = new System.Drawing.Point(8, 7);
			this.Command1.Name = "Command1";
			this.Command1.RightToLeft = System.Windows.Forms.RightToLeft.No;
			this.Command1.Size = new System.Drawing.Size(217, 57);
			this.Command1.TabIndex = 4;
			this.Command1.Text = "Print Multipage Image";
			this.Command1.Click += new System.EventHandler(this.Command1_Click);
			// 
			// ImageKit1
			// 
			this.ImageKit1.Location = new System.Drawing.Point(184, 56);
			this.ImageKit1.Name = "ImageKit1";
			this.ImageKit1.OcxState = ((System.Windows.Forms.AxHost.State)(resources.GetObject("ImageKit1.OcxState")));
			this.ImageKit1.Size = new System.Drawing.Size(40, 40);
			this.ImageKit1.TabIndex = 7;
			this.ImageKit1.Visible = false;
			this.ImageKit1.StartDispImage += new AxIMAGEKIT7Lib._IImageKitEvents_StartDispImageEventHandler(this.axImageKit1_StartDispImage);
			// 
			// Form1
			// 
			this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
			this.ClientSize = new System.Drawing.Size(400, 150);
			this.Controls.Add(this.ImageKit1);
			this.Controls.Add(this.Text1);
			this.Controls.Add(this.Command2);
			this.Controls.Add(this.Command1);
			this.Name = "Form1";
			this.Text = "Print Multipage Image";
			((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 axImageKit1_StartDispImage(object sender, AxIMAGEKIT7Lib._IImageKitEvents_StartDispImageEvent e)
		{
		
		}

		private void Command1_Click(object sender, System.EventArgs e)
		{
			short i;
			bool ret;
		
			// Displays the open file dialog...
			if (ImageKit1.File.OpenFileDialog() == false) 
			{
				return;
			}
		
			//load the image...
			ImageKit1.File.LoadFile(IMAGEKIT7Lib.LoadFileConstants.ikLoad);
			
			//Find out how many pages there are in this multipage image...
			ImageKit1.File.GetImageFileType();
			
			//set that into a variable...
			short NumPages;
			NumPages = ImageKit1.File.FileMaxPage;
			
			//set the page range...
			ImageKit1.PrintDraw.FromPage = 1;
			ImageKit1.PrintDraw.ToPage = NumPages;
			ImageKit1.PrintDraw.MinPage = 1;
			ImageKit1.PrintDraw.MaxPage = NumPages;
			
			//Display the "Print" dialog...
			ret = ImageKit1.PrintDraw.PrintDialog();
			//start print job...
			ret = ImageKit1.PrintDraw.PrintStartDoc();
			
			//Loop through each page of the multipage image
			//print each in the center of a seperate sheet of paper...
			for (i = 0; i < NumPages; ++i)
			{
				ImageKit1.File.LoadPage = i;
				ImageKit1.File.LoadFile(IMAGEKIT7Lib.LoadFileConstants.ikLoad);
				
				//start printing one page...
				ret = ImageKit1.PrintDraw.PrintStartPage();
				//Prints the image on the page.
				ret = ImageKit1.PrintDraw.ImageOut(ImageKit1.PrintDraw.hDC, ImageKit1.ImageHandle, 650, 1050, 1450, 1850, true, false,IMAGEKIT7Lib.OutPutDeviceModeConstants.ikPrinter);
				//end printing that page...
				ImageKit1.PrintDraw.PrintEndPage();
			}
			
			//end the print job...
			ImageKit1.PrintDraw.PrintEndDoc();
		}

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