Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - Lanciare stampa di più copie di file pdf
Forum - C# / VB.NET - Lanciare stampa di più copie di file pdf

Avatar
Impakto91 (Normal User)
Newbie


Messaggi: 1
Iscritto: 15/10/2013

Segnala al moderatore
Postato alle 11:47
Mercoledì, 17/02/2016
Salve ragazzi sto realizzando un piccolo tool che mi lancia in stampa determinati files pdf presenti sul pc.

Ad esempio mi deve mandare in stampa 20 copie di "pippo.pdf" e 20 copie di "pluto.pdf"

Queste pagine devono essere mandate in stampa in ordine (ovvero prima 20 copie di uno e poi 20 delle altre).

Per eseguire il lavoro ho usato questo codice:
Codice sorgente - presumibilmente VB.NET

  1. Public Function StampaFilePDF(ByVal articolo As String, ByVal copies As Integer) As Boolean
  2. frmMain.lblStato.Text = "Stampa di " & copies & " '" & articolo & "' in corso"
  3. For a = 1 To copies
  4. Dim p As New Process
  5. p.StartInfo.FileName = articolo
  6. p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden
  7. p.StartInfo.Verb = "Print"
  8. p.Start()
  9. Next
  10. frmMain.lblStato.Text = "Stampa completata"
  11. End Function




Per mandare le diverse copie uso un ciclo for che ha la pecca di crearmi un processo nella stampante per ogni copia ed essendo una stampante di rete quando mando in stampa anche il secondo file i processi si mischiano tra di loro e capita una stampa molto disordinata. Secondo voi è possibile mandare una shell che faccia partire un unico processo con N pagine? Inoltre già che ci siamo mi servirebbe poter scegliere:

- Possibilità fronte/retro
- Possibilità scelta stampante

Mi andrebbe bene utilizzare anche un applicazione o una dll esterna basta che sia freeware.

Vi ringrazio molto per la collaborazione!

PM Quote
Avatar
TheDarkJuster (Member)
Guru^2


Messaggi: 1452
Iscritto: 27/09/2013

Segnala al moderatore
Postato alle 13:32
Mercoledì, 17/02/2016
Beh ovvio che crea un nuovo processo di stampa:
Codice sorgente - presumibilmente C# / VB.NET

  1. Dim p As New Process


e qualche riga sotto lo fai partire:
Codice sorgente - presumibilmente Plain Text

  1. p.Start()



Tra l'altro:
Codice sorgente - presumibilmente Plain Text

  1. frmMain.lblStato.Text = "Stampa completata"



beh abbastanza discutibile..... in quel punto del programma non è la stampa ad essere completata, ma la creazione dei pool di stampe.........

Io non conosco nessuna libreria pdf freeware che supporti la stampa, ma ne ho trovate alcune su google:https://visualstudiogallery.msdn.microsoft.com/b590710c-efe ... http://pdfclown.org/ https://code.google.com/archive/p/nanopdf/downloads
Posso solo dirti che quel codice non può garantirti alcun ordine di stampa. La buona notizia è che la prima libreria linkata sembra molto ben fatta e completa. Vanta inoltre capacità di stampa, da provare :k:

PM Quote