Non ho postato un messaggio con il codice dell'applicazione, ma se ti serve eccolo:
codice:
import java.io.*;
import com.lowagie.text.*;
import com.lowagie.text.pdf.*;

public class Accoda {
   public static void accodaPDF(String [] files, String fileOut) {
      try {
         PdfReader reader = null;
         PdfImportedPage page = null;
         Document doc = new Document(PageSize.A4,2,2,2,2);
         FileOutputStream fos = new FileOutputStream(fileOut);
         PdfCopy copy = new PdfCopy(doc, fos);
         doc.open();
         for (int i=0; i<files.length; i++) {
            reader = new PdfReader( files[i] );
            for (int j=0; j<reader.getNumberOfPages(); j++) {
               page = copy.getImportedPage(reader, j+1);
               copy.addPage( page );
            }
            reader = null;
            if ( !(new File(files[i])).delete() ) {
               System.out.println("Impossibile eliminare il file " + files[i]);
            }
         }
         doc.close();
      } catch (Exception e) { e.printStackTrace(); }
   }
}
La classe è parte di una applicazione un po' più imponente, ma non è difficile farla diventare una applicazione a se stante.
E' necessaria la libreria iText (scaricabile gratuitamente).

Documentazioe:
files: un array contenente tutti i nomi di file dei PDF da unire (l'ordine dei nomi determina l'ordine all'interno del PDF generato)

fileOut: il nome del file da generare che conterrà tutti i PDF riuniti.


Ciao.