Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1
    Utente di HTML.it L'avatar di Poker32
    Registrato dal
    May 2001
    Messaggi
    240

    [VB6] Stampare senza far uscire il foglio

    Ciao, sto creando una proceudra per stampare su una stampante ad aghi a modulo continuo.

    La pagina è suddivisa in tre blocchi che non sempre vengono stampati insieme.

    Vorrei fare in modo che quando finisco di stampare un blocco di dati la stampante non mi faccia uscire il foglio in automatico.

    Con il comando "Printer.EndDoc" viene avviata la stampa ma quando finisce butta fuori il foglio...

  2. #2
    Il metodo Printer.EndDoc, come dice il nome stesso, indica allo spooler che è terminato l'invio del documento e che si può iniziare a (e finire di) stampare. Non esiste un modo per mantenere dentro la stampante il foglio.
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Non capisco.
    Hai motivo di inserire Printer.EndDoc?
    Oppure hai motivo di stampare parte del foglio in attesa degli altri 2 blocchi?
    Non puoi aspettare di completare la pagina prima di stampare?

  4. #4
    Utente di HTML.it L'avatar di Poker32
    Registrato dal
    May 2001
    Messaggi
    240
    ciao, la situazione è la seguente:
    al computer è collegata una stampante ad aghi con carta a cliclo continuo.

    ogni foglio del blocco è diviso in 3 riquadri

    tramite il programma, dopo un certo numero di operazione posso decidere se stampare i vari riquadri creati fino a quel momento e quindi mando in stampa.
    a questo punto se ho 2 riquadri da stampare devo stampare sui primi 2 riquadri del foglio e lasciare il foglio dentro la stampante allineato con l'inizio del 3° blocco.

    quando avrò fatto altre 2 operazioni e decido di stampare nuovamente la stampa deve riprendere dal 3° blocco del primo foglio e quindi finire al 1° blocco del secondo foglio.

    ho fatto qualche prova ma non sono riuscito a risolvere il problema.

    se metto Printer.EndDoc quando finisce di stampare il foglio viene buttato fuori dalla stampante.

    se non metto Printer.EndDoc quando mando in esecuzione il programma non parte la stampa finchè non chiudo il programma. a quel punto la stampa parte ma alla fine il foglio viene sempre buttato fuori e la stampante avanza all'inizio del foglio successivo.

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    158
    Stampi grafica o testo?

    se stampi solo testo puoi usare il metodo print -> porta di dos.
    DISCLAIMER
    quello che sta scritto qui sopra è dettato esclusivamente dall'intuito, non da specifiche conoscenze tecniche. Usate queste informazioni a vostro rischio e pericolo (anhe sui server di produzione

  6. #6
    Utente di HTML.it L'avatar di Poker32
    Registrato dal
    May 2001
    Messaggi
    240
    solo testo.

    io uso i comandi Printer.CurrentX e Printer.CurrentY per selezionare la posizione dove stampare.

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Diciamo che decidi di stampare i 2 riquadri senza inviare l'EndDoc ...

    Anche se questi non li vedi sulla stampante, puoi fare le elaborazioni di cui hai bisogno e stampare in seguito il terzo riquadro inviando l'EndDoc ...

  8. #8
    Utente di HTML.it L'avatar di Poker32
    Registrato dal
    May 2001
    Messaggi
    240
    io devo stampare ogni volta che eseguo una operazione.

    quindi blocco per blocco.

    uso win xp come sistema operativo, la stampante è una NEC Pinwriter P2X

  9. #9
    Originariamente inviato da Poker32
    io devo stampare ogni volta che eseguo una operazione.

    quindi blocco per blocco.
    Ancora non capisco il motivo, se c'è dillo (se puoi) almeno capiamo realmente quello di cui hai bisogno. Non puoi stampare ogni 3 blocchi come dice Oregon?
    Cioè: Imposti il primo blocco, ma non lo stampi. Dopo qualche minuto decidi di impostare il secondo blocco, ma non lo stampi. Quando imposterai il terzo, allora potrai dare il comando EndDoc.

    A meno che tu per decidere se stampare il secondo blocco o no debba perforza leggere il primo su carta, altrimenti non vedo altri motivi. E' così?
    Se proprio ti serve fare in questo modo, l'unica soluzione è agire sul formato carta, in modo che ad ogni blocco corrisponda un foglio (anche se fisicamente non è così, ma alla stampante non glie frega, visto che si tratta di moduli continui). Ovviamente i blocchi devono avere stessa dimensione (in verticale). Se per te un foglio corrisponde a 12" (che è quello standard), allora devi anche sperare che esista tra i formati della stampante un formato a 4". In molte stampanti ad aghi è previsto, spesso è previsto anche un modulo personalizzato nelle misure.

  10. #10
    Utente di HTML.it L'avatar di vonkranz
    Registrato dal
    Sep 2001
    Messaggi
    1,387
    Imposta la proprieta' Height ad un valore molto piccolo (magari al valore TextHeight + 20) dell'oggetto printer.
    In tal modo e' come se impostassi l'altezza della pagina a pochi millimetri.
    A questo punto il salto pagina inevitabile con l'enddoc (o con la chiusura dell'applicazione e/o dell'oggetto printer) sara' piccolo e sembrera' essere di una sola riga.
    ...and I miss you...like the deserts miss the rain...

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.