+ Rispondi al messaggio
Pagina 1 di 2 12 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15

Stampa su schedine super enalotto

  1. #1
    L'avatar di sistemista
    sistemista non è in linea Topo di biblioteca
    Post
    2,855
    Like Inviati  
    7
    Like Ricevuti  
    0
    ho sviluppato un sistemino per il superenalotto modello cruciverba con numeri immessi manualmente,vengono ordinati casualmente e poi inviati in stampa cartacea e fin qui tutto ok,il problema è che non mette in precisione il simbolo asterisco sui numeri che vi sono sulle schedine,ovvero,le prime 3 righe e colonne è ok mentre passando alla riga 4 vi è un differenza di un millimetro dalla riga 3 alla riga 4 e qui mi sballa il posizionamento,quindi,penserei che si tratta di un problema della stampante.
    allego foto e poi il codice.
    Nome:   superenalotto.jpg
Visite:  49
Grandezza:  92.6 KB
    come si può vedere si nota la differenza.
    questo il codice:
    Dim col As Integer = 7 ' distanza della  1a colonna dal margina sinistro della schedina
            Dim fine As Integer = 15 ' il numero all'estrema destra della schedina
            Dim start = 0         
            Dim riga As Double = 27 ' la prima riga della schedina che dista dalla parte superiore della schedina
            For t = 1 To 90
                start += 1
                If start > fine Then ' quando start diventa maggiore a fine allora entra nella if in questo caso 16
                    col = 7 ' rimetto la colonna ala valore iniziale
                    fine += 15 ' incremento fine che in questo caso diventa 30 che è il limite estrema destra della schedina e così via fino al numero 90
                End If
                vettorecolonna(t) = col
                col += 5
            Next
            start = 0
            fine = 15
            For i = 1 To 90
                start += 1
                If start > fine Then
                    riga += 3.3 'stesso discorso di prima come la colonna e incremento la riga di 3.3 millimetri
                    fine += 15
                End If
                vettoreriga(i) = riga
            Next
    
    ora il codice per la stampa sulle schedine,posto solo il codice della taratura
     e.Graphics.PageUnit = GraphicsUnit.Millimeter
            Dim font1 As New Font("arial", 22)
            Dim rigan As Double = 0
            Dim coln As Integer = 0
            Dim numtmp As Integer = 0
            Dim tmp As Integer = 0
            Dim ciclo As Integer = 0
            For i = 1 To 90
                coln = vettorecolonna(i) 'prende le coordinate della colonna
                rigan = vettoreriga(i) 'prende le coordinate delle righe su cui stampare
                e.Graphics.DrawString("*", font1, Brushes.Black, coln, rigan)
            Next
    
    come potete vedere il codice è abbastanza semplice,quindi,vorrei un consiglio su come procedere per avere la precisione in stampa,se metto una stampante laser è più precisa secondo voi o mi sfugge qualcosa nella programmazione?
    ℹ️ Leggi di più su sistemista ...

  2. #2
    L'avatar di AntonioG
    AntonioG non è in linea Moderatore Globale Ultimo blog: Commodore 64 e Codemotion
    Post
    17,396
    Blogs
    5
    Like Inviati  
    5
    Like Ricevuti  
    32
    Fai delle prove usando per l'incremento di riga al posto di 3.3 il valore

    3.35

    oppure

    3.4
    ℹ️ Leggi di più su AntonioG ...

  3. #3
    Post
    1,877
    Blogs
    21
    Like Inviati  
    13
    Like Ricevuti  
    11
    Non picchiatemi

    ma leggere le coordinate di ogni numero da un file /db
    creato inizialmente da programma e poi aggiustato a manina/semi-manina
    dove sballa come la vedete ?
    ℹ️ Leggi di più su sspintux ...

  4. #4
    L'avatar di AntonioG
    AntonioG non è in linea Moderatore Globale Ultimo blog: Commodore 64 e Codemotion
    Post
    17,396
    Blogs
    5
    Like Inviati  
    5
    Like Ricevuti  
    32
    Se non si riesce a trovare un passo regolare va bene ma qualche tentativo va fatto.
    ℹ️ Leggi di più su AntonioG ...

  5. #5
    L'avatar di sistemista
    sistemista non è in linea Topo di biblioteca
    Post
    2,855
    Like Inviati  
    7
    Like Ricevuti  
    0
    Allora ho risolto al 98% con un meccanismo leggermente macchinoso in quanto il problema era dopo la 3a riga.
    Posto il codice che sostituisce il precedente:
              start = 0
            fine = 15
            For i = 1 To 60  'esegue fino al numero 60 in quanto il problema si presenta dal 61 in poi
                start += 1
                If start > fine Then
                    riga += 3.3
                    fine += 15
                End If
                vettoreriga(i) = riga
            Next
            start = 60   'proseguo con la numerazione dal 61 in poi
            fine = 75
            riga += 3.8     ' incremento la riga iniziale partendo dal numero 61
            For i = 61 To 90
                start += 1
                If start > fine Then
                    riga += 3.3
                    fine += 15
                End If
                vettoreriga(i) = riga
            Next
    
    in questo modo ho risolto ma il problema penso sia della stampante.
    Come da foto, siamo quasi precisi.
    Nome:   supenalotto_27122020.jpg
