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
>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?
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.
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:
--
Ciao Fede
By Chicco Production
http://bcp.freetools.it
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.
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!
E' comandabile da linea di comando? Non ho trovato informazioni in
proposito
Ciao
Fritz
No, apre un applicazione win.
ciao
Stefano
--
ciao
Stefano
Infatti peccato, però quindi mi sfugge come avrebbe potuto utilizzarlo
framan82 dalla sua applicazione.
Ciao
Fritz
>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