ich bin nicht so gut in Java, aber aufgrund der Tatsache, dass Talend Studio nicht unterstützt PDF-Splitting und Merging musste ich suchen eine andere Lösung.java.lang.ArrayIndexOutOfBoundsException: 0 bei pdfsplitter.SplitPDFFile.main (SplitPDFFile.java:19)
Um meine Situation zu erklären:
Die Aufgabe hier ist es, eine PDF-Datei mit n-Seiten in n-PDF-Dateien zu teilen. (Eins für jede Seite). Danach muss ich jede von dort PDF-Dateien mit einem anderen Fixed PDF zusammenführen. (Erstellung von Briefsendungen mit einzelnen Anfänge und feste Anhänger)
Das PDF, ich will, spalten wird automatisch in Talend erstellt „TJasperReportExec“ mit einer konkreten Vorlage verwendet, die Unterstützung ist nicht (afaik) die Spaltung von PDF-Dateien als auch .
Nach einigen Recherchen fand ich, dass Code:
package pdfsplitter;
import java.io.FileOutputStream;
import com.lowagie.text.Document;
import com.lowagie.text.pdf.PdfCopy;
import com.lowagie.text.pdf.PdfImportedPage;
import com.lowagie.text.pdf.PdfReader;
public class SplitPDFFile {
/**
* @param args
*/
public static void main(String[] args) {
try {
String inFile = args[0].toLowerCase();
System.out.println ("Reading " + inFile);
PdfReader reader = new PdfReader(inFile);
int n = reader.getNumberOfPages();
System.out.println ("Number of pages : " + n);
int i = 0;
while (i < n) {
String outFile = inFile.substring(0, inFile.indexOf(".pdf"))
+ "-" + String.format("%03d", i + 1) + ".pdf";
System.out.println ("Writing " + outFile);
Document document = new Document(reader.getPageSizeWithRotation(1));
PdfCopy writer = new PdfCopy(document, new FileOutputStream(outFile));
document.open();
PdfImportedPage page = writer.getImportedPage(reader, ++i);
writer.addPage(page);
document.close();
writer.close();
}
}
catch (Exception e) {
e.printStackTrace();
}
/* example :
java SplitPDFFile d:\temp\x\tx.pdf
Reading d:\temp\x\tx.pdf
Number of pages : 3
Writing d:\temp\x\tx-001.pdf
Writing d:\temp\x\tx-002.pdf
Writing d:\temp\x\tx-003.pdf
*/
}
}
Die hier Fehler scheint der Wert von args [] nach der Definition des Namens des String zu sein.
Nach der Suche nach einer Lösung und versuchen, es auf verschiedene Arten zu beheben, wurde der Fehler nicht einmal behoben. Einige Ratschläge oder eine Verbindung mit einer richtigen Lösung wäre nett.
Vielen Dank im Voraus,
Ulonis
'args [0]' ist der Wert des ersten Parameters auf die 'java' ausführbare gegeben, wenn diese Klasse startet, haben Sie ein zur Verfügung stellen? – Aaron
Wenn Sie den Java-Code ausführen, müssen Sie zur Laufzeit Argumente übergeben. Es gibt nichts in args [] und daher Array außerhalb des Bereichs. Nehmen Sie das zum Beispiel - http://stackoverflow.com/questions/890966/what-is-string-args-parameter-in-main-method-java – yashpandey
Beantwortete das Problem jetzt. Immer noch ein großes Danke für euch beide. :) – Ulonis