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

ESPORTARE PDF DA EXCEL VBA

195 views
Skip to first unread message

framan82

unread,
Jul 29, 2008, 6:46:00 AM7/29/08
to
Salve a tutti,
ho creato un file excel per la gestione di fatture.
Sono presenti varie funzioni tra cui l'esportazione (anche multipla)
in file PDF, WORD e l'invio di MAIL con allegati in PDF.
Funziona tutto alla perfezione, l'unico problema è che il PDF creato
risulta intorno ai 350 kb (senza immagini intorno ai 250kb), il che
potrebbe risultare una difficoltà nell'invio di una mail con molte
fatture PDF allegate.
Anche se imposto la qualità da Quality:=xlQualityStandard a
Quality:=xlQualityMinimum, la differenza di dimensioni è minima. Se
provo a stampare la fattura con PDFCreator mi ritrovo un file di
100kb! Come posso risolvere, cercando di evitare di utilizzare
stampanti PDF esterne? Io ho usato il comando ExportAsFixedFormat
avendo installato il Plugin per salvare come PDF da Excel.

Di seguito il codice per l'esportazione in PDF che ho ripreso poi
anche nelle altre funzioni con le opportune modifiche:

Sub EsportaPDF()
If Dir(Environ("commonprogramfiles") & "\Microsoft Shared\OFFICE" _
& Format(Val(Application.Version), "00") & "\EXP_PDF.DLL") <> "" Then

numerofattura = Sheets("fatture").Cells(Selection.Row, 1)
codicefattura = Sheets("fatture").Cells(Selection.Row, 3)
percorsofatture = ActiveWorkbook.Path
cartelladestinazione = "\" & Range("DESTFATT") & "\"
nomefile = percorsofatture & cartelladestinazione & "ft " &
numerofattura & " " & codicefattura

' Nel foglio Stampa è ricreato il layout della fattura che si aggiorna
automaticamente al variare del numero presente in NUMFATT

Range("NUMFATT").value = numerofattura
Sheets("Stampa").ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:=nomefile, _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=False
Else
MsgBox "Il Plugin PDF non è installato!"
End If
End Sub

SB

unread,
Jul 29, 2008, 7:36:58 AM7/29/08
to
Il giorno Tue, 29 Jul 2008 03:46:00 -0700 (PDT), framan82 <fram...@gmail.com>
ha scritto:

>Salve a tutti,
>ho creato un file excel per la gestione di fatture.
>Sono presenti varie funzioni tra cui l'esportazione (anche multipla)
>in file PDF, WORD e l'invio di MAIL con allegati in PDF.
>Funziona tutto alla perfezione, l'unico problema è che il PDF creato
>risulta intorno ai 350 kb (senza immagini intorno ai 250kb), il che
>potrebbe risultare una difficoltà nell'invio di una mail con molte
>fatture PDF allegate.


Potrseti usare pdf compressor

- http://www.nicepdf.com/PDFCompressor.exe

riduce le dimensioni dei pdf, lo lanci con una ShellExecute ()

--
ciao
Stefano

framan82

unread,
Jul 30, 2008, 2:33:02 PM7/30/08
to
On 29 Lug, 13:36, SB <stNOOObenevS...@tin.it> wrote:
> Il giorno Tue, 29 Jul 2008 03:46:00 -0700 (PDT), framan82 <frama...@gmail.com>

> ha scritto:
>
> >Salve a tutti,
> >ho creato un file excel per la gestione di fatture.
> >Sono presenti varie funzioni tra cui l'esportazione (anche multipla)
> >in file PDF, WORD e l'invio di MAIL con allegati in PDF.
> >Funziona tutto alla perfezione, l'unico problema è che il PDF creato
> >risulta intorno ai 350 kb (senza immagini intorno ai 250kb), il che
> >potrebbe risultare una difficoltà nell'invio di una mail con molte
> >fatture PDF allegate.
>
> Potrseti usare pdf compressor
>
> -http://www.nicepdf.com/PDFCompressor.exe

>
> riduce le dimensioni dei pdf, lo lanci con una ShellExecute ()
>
> --
> ciao
>   Stefano

Ho utilizzato PDF compressor, ma il file resta praticamente della
stessa dimensione (da 354 kb a 350kb).
Ma per quale motivo un file creato con PDF creator pesa un terzo
rispetto ad uno creato con EXCEL? Che differenza c'è nella creazione
di un pdf da EXCEL e uno "stampato" con una stampante virtuale come
PDFCreator?
Il layout della fattura è composto da tabelle e ci sono 3 loghi. Che
informazioni salva excel nel pdf creato? Ho cambiato
IncludeDocProperties:=True a false ma non succede niente.

Utilizzare pdf creator tramite vba non è una scelta fattibile, in
quanto comparirebbe in continuazione la schermata del programma che mi
chiede dove salvare il file. La funzione che ho creato permette
l'esportazione di più file contemporaneamente senza chiedere nulla, li
salva semplicemente in una cartella predefinita con un nome calcolato
da un'apposita funzione.

