110,539
社区成员
发帖
与我相关
我的任务
分享
private void button1_Click_1(object sender, EventArgs e)
{
printDocument1.Print();
}
private void button2_Click(object sender, EventArgs e)
{
printDocument1.DefaultPageSettings.Landscape = true;
printPreviewDialog1.Document = this.printDocument1;
printPreviewDialog1.ShowDialog();
}
private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
try
{
Bitmap bitmap = pictureBox1.Image as Bitmap;
e.Graphics.DrawImage(bitmap, 0,0,1024,768);
}
catch (Exception ee)
{
MessageBox.Show(ee.Message);
}
}
// Create parallelogram for drawing image.
Bitmap bitmap = pictureBox1.Image as Bitmap;
Point ulCorner = new Point(0,0);
Point urCorner = new Point(0, 100);
Point llCorner = new Point(850, 850);
Point[] destPara = { ulCorner, urCorner, llCorner };
// Create rectangle for source image.
Rectangle srcRect = new Rectangle(0, 0, bitmap.Width, bitmap.Height);
GraphicsUnit units = GraphicsUnit.Pixel;
// Draw image to screen.
e.Graphics.DrawImage(bitmap, destPara, srcRect, units);
printDocument1.DefaultPageSettings.Landscape = true;
//printDocument1.DefaultPageSettings = new PaperSize("A6");
printPreviewControl1.Document = printDocument1;
printPreviewControl1.Columns = 2;
printPreviewControl1.Rows = 2;
printDocument1.PrintPage += new System.Drawing.Printing.PrintPageEventHandler(printDocument1_PrintPage);
}
int i = 0;
void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
var g = e.Graphics;
int r = i / printPreviewControl1.Columns;
int c = i % printPreviewControl1.Columns;
var bmp = new Bitmap("1.jpg");
var w = bmp.Width / printPreviewControl1.Columns;
var h = bmp.Height / printPreviewControl1.Rows;
var rect = new RectangleF(c*w, r*h, w, h);
g.DrawImage(bmp, e.PageBounds, rect, GraphicsUnit.Pixel);
if (++i < printPreviewControl1.Rows * printPreviewControl1.Columns)
{
e.HasMorePages = true;
}
}