Visualizzazione dei risultati da 1 a 6 su 6

Discussione: stampa invb6

  1. #1

    stampa invb6

    Conoscete un modo fare anteprime di stampa e stampare dati con vb6 senza utilizzare crystal report e datareport?


    ciao

  2. #2
    bhe spero di poterti aiutare...ma mi devi dire se devi visualizzare dati (come testo o altro) oppure immaggini (tif, jpg,gif, bmp o altro)



    Cmq...se sono immagini basta che le ridimensioni a dimensione dello schermo x fare l'anteprima.

    Poi per le modalità di stampa è altrettanto semplice:

    1) Stampa normale...fai direttamente un printer.paintpicture
    2) Stampa a Dimensioni della pagina:
    -Prendi il lato + lungo del documento e lo imposti con l'altezza o la lunghezza del foglio (prendi queste infos sempre dall'oggetto printer), naturalmente altezza o larghezza in base all'orientamento del documento! Fatto questo ti fai una piccola proporzione -> NewWidth=int((OldWidth*NewHeigth)/OldHeigth) <- Se devi fare x l'altezza scambia i fattori :P
    Fatto questo calcolo centra l'immagine:
    X=int((Printer.ScaleWidth/2)-(DocWidth/2)) e lo stesso x la Y...dopo di che passa tutto a Printer.PaintPicture...cosi:

    Printer.PaintPicture Immagine,X,Y,NewWidth,NewHeigth...e ta daaaa il gioco e fatto! Tieni conto che nell'oggetto printer non devi usare .Width ma .ScaleWidth e bada al fatto che tutti e due (immagine e printer) devono usare lo stesso tipo di misurazione...ovvero Pixel, Twips, Points e cosi via

    Gli altri metodi di stampa...bho nn so Cmq questi sono quelli principali...

    Spero di essere stato d'aiuto!

  3. #3

    ok grazie ma...

    Ma, se devo stampare dei dati di un recordset?
    ti spiego meglio io devo stampare un prospetto fattura, quindi è composto da una intestazione, da una fine pagina e soprattutto da un corpo (dettaglio) pagina che contiene un serie di dati del recordset, possono variare da 1 a 20-30 righe di record.


    ciao

  4. #4
    Utente di HTML.it L'avatar di sebamix
    Registrato dal
    Aug 2000
    Messaggi
    1,028
    Vi ricordo che ora esiste un forum dedicato interamente a Visual Basic

    http://forum.html.it/forum/forumdisp...?s=&forumid=56


  5. #5
    bhe...mmm

    il discorso e sempre lo stesso...devi trattare i dati come immagine...se non vuoi una struttura particolare puoi scrivere con una api il testo direttamente sull'HDC dell'oggetto (HDC deriva dall'HWND e l'HWND possiamo dire che è il numero della Finestra. L'HDC serve ad identificare un contesto grafico dove si puo disegnare)

    Tu hai l'hwnd dell'oggetto...recuperi l'HDC con una chiamata api e dopo di che la tratti come immagine copy in una picture
    o ancora meglio al printer.paintpicture passi direttamente l'hdc...ma ricordati del discorso delle dimensioni del foglio ;D cmq con un po di prove ci riuscirai DD


    Public Declare Function GetWindowDC Lib "user32" Alias "GetWindowDC" (ByVal hwnd As Long) As Long

    eccola qua...ti restituisce l'hdc passandogli l'hwnd che prendi dall'oggetto

  6. #6
    Orig. inviato da sebamix
    Vi ricordo che ora esiste un forum dedicato interamente a Visual Basic
    Giusto!!!

    sposto la discussione nel nuovo forum
    ...Terrible warlords, good warlords, and an english song

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 © 2025 vBulletin Solutions, Inc. All rights reserved.