05. marts 2008 - 00:07
Der er
3 kommentarer og 1 løsning
Udskrive billede
Hejsa. Jeg har en lang velfungerende kode der udskriver en blanket. Er der en let måde at udskrive et lile logo i det ene hørne, eller er det ikke bare lige?
Annonceindlæg fra SoftwareOne
05. marts 2008 - 07:59
#2
Det afhænger sør'me nok lidt af hvordan du printer. Hvis du bruger PrintDocument klassen er det så simpelt som: ... PrintDocument pd = new PrintDocument(); pd.PrintPage += new PrintPageEventHandler(pd_PrintPage); pd.Print(); } void pd_PrintPage(object sender, PrintPageEventArgs e) { Image img = Image.FromFile("somefile.jpg"); //TODO: Dit filnavn her e.Graphics.DrawImage(img, 10, 10); //TODO: Udskift koordinater //TODO: Resten af dit print her }
07. marts 2008 - 00:21
#3
Hejsa. Jeg er ikke helt med på hvor jeg kan sætte det ind. Jeg sætter her koden: private void btn_print_Click(object sender, System.EventArgs e) { Bitmap bitmap,page; Graphics myGfx; System.Drawing.Size cardSize,pageSizeNormal,pageSizeLandscape,gridNormal,gridLandscape,gridToUse; bool allowMoreOnSamePage=chkbox_allowMoreOnSamePage.Checked,landscape=false; int count=0,cardsOnNormal,cardsOnLandscape=0,totalPages; PrintTemplate template=GetSelectedTemplate(); PrintElement myElement,example; btn_print.Enabled=false; Application.DoEvents(); pagesToBePrinted.Clear(); example=GetExampleDistrict(); bitmap=example.GetBitmap(template); cardSize=bitmap.Size; if(allowMoreOnSamePage) { pageSizeNormal=new Size(Convert.ToInt32((pageSettings.PaperSize.Width/100f)*bitmap.VerticalResolution),Convert.ToInt32((pageSettings.PaperSize.Height/100f)*bitmap.VerticalResolution)); pageSizeLandscape=new Size(Convert.ToInt32((pageSettings.PaperSize.Height/100f)*bitmap.VerticalResolution),Convert.ToInt32((pageSettings.PaperSize.Width/100f)*bitmap.VerticalResolution)); gridNormal=new Size(pageSizeNormal.Width/cardSize.Width,pageSizeNormal.Height/cardSize.Height); cardsOnNormal=gridNormal.Width*gridNormal.Height; gridLandscape=new Size(pageSizeLandscape.Width/cardSize.Width,pageSizeLandscape.Height/cardSize.Height); cardsOnLandscape=gridLandscape.Width*gridLandscape.Height; if(cardsOnLandscape>cardsOnNormal) { totalPages=Convert.ToInt32(((float)parent.printqueue.Count/cardsOnLandscape)+0.49999); landscape=true; gridToUse=gridLandscape; page=new Bitmap(pageSizeLandscape.Width,pageSizeLandscape.Height); } else if(cardsOnNormal>0) { totalPages=Convert.ToInt32(((float)parent.printqueue.Count/cardsOnNormal)+0.49999); gridToUse=gridNormal; page=new Bitmap(pageSizeNormal.Width,pageSizeNormal.Height); } else { MessageBox.Show("Den valgte skabelon er større en den valgte papirstørrelse. Der skal være plads til minimum 1 udskrift på hvert papir."); btn_print.Enabled=true; return; } } else { totalPages=parent.printqueue.Count; gridNormal=new Size(1,1); gridToUse=gridNormal; page=new Bitmap(Convert.ToInt32((pageSettings.PaperSize.Width/100)*bitmap.VerticalResolution),Convert.ToInt32((pageSettings.PaperSize.Height/100)*bitmap.VerticalResolution)); } page.SetResolution(bitmap.VerticalResolution,bitmap.HorizontalResolution); pageSettings.Landscape=landscape; pageSettings.Color=radio_color.Checked; //page=new Bitmap(pageSettings.PaperSize.Width,pageSettings.PaperSize.Height); count=0; for(int pagecount=0;pagecount<totalPages;pagecount++) { //clear page myGfx=Graphics.FromImage(page); myGfx.FillRectangle(Brushes.White,0,0,page.Width,page.Height); for(int x=0;x<gridToUse.Width;x++) { for(int y=0;y<gridToUse.Height;y++) { myElement=parent.printqueue[count]; bitmap=myElement.GetBitmap(template); myGfx.DrawImageUnscaled(bitmap,bitmap.Width*x,bitmap.Height*y,bitmap.Width,bitmap.Height); count++; if(count==parent.printqueue.Count) { y=gridToUse.Height; x=gridToUse.Width; } } } //page.Save(Application.StartupPath+"\\data\\page"+pagecount+".tif",System.Drawing.Imaging.ImageFormat.Tiff); pagesToBePrinted.Add(page.Clone()); } printDocument1.DefaultPageSettings=pageSettings; printpageCount=0; printDocument1.Print(); btn_print.Enabled=true; this.Hide(); parent.PrintEditChange += "P"; parent.Infoupdate(); parent.Focus(); }