가능한 해결책은 다음과 같습니다. 그것은 당신이 원하는 해결책이 아닐지도 모르지만, 우리의 잘못이 아니기 때문에 우리가 당신의 의도를 짐작하게합니다.
은 한 페이지가있는 PDF 문서를 가지고 있다고 가정하자 : state.pdf
은 다음과 같습니다 있도록,이 페이지에 텍스트를 추가 할 : california.pdf
당신은하고 싶지 않아 이 경우 united_states_2.pdf
, 당신은 다른 결합하는 (그리고 PdfSmartCopy
합니다 (하나의 페이지에 콘텐츠를 추가하는) PdfStamper
의 조합을 필요 :이 한 번,하지만 당신은 당신이 얻을 수 있도록이 여러 번 수행 할 bloating하지 않고 페이지 메모).
이것은 FillFlattenMerge2 예에 표시됩니다
public void manipulatePdf(String src, String dest) throws DocumentException, IOException {
Document document = new Document();
PdfCopy copy = new PdfSmartCopy(document, new FileOutputStream(dest));
document.open();
ByteArrayOutputStream baos;
PdfReader reader;
PdfStamper stamper;
AcroFields fields;
StringTokenizer tokenizer;
BufferedReader br = new BufferedReader(new FileReader(DATA));
String line = br.readLine();
while ((line = br.readLine()) != null) {
// create a PDF in memory
baos = new ByteArrayOutputStream();
reader = new PdfReader(SRC);
stamper = new PdfStamper(reader, baos);
fields = stamper.getAcroFields();
tokenizer = new StringTokenizer(line, ";");
fields.setField("name", tokenizer.nextToken());
fields.setField("abbr", tokenizer.nextToken());
fields.setField("capital", tokenizer.nextToken());
fields.setField("city", tokenizer.nextToken());
fields.setField("population", tokenizer.nextToken());
fields.setField("surface", tokenizer.nextToken());
fields.setField("timezone1", tokenizer.nextToken());
fields.setField("timezone2", tokenizer.nextToken());
fields.setField("dst", tokenizer.nextToken());
stamper.setFormFlattening(true);
stamper.close();
reader.close();
// add the PDF to PdfCopy
reader = new PdfReader(baos.toByteArray());
copy.addDocument(reader);
reader.close();
}
br.close();
document.close();
}
이 질문을 명확히하십시오, 당신이 원하는하지 않은 경우. 어쨌든이 답변은 귀하의 질문에 대한 여러 가지 가능한 해석 중 하나입니다.
아마도 매우 쉽습니다. 아마도 매우 어렵습니다. 그것은 모두 당신이 적용하고자하는 * 작은 텍스트 변경 *의 성격에 달려 있습니다. 당신은 정교 할 수 있습니까? –
한 페이지의 텍스트가 한 페이지 씩 변경됩니다. 하지만 기본적으로 내가 필요로하는 것은 문서에서 한 페이지를 'n'번 복제하는 것입니다. 예를 들어, PAGE 1을 만들고 지금 PAGE 3과 PAGE 4가 PAGE 1과 같아야합니다. –
제 대답에 표시된대로'PdfSmartCopy'를 사용하지 못하게 막습니까? –