itext
PDF 생성 : iText 5 대 iText 7
수색…
비고
iText를 원래 설계에서, 높은 수준의 만들 수 있었다 Document 객체를 한 다음 다른이 DocListener 그 듣고 객체 Document 객체를. 이는 PdfWriter , HTMLWriter 및 RtfWriter 와 같은 여러 작성자를 사용하여 수행되었습니다. 사용하는 경우 PdfWriter 하는 PdfDocument 내부적으로 만들었습니다. 이 저수준 클래스는 모든 PDF 관련 구조를 처리했습니다. 다른 형식에서도 마찬가지입니다.
수년에 걸쳐, iText는 전문화되고 순수한 PDF 도서관이되었습니다. HTML과 RTF의 생성은 중단되었으므로 PdfWriter 를 만들기 전에 더 이상 Document 를 만들 필요가 없었 PdfWriter . 그러나 우리는 API를 깨뜨릴 준비가되지 않았기 때문에 원래 아키텍처를 고수해야했습니다.
수년 동안 우리는 iText에 점점 더 많은 PDF 기능을 추가했으며, PdfDocument 가 내부 용 클래스라는 사실은 문제가되었습니다. 우리는 대안을 사용하여 PdfDocument 클래스에 속한 새로운 PDF 기능을 도입하여 해결 방법으로 받아 PdfDocument 수준까지 도달했습니다.
그 때 우리는 iText를 처음부터 다시 작성하고 iText에 대한 완전히 새로운 아키텍처를 만들기로 결정했습니다. 이제 PdfDocument (낮은 수준의 작업)와 Document (높은 수준의 기능)를 구분했습니다. 우리는 더 이상 문서를 열 필요가 없으며 자원을 사용 해보는 방식을 사용하는 경우 자체적으로 문서를 닫을 필요조차 없습니다.
더 알고 싶으십니까? 무료 전자 책을 받으십시오!
HelloWorld.java (iText 5)
간단한 Hello World 문서를 만들고 싶다고합시다.
iText 5에서는 다음과 같이 처리됩니다.
public void createPdf(String dest)
throws DocumentException, IOException {
Document document = new Document();
PdfWriter.getInstance(
document, new FileOutputStream(dest));
document.open();
document.add(new Paragraph("Hello World!"));
document.close();
}
HelloWorld1.java 및 HelloWorld2.java (iText 7)
간단한 Hello World 문서를 만들고 싶다고 가정 해 보겠습니다.
iText 7에서는 다음과 같이 할 수 있습니다.
public void createPdf(String dest) throws IOException {
PdfDocument pdf = new PdfDocument(new PdfWriter(dest));
Document document = new Document(pdf);
document.add(new Paragraph("Hello World!"));
document.close();
}
또는 다음과 같이 할 수도 있습니다.
public void createPdf(String dest) throws IOException {
PdfDocument pdf = new PdfDocument(new PdfWriter(dest));
try (Document document = new Document(pdf)) {
document.add(new Paragraph("Hello World!"));
}
}
출처 : developers.itextpdf.com 및 iText 7 : Building Blocks 튜토리얼.

