Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [VB.NET] PrintDocument salta alcune righe da stampare

    Ho sviluppato una applicazione per la fatturazione delle vendite.

    Per creare le fatture utilizzo il componente PrintDocument.
    Ho una form contenente un PrintDocument, un PrintPreviewDialog, due Button (Anteprima / Stampa Diretta) e un datagridview contenente i dati delle vendite.

    Il problema è che durante la visualizzazione dell'anteprima tutto funziona correttamente, durante la stampa no.

    Codice di Anteprima:

    codice:
    Try
    
    'Avvia l'anteprima
    PrintDocument1.DefaultPageSettings.Landscape = False    ' orientamento 
    PrintPreviewDialog1.Document = PrintDocument1
    PrintPreviewDialog1.Width = My.Computer.Screen.WorkingArea.Width
    PrintPreviewDialog1.Height = My.Computer.Screen.WorkingArea.Height
    PrintPreviewDialog1.ShowDialog()
    PrintPreviewDialog1.Top = True
    
    Catch ex As Exception
    
    'Gestione dell'errore
    LocalError("Button4_Click")
    
    End Try


    Codice di PrintDocument1_PrintPage

    codice:
    Try
    'Caratteri disponibili
    'Regular = Grassetto
    Dim drawFont00 As New Font("Verdana", 6, FontStyle.Regular)          '6pt
    'Bold = Grassetto
    Dim drawFont100 As New Font("Verdana", 8, FontStyle.Bold)           '8pt
    'Italic = Corsivo
    Dim drawFont200 As New Font("Verdana", 8, FontStyle.Italic)         '8pt
    
    'INTESTAZIONE DI PAGINA
    'Dati aziendali:
    ... (Tutto funziona)
    
    'Caratteristiche del documento:
    'Disegno un rettangolo
    e.Graphics.DrawRectangle(Pens.Black, e.MarginBounds.Left, 210, e.MarginBounds.Size.Width, 36)
    
    '1.Tipo documento
    Dim Caratteristiche As String = "TIPO DOCUMENTO" & vbCrLf & Documento
    e.Graphics.DrawString(Caratteristiche, drawFont100 , Brushes.Black, e.MarginBounds.Left, 213)
    ... (Tutto funziona)
                                      
    'Intestazione di colonne:
    ... (Tutto funziona)
    
    (Il Corpo funziona solo a video, quando devo stamapre non stampa niente)
    'Corpo del documento:
    '-------------------------------------------------------------------------------
    'Valori di documento
    Dim TotValore, TotIva, TotQuantita, TotSconto1, TotSconto2, TotSconto3 As Double
    
    'Questa variabile contiene la posizione nel dataset
    Static z As Integer 
    
    'In questa invece si mette la posizione di stampa della prima riga dei dati
    Dim Y As Integer = 330                                                              
          
    'Inizio a ciclare le righe contenute nel datagridview  (Ho semplificato per l'esempi)
    
    'In questo punto decido quanti record inserire in ogni pagina (in questo caso 50 ognuna)
    For z = 0 To z + 50    
    
    If z < Dw.Count Then
                                                                                     
    'Quantità
    e.Graphics.DrawString(FormatNumber(Dw.Item(z).Item(19).ToString, 2), drawFont00, Brushes.Black, e.MarginBounds.Left + 256, Y)
                        
    'Prezzo
    e.Graphics.DrawString(FormatNumber(Dw.Item(z).Item(20).ToString, 2)
    , drawFont00, Brushes.Black, e.MarginBounds.Left + 310, Y)
                                        
    e.HasMorePages = True                                                   
    'Permetto di stampare la pagina successiva
     
    Else
    
    e.HasMorePages = False                                                                           
     
    End If
    
    Next z
    
    'Fine del documento
    (..Tutto funziona correttamente)
                
    Catch ex As Exception
           
    'Gestione dell'errore  
    LocalError("PrintDocument1_PrintPage")
    
    End Try
    Come mai a video funziona tutto alla perfezione ma nel momento in cui lancio da stampa,
    che essa sia diretta o attraverso l'anteprima vengono stampati tutti i caratteri correttamente tranne tutti quelli contenuti nel ciclo for..next z

  2. #2
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    regolamento: utilizzare i tag code per postare il codice.

    Così non si capisce nulla

  3. #3
    Hai ragione, ho corretto

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.