챕터 및 하위 챕터 iText 함께 pdf 파일을 만들려고합니다. 이전 클래스의 챕터 클래스를 사용하여 이전 버전의 예제를 발견했습니다. 그러나이 클래스는 iText 7에 포함되지 않습니다.챕터 iText 7
iText7에서이 기능은 어떻게 구현됩니까?
챕터 및 하위 챕터 iText 함께 pdf 파일을 만들려고합니다. 이전 클래스의 챕터 클래스를 사용하여 이전 버전의 예제를 발견했습니다. 그러나이 클래스는 iText 7에 포함되지 않습니다.챕터 iText 7
iText7에서이 기능은 어떻게 구현됩니까?
iText 5의 Chapter
및 Section
클래스는 문제가있었습니다. 이미 iText 5를 사용하여 사람들에게 PdfOutline
을 사용하도록 권유했습니다.
챕터를 만드는 방법에 대한 예를 들어, 북마크 패널의 해당 윤곽선을 보려면 iText 7: Building Blocks 자습서를 참조하십시오. 이 튜토리얼은 소설 "지킬 박사와 하이드 박사의 이상한 사례"라는 주제를 반복적으로 가지고 있습니다.
iText 7의 작동 방식을 설명하기 위해이 텍스트와이 소설을 기반으로 한 영화가있는 데이터베이스를 사용합니다. 읽을 시간이 없으면 Chapter 6으로 이동하십시오.
당신은 여기에 전체 샘플 코드를 다운로드 할 수 있습니다 :이 예에서는 TOC_OutlinesDestinations
BufferedReader br = new BufferedReader(new FileReader(SRC));
String name, line;
Paragraph p;
boolean title = true;
int counter = 0;
PdfOutline outline = null;
while ((line = br.readLine()) != null) {
p = new Paragraph(line);
p.setKeepTogether(true);
if (title) {
name = String.format("title%02d", counter++);
outline = createOutline(outline, pdf, line, name);
p.setFont(bold).setFontSize(12)
.setKeepWithNext(true)
.setDestination(name);
title = false;
document.add(p);
}
else {
p.setFirstLineIndent(36);
if (line.isEmpty()) {
p.setMarginBottom(12);
title = true;
}
else {
p.setMarginBottom(0);
}
document.add(p);
}
}
을, 우리는 루프를 통해 본 장에서는
, 우리는 다음과 같습니다 문서를 만들 제목과 장이 들어있는 텍스트 파일. 제목을 만날 때마다name
(
title01
,
title02
등)을 만들고 제목 단락의 이름이 지정된 대상인
setDestination(name)
을이 이름으로 사용합니다. 이 결과를 달성하기 위해 다른 방법이 있습니다
PdfDestination.makeDestination(new PdfString(name))
public PdfOutline createOutline(PdfOutline outline, PdfDocument pdf, String title, String name) {
if (outline == null) {
outline = pdf.getOutlines(false);
outline = outline.addOutline(title);
outline.addDestination(PdfDestination.makeDestination(new PdfString(name)));
return outline;
}
PdfOutline kid = outline.addOutline(title);
kid.addDestination(PdfDestination.makeDestination(new PdfString(name)));
return outline;
}
있지만라는 이름의 목적지를 사용하는 것이 가장 간단한 방법입니다 :
우리는 우리가이 같은 명명 된 대상을 정의하는위한 PdfOutline
객체를 사용하여 윤곽을 만들 수 있습니다. 이 예제의 복잡성은 대부분 간단한 텍스트 파일을 챕터 제목과 장 내용이있는 문서로 변환한다는 사실을 발견하게 될 것입니다.