Visite:  36
Grandezza:  100.1 KB
    ℹ️ Leggi di più su sistemista ...

  6. #6
    Post
    1,877
    Blogs
    21
    Like Inviati  
    13
    Like Ricevuti  
    11
    Quote Originariamente inviato da sistemista Visualizza il messaggio
    Allora ho risolto al 98% con un meccanismo leggermente macchinoso
    ...
    ma il problema penso sia della stampante.
    se il problema è la stampante e la cambi poi, molto probabiile, devi ricompilare
    ℹ️ Leggi di più su sspintux ...

  7. #7
    L'avatar di AntonioG
    AntonioG non è in linea Moderatore Globale Ultimo blog: Commodore 64 e Codemotion
    Post
    17,396
    Blogs
    5
    Like Inviati  
    5
    Like Ricevuti  
    32
    Scusa ma perché tutto quel codice con tutte quelle variabili e controlli strani?

    Basta un banale doppio ciclo

            For i = 1 To 90 Step 15
                For j = 1 To 15
                    ' ... qui utilizzi il valore di riga
                Next
                riga += 3.35
            Next
    
    Poi fai qualche prova con il valore 3.35 magari incrementandolo o decrementandolo di poco fino a che la stampa è accettabile.
    ℹ️ Leggi di più su AntonioG ...

  8. #8
    L'avatar di sistemista
    sistemista non è in linea Topo di biblioteca
    Post
    2,855
    Like Inviati  
    7
    Like Ricevuti  
    0
    Perché ho il problema che quando deve marcare i numeri da 60 in poi,non so come probabilmente è la stampante,non marca i numeri correttemente ma li marca fuori riga ed allora ho il bisogno che quando
    arriva al numero 60 incremento manualmente come si vede dal codice,di 3.8 millimetri in modo che si posiziona correttamente sulla riga dove inizia il 61 e da lì in poi li marca correttamente come si vede nella foto che ho allegato nel precedente post,grazie per il suggerimento ho impostato a 3.5 ed è migliorato leggermente,meglio di così le posizioni non vanno,ora stampa quasi perfetto.
    ℹ️ Leggi di più su sistemista ...

  9. #9
    L'avatar di sistemista
    sistemista non è in linea Topo di biblioteca
    Post
    2,855
    Like Inviati  
    7
    Like Ricevuti  
    0
    Quote Originariamente inviato da sspintux Visualizza il messaggio
    se il problema è la stampante e la cambi poi, molto probabiile, devi ricompilare
    lo so ma se migliora la precisione non è un problema a parte che ora è quasi perfetto e li marca con una precisione del 98%,uno scarto del 2% é accettabile.....poi vedremo come andrà in tutti e 5 i pannelli,per ora ne ho fatti solo 3.
    Ci aggiorniamo.
    ℹ️ Leggi di più su sistemista ...

  10. #10
    L'avatar di AntonioG
    AntonioG non è in linea Moderatore Globale Ultimo blog: Commodore 64 e Codemotion
    Post
    17,396
    Blogs
    5
    Like Inviati  
    5
    Like Ricevuti  
    32
    Quote Originariamente inviato da sistemista Visualizza il messaggio
    Perché ho il problema che quando deve marcare i numeri da 60 in poi,non so come probabilmente è la stampante,non marca i numeri correttemente ma li marca fuori riga ed allora ho il bisogno che quando
    arriva al numero 60 incremento manualmente come si vede dal codice,di 3.8 millimetri in modo che si posiziona correttamente sulla riga dove inizia il 61 e da lì in poi li marca correttamente come si vede nella foto che ho allegato nel precedente post,grazie per il suggerimento ho impostato a 3.5 ed è migliorato leggermente,meglio di così le posizioni non vanno,ora stampa quasi perfetto.
    Se anche con 3.35 o altri valori hai provato e non risolvi, la questione del cambio di passo lo risolvi con una Iif nel doppio ciclo ...

    For i = 1 To 90 Step 15
        For j = 1 To 15
            ' ... qui utilizzi il valore di riga
        Next
        riga += Iif(i>60, 3.8, 3.3)
    Next
    
    ℹ️ Leggi di più su AntonioG ...

+ Rispondi al messaggio
Pagina 1 di 2 12 ultimoultimo

Potrebbero interessarti anche ...

  1. Stampa file pdf all'interno di un processo di stampa differente
    Da Headphone nel forum Visual Basic .Net
    Risposte: 0
    Ultimo Post: 28-12-2011, 17:33
  2. Super Mini PC
    Da Fix nel forum Hardware, elettronica e retro-computing
    Risposte: 4
    Ultimo Post: 24-11-2009, 12:12
  3. Errore stampa docomento Word generato da stampa unione.
    Da Barbagnau nel forum Microsoft Word
    Risposte: 5
    Ultimo Post: 09-07-2008, 10:26
  4. Super domandone access!
    Da Aspis nel forum Microsoft Access
    Risposte: 2
    Ultimo Post: 24-02-2005, 10:05