Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Stampare PDF da VB senza Acrobat

1,043 views
Skip to first unread message

ypsylon

unread,
Jan 13, 2007, 6:01:17 AM1/13/07
to
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.

ypsylon

unread,
Jan 13, 2007, 6:29:04 AM1/13/07
to
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.....

Stefano 'HappyMan'

unread,
Jan 13, 2007, 7:43:49 AM1/13/07
to
Il 13 Jan 2007 03:01:17 -0800, ypsylon ha scritto:

> 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).

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

ypsylon

unread,
Jan 13, 2007, 10:42:12 AM1/13/07
to

Stefano 'HappyMan' ha scritto:

> Ciao,
> per la stessa esigenza ho usato ghostscript che espone una dll che converte

> 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.....

Stefano 'HappyMan'

unread,
Jan 13, 2007, 10:54:28 AM1/13/07
to

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

Paperino

unread,
Jan 14, 2007, 10:35:50 AM1/14/07
to
ypsylon wrote:
> 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).

Non ho capito perché escludi il reader, che è free, e funziona bene.
Motivi tecnici, politici, religiosi ? ;-).

> mi piacerebbe ricevere suggerimenti, indicazioni e quant'altro da chi
> 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.


ypsylon

unread,
Jan 14, 2007, 10:58:49 AM1/14/07
to

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.
.....

Paperino

unread,
Jan 14, 2007, 11:12:25 AM1/14/07
to
ypsylon wrote:
> 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

[CUT]
Mai usato quel metodo.

> accetto comunque suggerimenti , critiche, esempi, codice sorgente,
> 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.


0 new messages