Newsgroup: it.comp.lang.visual-basic
Titolo: anteprima con pdf

buon gionro
pensavo
č possibile usare adobe come anteprima di stampa
ovvero, diciamo che se stampo va alla stampante impostata altrimentoi se 
vado su anteprima il programma dovrebbe creare un documento pdf. in questo 
modo avrei facilitato un compito, non avrei usato programmi come c.r. ed in 
piu avrei gia una serie di servizi quali lo zoom ect che possiede di defaul 
adobe, l'unico problema č che tale documento non si dovrebbe registrare ma 
bensi solo visualizzare altrimento ogni anteprima avrei generato un doc.
spero di essere stato chiaro
saluti 

spero di essere stato chiaro
Si può fare, anzi io lo faccio comunemente, usi .net o VB6?
Per ottenere il pdf puoi usare cutepdf, ma ce ne sono diversi:
http://www.pc-facile.com/guide/creare_files_in_pdf_con_cutepdf_writer/
--
ciao
  Stefano

 Si puņ fare, anzi io lo faccio comunemente, usi .net o VB6?
uso VB6, quindi dici che č fattibile, ottimo, eviterei di fare le anteprima 
di stampa, ed inoltre ho uno strumento completo con il quale oltre che a 
stampare potrei copiare, tagliare ect.
grazie


 Si puň fare, anzi io lo faccio comunemente, usi .net o VB6?


non č che čpotresdti farmi un esempio di codoce. syo impazzendo
La cosa non č proprio banale, richiede conoscenza del VB e della programmazione,
e oltretutto io l'ho fatto tempo fa per cui potrei anche ricordare male o
dimenticare qualcosa.
Prima di tutto devi installare la stampante pdf, poi selezionarla come stampante
di default, avendo cura di ricordare la stampante precedente, basta fare
Dim PrDef$ : PrDef$ = Printer.DeviceName
qui c'č un esempio di come selezionarla:
http://vbnet.mvps.org/index.html?code/system/setdefaultprinter.htm
Poi scrivi sull'oggetto Printer, qui un esempio ma la cosa ovviamente deve
essere mirata al tuo progetto
     Printer.FontUnderline = True
     Printer.Print Tab(10); NewFRM.MSFlexGrid1.TextMatrix(Ln, 1)
     Printer.FontUnderline = False
fino alla fine della pagina:
      Printer.Print: Printer.Print Tab(3); "Segue a pag."; Pag
      Printer.NewPage
e del documento:
      Printer.EndDoc
A questo punto dovrebbe partire la stampante pdf e crearti il documento, il nome
e la sua selezione dipendono dalla PDF che scegli:
http://www.freewarefiles.com/DoPDF_program_26895.html
http://www.freewarefiles.com/PrimoPDF_program_40792.html
http://www.freewarefiles.com/Multiple-PDF-Printer_program_24346.html
 io gli faccio fare un nome fisso (FilePdf$ ) e poi lo rinomino copiandolo:
         Do:  Sleep 100 :   Loop While GetFileAttributes(FilePdf) <= 0
              Sleep 1000 'Aspetta
         If CopyFile(FilePdf & Chr$(0), Dest$, 0&) = 0 Then MsgBox "ERRORE COPIA
PDF", vbCritical: Exit Sub
         DeleteFile FilePdf:             Sleep 100
poi lo apro con una Shellexecute:
 If GetFileAttributes(Dest$) > 0 Then
   RetVal = ShellExecute(0, "Open", Dest$, vbNullString, vbNullString,
SW_SHOWNORMAL)
   If RetVal < 32 Then MsgBox "ERROR " & RetVal Else If InStr(UCase$(Pr$),
"PDF") = 0 Then Sleep 1000
 End If
A questo punto il file č aperto nell' Acroread, puoi inviargli i comandi per
fare l'anteprima da VB con SendKeys o se non va con qualcosa di simile:
http://www.vbaccelerator.com/home/VB/Tips/SendKeys_using_the_API/article.asp
Comunque ti conviene lasciare all'utente la gestione della stampa perchč se
l'anteprima non gli piace, deve poter cambiare qualcosa.
Chiudendo l'Acreread il focus deve tornare al tuo programma VB.
Se non ti č chiaro quanto ho scritto, almeno nelle linee principali, ho idea che
sarŕ una bella pesca fare l'anteprima PDF.
--
ciao
  Stefano

 Chiudendo l'Acreread il focus deve tornare al tuo programma VB.
Io incorporo il reader nel programma VB, e gestisco tutto da codice.
Con un riferimento ad AcroPDF.dll, vedi il reader come un OCX e
lo puoi utilizzare direttamente.
Per caricare un file fai PDF1.LoadFile "nomefile", e roba simile.
Puoi abilitare la barra standard del visualizzatore e far stampare
l'utente da lì, oppure disabilitare la barra e sostituirla con comandi
tuoi, usando una .Print, .PrintAll e varie possibilità simili, oppure
con .PrintWithDialog far gestire lo stesso tutto all'utente.
F2 per l'elenco delle possibilità :-).
Oh, per creare PDF senza bisogno di installare niente del tipo
ghostscript, stampanti virtuali e simili, segnalo di nuovo una
cosa che ho citato qualche giorno fa.
Su 
http://www.luigimicco.altervista.org/
 c'è una classe specifica,
in due versioni, una, freeware, più limitata e l'altra a pagamento
più completa.
Bye, G. 

più completa.
Ormai il mio funziona così e non mi passa nemmeno per la testa di andarci
attorno, però è utila sapere che ci sono altre strade più semplici per ottenere
lo stesso risultato.
--
ciao
  Stefano

 adobe
Come mai non vuoi usare componenti esterni tipo CR?
Tanto se devi fare un PDF qualcosa devi usare comunque.
Io uso ReportMan che è Open Source, ti fa anteprima o stampa diretta, una
volta presa la mano è veloce fare una stampa. Permette di salvare in PDF o
inviare direttamente x email il file in anteprima.
http://reportman.sourceforge.net/


http://reportman.sourceforge.net/
Interessante soprattutto perchè supporta i PDF compressi che invece
non supportano i Reporting services.
Ciao
-- 
Fritz
Togli *ERASE* per rispondere in e-mail.

 stampare poi il PDF.
Come dicevo da qualche altra parte nel thread, se crei il PDF
da codice puoi usare sia per l'anteprima che per la stampa il
componente dell'Acrobat reader.
Bye, G.