Newsgroup: it.comp.lang.visual-basic
Titolo: Stampare PDF da VB senza Acrobat

come da oggetto, è da qualche tempo che cerco su Internet un OCX o DLL
o altro che mi consenta, dato un elenco di file .pdf già pronti, di
stamparli da progetto Visual Basic (VB6), SENZA AVERE ACROBAT
INSTALLATO (quindi non voglio utilizzare acrord32.exe /p ecc, oppure
FilePrintSilent via DDE, ecc).
ho trovato qualcosa in giro, a pagamento (può andare bene, se la cifra
non è eccessiva, e per eccessiva intendo entro i 100.00 euro), se
free, ovviamente è meglio.
Dopo lunghe ed estenuanti ricerce, in particolare, per il prezzo
richiesto e per la funzionalità offerta (ho provato il demo) mi
orienterei verso il componente sprinter.ocx, trovato all'indirizzo
http://www.vbgold.com
mi piacerebbe ricevere suggerimenti, indicazioni e quant'altro da chi
avesse già affrontato il problema.
GRAZIE.

leggendo meglio l'help del componente ho trovato che... (evidenzio con
--->)
Remarks
This method enables you to print a PDF document form a PDF file
---->  using your existing PDF reader application (the application
associated with opening and printing PDF files, such as the Adobe
Acrobat Reader).
The file will be printed exactly as you see it in the "Actual Size"
view in the PDF reader, including any images, layout, fonts, margin
settings, etc. There is no need to set or use any of the Smart Print
Control properties.
The following code line shows how to use this method to print a PDF
document from a PDF file:
   SPrinter1.PrintPDFFile "C:\MyPDFFile.PDF"
Note that by using this method, all control properties are ignored,
whether set (or not) before calling this method. Also, setting the
printer using the SetPrinter method will have no effect. The PDF
document is sent to the default system printer.
---> Note that if you have no PDF reader application installed on your
system, the PrintPDFFile method will fail.
ahi, ahi, forse non era quello che volevo....
resto in attesa di aiuto.....

 FilePrintSilent via DDE, ecc).
Ciao,
per la stessa esigenza ho usato ghostscript che espone una dll che converte
i file postscript in pdf, in pratica:
1) installi il driver di una stampante postscript, in windows è già
disponibile quello della Apple
2) Da VB stampi su file usando quella stampante (io mi sono fatto una
classe wrapper che usa le API)
3) Con ghostscript converti il file ps in pdf
E' un po' macchinoso implementarlo ma il tutto funziona correttamente. Su
google trovi parecchio materiale.
Ciao
-- 
Stefano "HappyMan"
http://www.sgr.info

 i file postscript in pdf, in pratica:......
in realtà, forse non mi sono spiegato bene,
io i file PDF CE LI HO GIA',
NON MI INTERESSA CREARLI,
devo solo stamparli, senza aprire o utilizzare però acrobat.....



Ciao,
ti sei spiegato benissimo, sono io che ho letto roma per toma :-)


 avesse già affrontato il problema.
Beh... io con il reader. Per stampare va benissimo, e si può usare
anche integrandolo nel programma, cioè senza dover lanciare
un programma esterno e fare una "shell and wait".
Bye, G. 

ho un progetto vb che elaborando una serie di files pdf li dovrebbe
stampare e inviare via fax (generando messaggi di winfaxpro). tutto ok,
però quando winfax converte il pdf in immagine da allegare al fax apre
acrobat che se per caso è aperto per il mio processo di stampa mi crea
gran casini.
nessun motivo 'religioso' quindi.....
acrobat per stampare poi l'ho utilizzato via DDE e shell, con il
seguente codice
If CFG.MODOstampa = "Shell" Then
    stringashell = CFG.ACROBAT & " /p /h " & FileName
    X = Shell(stringashell)
    If X = 0 Then GoTo gestioneerrori
End If
If CFG.MODOstampa = "FilePrintSilent" Then
    opnrdr = Shell(CFG.ACROBAT, vbHide)
    strExecute = "[FilePrintSilent(" & Chr$(34) & FileName & Chr$(34) &
")]"
    With lblDDE
    .LinkMode = vbLinkNone
    .LinkTopic = "acroview|control"
    .LinkMode = vbLinkManual
    .LinkTimeout = 32760
    .LinkExecute strExecute
    ' chiudo
    .LinkMode = vbLinkNone
    .LinkTopic = "acroview|control"
    .LinkMode = vbLinkManual
    .LinkTimeout = 32760
    .LinkExecute "[AppExit]"
    End With
End If
comunque i miei problemi non li ho risolti....
per questo volevo stampare senza usare acrobat....
accetto comunque suggerimenti , critiche, esempi, codice sorgente, ecc.
.....

 ecc. .....
Prova col semplice Reader integrandolo nel tuo progetto; lo puoi
installare anche affiancato ad Acrobat completo, se è necessario.
Crea un progetto nuovo, nei componenti scegli "Adobe Acrobat 7.0
Browser Control Type Library", e aggiungine uno al tuo form.
Crea due pulsanti, in uno metti
    AcroPDF1.LoadFile "path e nome del tuo file.pdf"
e nell'altro
    AcroPDF1.printPages 1, 1
Questo stamperà sulla stampante predefinita. E se la stampante
predefinita è il winfax, dovrebbe fare tutto da solo.
A questo punto fai tutte le prove che vuoi, chiudendo/aprendo altri
pdf eccetera, e vedi se anche così ti dà problemi.
Bye, G.