Condividi:        

Sequenza immagini a PDF

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

Sequenza immagini a PDF

Postdi JClark » 19/07/07 09:41

Ciao a tutti

avevo il problema di creare un PDF che fosse la raccolta di una serie di immagini (oltre 150).

Strumenti utilizzati:
1) Microsoft Word
2) PDF995 per generare gratis file PDF usando una stampante virtuale

Vi propongo la mia soluzione:
1) ho messo tutte le immagini in formato jpg in una directory di mia scelta e per non avere un path troppo lungo l'ho creata sotto radice c:\ImgMerge
2) le immagini le ho nominate in sequenza "Immagine n.001" fino a "Immagine n.151"
3) ho aperto un documento word e ho creato questa macro in VBA
4) io ho messo il foglio in orizzontale (landscape) ed ho fatto adattare di conseguenza le immagini impostando le proporzioni a 466 per l'altezza e 708 per la larghezza. Con il foglio in verticale (portrait) basta invertire questi valori.

Macro (copiare il testo da Sub a End Sub)
--------------------------------------------------------------

Sub IncorporaImmagini()
' contatore immagini
Dim nCounter As Integer
' contatore file in formato testo
Dim nCounterFile As String

' ciclo dalla prima pagina 000 alla ennesima
For nCounter = 0 To 151

' creo il contatore in formato testo nel formato corretto
' va bene da 000 fino a 999, oltre bisogna aggiungere la if-condition adeguata aumentando di conseguenza gli 0 nelle altre

If nCounter < 1000 Then nCounterFile = nCounter
If nCounter < 100 Then nCounterFile = "0" & nCounter
If nCounter < 10 Then nCounterFile = "00" & nCounter

' inserisco l'ennesima immagine
Selection.InlineShapes.AddPicture FileName:="C:\ImgMerge\Immagine n." & nCounterFile & ".jpg", LinkToFile:=False, SaveWithDocument:=True
' seleziono l'immagine
Documents.Item(1).Select
' imposto altezza e larghezza
Selection.InlineShapes(a + 1).Height = 466
Selection.InlineShapes(a + 1).Width = 708

' vado a fine documento
Selection.EndKey Unit:=wdStory
' inserisco un ritorno a capo
Selection.TypeParagraph
' inserisco un'interruzione di pagina
Selection.InsertBreak Type:=wdPageBreak
Next
End Sub

--------------------------------------------------------------

5) Ad elaborazione terminata, ho lanciato la stampa con PDF955 ed ho ottenuto un unico file.pdf

Siccome mi ha fatto perdere un po' di tempo ho pensato che magari poteva servire a qualcun altro ...

Saluti
Frank

P.S. il codice non è ottimizzato, ma l'elaborazione si completa in meno di 1 minuto, molto meno che copiare e incollare a mano tutte le img nel file ... ed è anche più divertente !!!

PP.SS.
se qualcuno ha una soluzione migliore me lo faccia sapere.
Il brutto tempo non esiste ... il brutto tempo è quello che passo senza andare in moto !

Bye Frank
:-)
JClark
Utente Senior
 
Post: 416
Iscritto il: 24/09/01 01:00
Località: Voghera

Sponsor
 

Postdi Anthony47 » 19/07/07 23:46

Ciao Frank.
Secondo me la migliore soluzione e' quella che funziona, quindi io la lascerei cosi'.
TUTTAVIA, potresti guardare questo topic dove c' e' del codice usabile per cercare e poi gestire tutti i file di un certo tipo (li' sono *.xls) presenti in una directory, basata su FileSearch.
http://www.pc-facile.com/forum/viewtopic.php?t=64019
Magari potresti inglobarlo nella tua macro per renderla piu' modulare; nel caso ti servisse, puoi ordinare i nome file usando questa istruzione invece della .Execute usata nella macro di ferrox82.

Codice: Seleziona tutto
If .Execute(SortBy:=msoSortbyFileName, SortOrder:=msoSortOrderAscending) = 0 Then


Se ti serve aiuto nella gestione di quel codice, siamo qua.
Ciao.
Avatar utente
Anthony47
Moderatore
 
Post: 19438
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "Sequenza immagini a PDF":


Chi c’è in linea

Visitano il forum: Nessuno e 68 ospiti