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.