Altri consigli?

Paperino

unread,
Jul 30, 2008, 6:41:14 PM7/30/08
to
"framan82" ha scritto nel messaggio
> SB wrote:
> > framan82 ha scritto:

> > >ho creato un file excel per la gestione di fatture.
> > >Sono presenti varie funzioni tra cui l'esportazione (anche multipla)
> > >in file PDF, WORD e l'invio di MAIL con allegati in PDF.
> > >Funziona tutto alla perfezione, l'unico problema è che il PDF creato
> > >risulta intorno ai 350 kb (senza immagini intorno ai 250kb), il che
> > >potrebbe risultare una difficoltà nell'invio di una mail con molte
> > >fatture PDF allegate.
> > Potrseti usare pdf compressor
> Ho utilizzato PDF compressor, ma il file resta praticamente della
> stessa dimensione (da 354 kb a 350kb).
> Ma per quale motivo un file creato con PDF creator pesa un terzo
> rispetto ad uno creato con EXCEL? Che differenza c'è nella creazione
> di un pdf da EXCEL e uno "stampato" con una stampante virtuale come
> PDFCreator?

Bisognerebbe guardarci dentro; fra l'altro, probabilmente incorpora
le font utilizzate e/o ne crea dei subset. Il che non è sbagliato,
se i pdf devono poter essere visti anche su altre macchine.

> Utilizzare pdf creator tramite vba non è una scelta fattibile, in
> quanto comparirebbe in continuazione la schermata del programma
> che mi chiede dove salvare il file.

> Altri consigli?

Gugla per PDF in questo gruppo, è roba di cui si è parlato spesso.

Bye, G.


framan82

unread,
Jul 31, 2008, 3:07:57 AM7/31/08
to
> Bye, G.- Nascondi testo citato
>
> - Mostra testo citato -

Con questo vuoi dire che i PDF creati con una stampante virtuale (in
questo caso PDF Creator) non incorporano i font, e quindi su macchine
diverse che non hanno gli stessi font appaiono in modo diverso? Non mi
risulta, ed ho anche provato a verificare su macchine diverse: il PDF
è identico anche in macchine che non hanno installati i font
utilizzati.
Ho, invece, provato a cambiare i font, e in effetti la dimensione si è
ridotta notevolmente, ma lo ha fatto pure in PDF Creator.
Se prima i pdf creati da excel attraverso VBA erano 350 kb con font
(calibri e courier new), e 185 con font diverso (arial), quelli creati
con PDF Creator sono passati da 150kb a 47kb. Quindi vuol dire che il
font non incide più di tanto. Ci dev'essere qualche differenza nella
compressione utilizzata.
Ho cercato in giro su altre discussioni, ma nessuna che faccia al caso
mio.
Qualcuno esperto di PDF che mi illumini?

Tiscali

unread,
Jul 31, 2008, 4:41:42 AM7/31/08
to
framan82 ha scritto...

>Con questo vuoi dire che i PDF creati con una stampante virtuale (in
>questo caso PDF Creator) non incorporano i font, e quindi su macchine
>diverse che non hanno gli stessi font appaiono in modo diverso? Non mi
>risulta, ed ho anche provato a verificare su macchine diverse: il PDF
>è identico anche in macchine che non hanno installati i font
>utilizzati.
>Ho, invece, provato a cambiare i font, e in effetti la dimensione si è
>ridotta notevolmente, ma lo ha fatto pure in PDF Creator.
>Se prima i pdf creati da excel attraverso VBA erano 350 kb con font
>(calibri e courier new), e 185 con font diverso (arial), quelli creati
>con PDF Creator sono passati da 150kb a 47kb. Quindi vuol dire che il
>font non incide più di tanto. Ci dev'essere qualche differenza nella
>compressione utilizzata.
>Ho cercato in giro su altre discussioni, ma nessuna che faccia al caso
>mio.
>Qualcuno esperto di PDF che mi illumini?


Guarda se questo esempio ti può aiutare:

http://tinyurl.com/5tjam5

--
Ciao Fede

By Chicco Production
http://bcp.freetools.it


Paperino

