Avatar billede swamboo Seniormester
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?
Avatar billede swamboo Seniormester
05. marts 2008 - 00:07 #1
Logo'et er i JPG - hvis det har betydning =)
Avatar billede powerpunk Nybegynder
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
  }
Avatar billede swamboo Seniormester
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();           
        }
Avatar billede swamboo Seniormester
03. februar 2010 - 20:56 #4
Lukker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester