私はJavaではうまくいませんが、実際にはTalend StudioはPDF分割とマージをサポートしていませんでした。もう一つの解決策。java.lang.ArrayIndexOutOfBoundsException:0 at pdfsplitter.SplitPDFFile.main(SplitPDFFile.java:19)
私の状況を説明するには:ここでのタスクは、n-PDFファイルにnページでPDFを分割することです
を。 (各ページに1つずつ)。 その後、PDFファイルを別の固定PDFとマージする必要があります。
分割したいPDFは、「TJasperReportExec」を使ってTalendで自動的に作成され、PDFファイルの分割もサポートしていない(afaik)具体的なテンプレートで作成されます。
いくつかの研究の後、私はそのコードを見つけた:
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
*/
}
}
ここでエラーが文字列の名前を定義した後、[]引数の値であるように思われます。
ソリューションを検索し、さまざまな方法で修正しようとすると、エラーは一度修正されませんでした。 いくつかのアドバイスや適切な解決策とのリンクが良いでしょう。事前に
おかげで、
Ulonis
'引数[0]'このクラスの起動時に 'java'実行可能に与えられた最初のパラメータの値であり、1つを提供したのですか? – Aaron
Javaコードを実行すると、実行時に引数を渡す必要があります。 args []には何もありませんので、配列は範囲外です。例えばこれを取る - http://stackoverflow.com/questions/890966/what-is-string-args-parameter-in-main-method-java – yashpandey
今すぐ問題に答える。それでも大変ありがとうございました。 :) – Ulonis