Tisk   zodpovězená otázka

VB.NET, VB6/VBA, Tisk

Zdravím,

zkoušel jsem přejít z VB 6 na Vb.net a nejak se nechytam. prosim, jaky je prikaz pro tisk. Predem moc dekuji.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

V prvom rade musis mat pridaný v projekte PrintDialog a PrintDocument kod vyzerá nasledovne.

    Private TlacenyRetazec As String
    Private NastavenieStrankyPreTlac As New Printing.PageSettings
    Dim PismoTlace As New Font("Fixedsys", 10, FontStyle.Bold)

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        ' Urci nastavenie strany
        PrintDocument1.DefaultPageSettings = NastavenieStrankyPreTlac
        ' Urci dokument pre dialog Tlac
        TlacenyRetazec = RichTextBox1.Text
        PrintDialog1.Document = PrintDocument1
        Dim Vysledok As DialogResult = PrintDialog1.ShowDialog()
        ' Ak uzivatel stlaci tlacitko OK, vytlaci dokument
        If Vysledok = DialogResult.OK Then
            PrintDocument1.Print()
        End If

    End Sub

Private Sub PrintDocument1_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
        Dim PocetZnakov As Integer
        Dim PocetRiadkov As Integer
        Dim retazecPreStranku As String
        Dim formatRetazca As New StringFormat
        ' Na zaklade vzhladu stranky definovat obdlznik pre tlac na stranke
        Dim navrhObdlzniku As New RectangleF(e.MarginBounds.Left, e.MarginBounds.Top, e.MarginBounds.Width, e.MarginBounds.Height)
        ' Definovat oblast pre zistenie kolko textu sa vojde na stranku
        ' Obmedzenie vysky o jeden riadok aby text nebol orezany
        Dim velkost As New SizeF(e.MarginBounds.Width, e.MarginBounds.Height - PismoTlace.GetHeight(e.Graphics))
        ' Dlhe retazce zalomit medzi slova
        formatRetazca.Trimming = StringTrimming.Word
        ' Vypocitat kolko znakov a riadkov sa vojde na stranku
        e.Graphics.MeasureString(TlacenyRetazec, PismoTlace, velkost, formatRetazca, PocetZnakov, PocetRiadkov)
        ' Vypocita retazec ktory sa vojde na stranku
        retazecPreStranku = TlacenyRetazec.Substring(0, PocetZnakov)
        ' Vytlacit retazec na aktualnej stranke
        e.Graphics.DrawString(retazecPreStranku, PismoTlace, Brushes.Black, navrhObdlzniku, formatRetazca)
        ' Ak je dalsi text indikovat viacej stranok
        If PocetZnakov < TlacenyRetazec.Length Then
            TlacenyRetazec = TlacenyRetazec.Substring(PocetZnakov)
            e.HasMorePages = True
        Else
            e.HasMorePages = False
            TlacenyRetazec = RichTextBox1.Text
        End If
    End Sub

PS: uprvene :)

dodo

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Samozrejme, že si sa pomýlil.

nahlásit spamnahlásit spam -1 / 1 odpovědětodpovědět

No toto je už fain.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Díky moc. Už se trochu chytám. koukám že se nový VB dost změnil.

S pozdravem MaFy

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback