Avatar billede jens_32 Nybegynder
06. november 2009 - 13:31 Der er 7 kommentarer og
1 løsning

C# og udskrivning

Jeg ønsker at kunne lave en udskrift fra C#.

Kan man det og hvordan?
Avatar billede windcape Praktikant
06. november 2009 - 16:08 #2
Avatar billede jimmydk Nybegynder
06. november 2009 - 21:05 #3
Den her kan bruges hvis det er et andet doc.

PrintK.OnClientClick = "window.open('' ,null, 'Height=750px,Width=800px,top=0,menubar=no,toolbar=no,scrollbars=yes,location=no')";

Den her hvis det er siden du er i
Page.ClientScript.RegisterStartupScript(this.GetType(), "mykey1", "window.print()", true);
Avatar billede jens_32 Nybegynder
10. november 2009 - 09:09 #4
Hej med jer.

Jimmi der sker ingenting, når jeg kører den kode.
Avatar billede jens_32 Nybegynder
10. november 2009 - 09:10 #5
Windcape.... det kompilerer ikke, når jeg i top af koden skriver:

public class XpsDocument : XpsPartBase,
    IDisposable
Avatar billede jimmydk Nybegynder
14. november 2009 - 10:12 #6
Undskyld det sene svar, men min pc blev enig med sig selv om at brænde sammen :S

Den første kode skal ligges på en knap
<asp:LinkButton ID="PrintK" runat="server" Visible="False" ToolTip="Print det viste fra dagbogen">Print</asp:LinkButton>

PrintK.OnClientClick = "window.open('DINSIDEHER' ,null, 'Height=750px,Width=800px,top=0,menubar=no,toolbar=no,scrollbars=yes,location=no')";

Det vil sige den åbner en ny side som printes

Den anden kan du f.eks. ligge efter en visning, så den starter en print op af den side du fylder med noget.
Avatar billede jens_32 Nybegynder
17. november 2009 - 10:46 #7
Det endte godt nok med det her, som virker:

private void pdc_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
        {
            Font f = new Font("arial",14);
            Brush brush = SystemBrushes.ControlText;

            float venstre = 20;
            float xpos = venstre;
            float ypos = 20;
            float spacing = 5;

            // find højde med den angivne font
            float hoejde = e.Graphics.MeasureString(this.listView1.Columns[0].Text,f).Height;
            // find max bredde på en kolonne
            float[] breddeArray = new float[this.listView1.Columns.Count];

            // find max bredde og udskriv columnheader
            for (int i=0;i<this.listView1.Columns.Count;i++)
            {
                ypos = venstre;
                breddeArray[i] = this.FindMaxSize(e.Graphics,f,i);
                string t = this.listView1.Columns[i].Text;
                e.Graphics.DrawString(t,f,brush,xpos,ypos);
               

                ypos += hoejde + spacing;

                // udskriv listview-items
                for (int j=0;j<this.listView1.Items.Count;j++)
                {
                    ListViewItem item = this.listView1.Items[j];
                    e.Graphics.DrawString(item.SubItems[i].Text,f,brush,xpos,ypos);
                    ypos += hoejde + spacing;
                }
                xpos += breddeArray[i] + spacing;               
            }

        }

        private float FindMaxSize(System.Drawing.Graphics g,Font f,int column)
        {
            float max = g.MeasureString(listView1.Columns[column].Text,f).Width;
            foreach (ListViewItem item in this.listView1.Items)
            {
                SizeF size = g.MeasureString(item.SubItems[column].Text,f);
                if (size.Width > max)
                {
                    max = size.Width;
                }
            }
            return max;
       
        }


Nogen der vil have point?
Avatar billede jens_32 Nybegynder
19. november 2009 - 12:53 #8
Lukket.
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