unread,
Jul 31, 2008, 1:30:02 PM7/31/08
to
"framan82" ha scritto nel messaggio
>> "Paperino" wrote:
>> "framan82" ha scritto nel messaggio
>> > Ma per quale motivo un file creato con PDF creator pesa un terzo
>> > rispetto ad uno creato con EXCEL? Che differenza c'è nella creazione
>> > di un pdf da EXCEL e uno "stampato" con una stampante virtuale come
>> > PDFCreator?
>> Bisognerebbe guardarci dentro; fra l'altro, probabilmente incorpora
>> le font utilizzate e/o ne crea dei subset. Il che non è sbagliato,
>> se i pdf devono poter essere visti anche su altre macchine.
>> > Utilizzare pdf creator tramite vba non è una scelta fattibile, in
>> > quanto comparirebbe in continuazione la schermata del programma
>> > che mi chiede dove salvare il file.
>> > Altri consigli?
>> Gugla per PDF in questo gruppo, è roba di cui si è parlato spesso.
>> Con questo vuoi dire che i PDF creati con una stampante virtuale (in
>> questo caso PDF Creator) non incorporano i font, e quindi su macchine
>> diverse che non hanno gli stessi font appaiono in modo diverso? Non mi
>> risulta, ed ho anche provato a verificare su macchine diverse: il PDF
>> è identico anche in macchine che non hanno installati i font
>> utilizzati.

OK, ipotesi da escludere :-).

> Ho, invece, provato a cambiare i font, e in effetti la dimensione si è
> ridotta notevolmente, ma lo ha fatto pure in PDF Creator.
> Se prima i pdf creati da excel attraverso VBA erano 350 kb con font
> (calibri e courier new), e 185 con font diverso (arial), quelli creati
> con PDF Creator sono passati da 150kb a 47kb. Quindi vuol dire che il
> font non incide più di tanto.

Beh, 165 kb su 350 e 103 su 150 non mi pare poco, anzi... :-)

> Ci dev'essere qualche differenza nella
> compressione utilizzata.
> Ho cercato in giro su altre discussioni, ma nessuna che faccia
> al caso mio.

Ce n'era una sul come produrre file EPS e mandarli a PDF
Creator o al suo equivalente, stampando su una stampante EPS
reindirizzata su file e cambiando al volo il nome del file agendo
su una chiave di registro, evitando di presentare la maschera
di scelta all'utente. Penso che ti potrebbe interessare.
In alternativa c'è una bella classe per scrivere direttamente il PDF,
di Marco Nicolato, che è partita come freeware e ora credo sia
stata sviluppata in uno shareware, ma le vecchie versioni sono
ancora disponibili in rete, mi pare su PSC oltre che sul suo sito.

> Qualcuno esperto di PDF che mi illumini?

Se me ne mandi uno fatto con Excel e uno con PDF Creator
ci butto un'occhiata con qualche programma specifico, ma non
farti troppe illusioni: la MS non è certo famosa per produrre file
piccoli, praticamente in nessun campo (tranne, forse, nel caso
del multimediale).

L'indirizzo nel reply-to è valido.

Bye, G.


framan82

unread,
Aug 1, 2008, 3:17:36 AM8/1/08
to
> Bye, G.- Nascondi testo citato
>
> - Mostra testo citato -

Ho risolto.
Ho creato una funzione che utilizza la stampante virtuale PDF Creator
senza far comparire alcuna finestra di dialogo.
Il processo è un pò più lento rispetto al metodo exportAsFixedFormat,
ma alla fine ottengo pdf di 50kb invece che di 350kb!

Fritz

unread,
Sep 1, 2008, 9:22:12 AM9/1/08
to
On 29 Lug, 13:36, SB <stNOOObenevS...@tin.it> wrote:
>
> Potrseti usarepdfcompressor
>
> -http://www.nicepdf.com/PDFCompressor.exe
>
> riduce le dimensioni deipdf, lo lanci con una ShellExecute ()

E' comandabile da linea di comando? Non ho trovato informazioni in
proposito

Ciao

Fritz

SB

unread,
Sep 1, 2008, 12:23:26 PM9/1/08
to
Il giorno Mon, 1 Sep 2008 06:22:12 -0700 (PDT), Fritz <Frit...@libero.it> ha
scritto:

No, apre un applicazione win.

http://tinyurl.com/67b8vv

ciao
Stefano

--
ciao
Stefano

Fritz

unread,
Sep 2, 2008, 3:32:10 AM9/2/08
to
On 1 Set, 18:23, SB <stNOOObenevS...@tin.it> wrote:
> Il giorno Mon, 1 Sep 2008 06:22:12 -0700 (PDT), Fritz <Fritz...@libero.it> ha
> scritto:

>
> >E' comandabile da linea di comando? Non ho trovato informazioni in
> >proposito
>
> No, apre un applicazione win.

Infatti peccato, però quindi mi sfugge come avrebbe potuto utilizzarlo
framan82 dalla sua applicazione.

Ciao

Fritz

SB

unread,
Sep 2, 2008, 3:58:56 AM9/2/08
to
Il giorno Tue, 2 Sep 2008 00:32:10 -0700 (PDT), Fritz <Frit...@libero.it> ha
scritto:

>On 1 Set, 18:23, SB <stNOOObenevS...@tin.it> wrote:

Con il Sendkeys o se non va con un metodo come questo:

http://www.vbaccelerator.com/home/VB/Tips/SendKeys_using_the_API/article.asp


--
ciao
Stefano

0 new messages