나는 100k 개 이상의 pdf 파일을 병합하는 방법에 대해 물어보고 싶습니다 (약 160KB의 각 PDF 파일을 1 개의 pdf 파일로 병합 하시겠습니까?많은 pdf를 병합하는 방법
나는 이미 그 코드는 몇 PDF에 대한 노력이 튜토리얼을 읽어 보시기 바랍니다. 그러나 10k pdf 파일에 대해이 오류가 발생했습니다. "java.lang.OutOfMemoryError : GC 오버 헤드 한도가 초과되었습니다"
이미 -Xmx 또는 -Xms를 사용하여 시도했지만 오류가 "Java 힙 공간"이됩니다.
"pdf.flushCopiedObjects (firstSourcePdf);"도 사용하고 있습니다. " 도움이되지 않습니다. 아니면 내가 잘못 사용하고 있을까요?
File file = new File(pathName);
File[] listFile = file.listFiles();
if (listFile == null) {
throw new Exception("File not Found at " + pathName);
}
Arrays.sort(listFile, 0, listFile.length - 1);
PdfADocument pdf = new PdfADocument(new PdfWriter(dest),
PdfAConformanceLevel.PDF_A_1A,
new PdfOutputIntent("Custom", "", "http://www.color.org",
"sRGB IEC61966-2.1", null));
//Setting some required parameters
pdf.setTagged();
pdf.getCatalog().setLang(new PdfString("en-US"));
pdf.getCatalog().setViewerPreferences(
new PdfViewerPreferences().setDisplayDocTitle(true));
PdfDocumentInfo info = pdf.getDocumentInfo();
info.setTitle("iText7 PDF/A-1a example");
//Create PdfMerger instance
PdfMerger merger = new PdfMerger(pdf);
//Add pages from the first document
for (File filePdf : listFile) {
System.out.println("filePdf = " +filePdf.getName());
PdfDocument firstSourcePdf = new PdfDocument(new PdfReader(filePdf));
merger.merge(firstSourcePdf, 1, firstSourcePdf.getNumberOfPages());
pdf.flushCopiedObjects(firstSourcePdf);
firstSourcePdf.close();
}
pdf.close();
는 PDF 문서 (또는 대형 PDF 파일)의 많은 양을 병합 할 때 당신은
두 번째 링크와 어떤 제휴 관계가 있습니까? 그렇다면 [자체 승격에 관한 규칙] (/ help/promotion)에 명시 적으로 명시해야합니다. – Glorfindel
HexaPDF가 귀하의 제품 일 경우, 링크를 클릭하면 협회를 공개해야합니다. 그렇지 않으면 스팸으로 간주 될 수 있습니다. –
죄송합니다. 감사합니다. 방금 그 대답을 편집했습니다. – gettalong