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
>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.
Il file pdf lo devi comunque creare ed equivale a fare una stampa in pdf, poi lo
devi aprire, puoi stampare il .pdf direttamente da Acroread usando le sue
funzioni di prewiev e di stampa, alla fine lo puoi sempre cancellare, tutto da
VB.
>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
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
grazie
"SB" <stNOOOb...@tin.it> ha scritto nel messaggio
news:has6545frj37st3m3...@4ax.com...
> Il giorno Fri, 13 Jun 2008 20:12:24 +0200, "Paolo" <orp...@fastwebnet.it>
> ha
> scritto:
>
>>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.
>
> Il file pdf lo devi comunque creare ed equivale a fare una stampa in pdf,
> poi lo
> devi aprire, puoi stampare il .pdf direttamente da Acroread usando le sue
> funzioni di prewiev e di stampa, alla fine lo puoi sempre cancellare,
> tutto da
> VB.
>
>>spero di essere stato chiaro
>
> 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
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.
>
>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à :-).
Intereressante, non sapevo di questa 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.
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
> 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
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/
>Come mai non vuoi usare componenti esterni tipo CR?
Personalmente CR l'ho usato poco ma quel poco che l'ho usato mi sono
trovato malissimo, ho dovuto aggiungere un campo ad un report fatto da
dei colleghi con CR e che esportava i dati in Excel, dopo l'aggiunta
del campo ho smadonnato per ore sul layout perchè in output mi faceva
una riga vuota dopo ogni riga di dati. In 2 ore l'ho rifatto con
Reporting services (i cui file di definizione sono semplici XML
modificabili anche con notepad) e ho dato fuoco a CR.
>Tanto se devi fare un PDF qualcosa devi usare comunque.
Ci sono anche delle classi per creare PDF, certo in questo caso deve
creare un codice per il preview e uno per la stampa a meno di non
stampare poi il PDF.
>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/
Interessante soprattutto perchè supporta i PDF compressi che invece
non supportano i Reporting services.
Ciao
--
Fritz
Togli *ERASE* per rispondere in e-mail.
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.