Newsgroup: it.comp.lang.visual-basic
Titolo: [!][OT] stampare su file pdf

Mi e' stato richiesto da piu' d'uno (2 ;-) la procedura per creare un
driver di stampa pdf senza avere acquistato Acrobat (e senza averlo
rubato, craccato, ecc.)
Il punto principale e' un trucco: la possibilita' di generare file
postscript da una stampa. Tale file potra' poi essere trasformato con un
programma opportuno in un file pdf, visualizzabile o stampabile con
Acrobat Reader o altro pdf viewer.
Non c'e' farina del mio sacco in tutto cio': ho solo messo insieme un
po' di informazioni ricavate dai vari NG sull'argomento.
Materiale necessario:
- Un driver per stampante Postscript (anche gia' incluso in win 98, nt 4
, forse in win 95)
- Ghostscript  ; io ho utilizzato aladdin ghostscript 6.01
http://www.cs.wisc.edu/~ghost/
 ma penso che anche GNU gs possa andar
bene, basta che abbia tra i drivers pdfwrite
Procedimento:
-Installate il driver della stampante Apple Color LaserWriter 12/600
oppure Apple LaserWriter II NT (presenti tra i driver preinstallati). Io
ho utilizzto il secondo!
Qualunque driver per stampante che sia pienamente compatibile col
linguaggio PS dovrebbe andare bene.
Le stampanti ps hanno la caratteristica di interpretare il linguaggio
ps. Quindi impostando la nostra stampante in modo che stampi su un file
otteremo un file .ps
Nelle proprieta' della stampante ps prescelta, in Dettagli scegliamo
Aggiungi Porta, poi Porta locale ed inseriamo il percorso di un file su
cui salvare le nostre stampe, ad es. c:\
pippo.ps
In Imposta spooler, impostate "Invia direttamente alla stampante" e
"Disattiva il supporto bidirezionale ..."
Se tentate di fare la stampa della pagina di prova dovreste ottenere il
file c:\
pippo.ps
 che visualizzato con opportuno viewer (ad es. ghostview
o equivalente) vi mostrera' la vostra bella pagina di prova!
Ora, utilizzando ghostscript trasformiamo questo file in un file .pdf
Nel mio caso eseguo da linea di comando (nella directory appropriata o
con PATH appropriato):
gswin32c @c:\src\aladdin\pdfwrite.rsp -sOutputFile=c:\pippo.pdf
c:\
pippo.ps
dove  c:\src\aladdin\pdfwrite.rsp e' un file contenente alcune
istruzioni per gs:
Il mio e' fatto cosi':
-Ic:\src\aladdin\gs6.01\lib;c:\src\aladdin\fonts
-sDEVICE=pdfwrite
-r300
-dNOPAUSE
-dSAFER
-sPAPERSIZE=a4 
-dBATCH
 
Dovreste ottenere a questo punto il file c:\pippo.pdf che potete
visualizzare con Acrobat.
In vb la traduzione di questa procedura e' abbastanza semplice:
-Si seleziona come stampante nell'oggetto Printer la nostra stampante ps
Set printer.devicename="Apple ..."	'ho abbreviato ... 
'istruzioni di stampa
printer.print
'
printer.enddoc
 
'qui io inserirei una pausa per attendere che il file venga generato
("stampato")
'poi eseguo gs per trasformare il file ps in pdf
shell  "c:\src\aladdin\gs6.01\bin\gswin32c.exe
@c:\src\aladdin\pdfwrite.rsp " _ 		& "-sOutputFile=c:\pippo.pdf
c:\
pippo.ps
"
Se si ha invece necessita di fare stampe su file pdf interattive, cioe'
con scelta del nome del file ... si puo' installare Redmon
(
http://www.ghostgum.com.au/
) il quale crea una porta che ridirige
l'output di una stampante verso un programma; nel nostro caso l'output
della stampante PS verso gs configurato per creare un file pdf. 
Redmon contiene le semplici istruzioni di configurazione, da cui ho
tratto ispirazione (quasi copiato) per scrivere questo post.
Spero di essere stato utile ...
	maxx

Bravo Massimo !
Ecco un' altra bellissima FAQ !
ciao, hal

 ciofeca...
In effetti il codice PS creato da un driver in win9x ed in NT4 e'
differente. Non sono esperto di Postscript e quindi non mi esprimo ...
In alcuni post viene suggerito di scricare i drivers per alcune
stampanti ps della HP. Ma non ho ancora avuto tempo di fare dei test.
I driver che ho scelto per le mie prove hanno funzionato! Ma puo' essere
solo un caso.
Come dicevo nel mio post originale, l'importante e' scegliere un driver
ps il piu' possibile compatibile con lo standard ps.
grazie per l'annotazione!
maxx

 ha scritto nel messaggio
news:3B099031...@laserinforma.com...
