# pdf erstellen



## magic_halli (10. Sep 2006)

Hallo,

ist es möglich, aus mehreren pdf´s in einem Verzeichnis ein großes pdf zu erstellen - ist dies generell überhaupt machbar und vielleicht auch mittels Java?

Gruß Rico.


----------



## SilentJ (11. Sep 2006)

Mit Mitteln des JDK nicht. Es gibt Bibliotheken wie z.B. PDFBox (googlen), aber ich glaube nicht, dass es wirklich stabile Lösungen für Java gibt. Wenn ich mich hierbei irren sollte, wäre das aber auch nicht schlecht.


----------



## kama (11. Sep 2006)

Hallo,

es gibt hier genug davon.

MfG
Karl Heinz Marbaise


----------



## robertpic71 (11. Sep 2006)

Bei iText sind Tools dabei - darunter auch ein Concat PDF.

Hier der Link zur API.
--> tools --> concatPDF 

Zur Stabilität:
Ich hänge zwar immer nur eine Seite (Geschäftsbedinungen) an, aber wir erzeugen pro Tag zwischen 300-500 PDF's ohne Probleme (mit iText).


----------



## magic_halli (11. Sep 2006)

Vielen Dank erstmal... ich schaue mir die ganze Sache mal in Ruhe an.


----------



## magic_halli (13. Sep 2006)

So, ich hab mir mal Eure Vorschläge angeschaut... bin mir aber nicht sicher, was ich wohl nehmen soll - iText oder PDF Box?!

Wie schon gesagt, ich will mehrere pdf´s im Verzeichnis (bis zu 100!) zu einem großen pdf zusammenfassen. Hinzu kommt noch, das diese pdf´s unterschiedliche Seitenformate haben (A4, A3 usw.).
Würde da mein Plan auch funktionieren, oder kann man nur pdf´s mit gleichen Formaten zu einer zusammenfassen?

Hat vielleicht jemand zur Veranschaulichung ein kleines Codefragment, wie ich z.B. 2 pdf-Files zu einem verschmelze?

Danke.


----------



## magic_halli (14. Sep 2006)

Hi,

ich habe mich für iText entschieden und jetzt eine Funktion gebaut, die mir alle pdf-Files eines Verzeichnisses zu einem großen File zusammenfügt und dabei gleichzeitig die Seitenanzahl der einzelnen pdf´s berücksichtigt.

```
public void summaryPDF(Session curSession) throws jxthrowable{
		//enthält alle pdf-Dateinamen vom Arbeitsverzeichnis
		ArrayList matchesPDF = listPDF(curSession);
		//legt Speicherpfad fest
		String path = curSession.GetCurrentDirectory();
		
		try{
			//sortiert die ArrayList mittels Comparator-Interface
			Collections.sort(matchesPDF, comparator);
			
			//erzeugt einen Reader - nimmt 1.Element vom sortierten Matches
			PdfReader reader = new PdfReader(path + matchesPDF.get(0));
			//Dokument-Objekt erzeugen
			Document document = new Document(reader.getPageSizeWithRotation(1));
			//erstellt neues pdf
			PdfCopy copy = new PdfCopy(document, new FileOutputStream(path + "gesamt.pdf"));
			//öffnet neues pdf zur Bearbeitung
			document.open();
			
			for(int i=0;i<matchesPDF.size();i++){
				//ließt vorhandenes pdf aus Verzeichnis ein
				reader = new PdfReader(path+matchesPDF.get(i));
				//Anzahl der Seiten ermitteln
				int n = reader.getNumberOfPages();
				
				//fügt eingelesenes pdf zu neuem pdf hinzu und beachtet Seitenanzahl
                for (int p = 0; p < n; ) {
                	p++;
                	//Seitenanzahl der einzelnen pdf´s berücksichtigen und korrekt adden
                    copy.addPage(copy.getImportedPage(reader, p));
                }
			}
			//schließt neues pdf nach Bearbeitung
			document.close();
			
		}catch(Exception err){
			JOptionPane.showMessageDialog(null, err);
		}
	}
```

Gibts mit iText die Möglichkeit, an das neu erstellte pdf-File noch ein Inhaltsverzeichnis ranzuhängen???


----------



## thE_29 (14. Sep 2006)

Wir erzeugen zig tausende PDFs via iText und es läuft problemlos!


----------



## magic_halli (14. Sep 2006)

> Wir erzeugen zig tausende PDFs via iText und es läuft problemlos!



Bei mir läuft das auch problemlos! Ich habe in meinem letzten Post doch auch nichts gegenteiliges behauptet?!

Ich wollte lediglich wissen, ob und wie man ein Inhaltsverzeichnis erstellen kann!!!


----------



## thE_29 (14. Sep 2006)

Guck dir mal die grafische Oberfläche an!

JAsperReports heißt das Teil!

Das basiert auf iText!

http://jasperforge.org/sf/projects/jasperreports


----------



## magic_halli (14. Sep 2006)

Danke, aber ich will nicht eine  Lösung, von der ich nicht weiß, wie sie implementiert ist usw., in mein Programm integrieren. Ich will eigentlich nur eine (oder mehrere) iText-Methoden verwenden, um ein Inhaltsverzeichnis in mein erstelltes pdf einzufügen.

Ich kenne aber eben leider nicht die geeigneten Klassen und Methoden hierfür.


----------

