수색…


비고

iText 5에서는 열의 내용을 구성하려는 경우 add() 메서드를 사용하여 ParagraphDocument 에 추가 할 수 없습니다. 우리는 Text2Pdf.java (iText 5) 예제의 코드를 재사용 할 수 없다.

대신 우리는 ColumnText 객체를 만들어야합니다. 모든 Paragraph 객체를이 객체에 추가해야합니다. 일단 모든 내용을 추가하면 go() 메소드를 사용하여 해당 내용 렌더링을 시작할 수 있습니다. 그렇게하는 동안 우리는 열을 추적하고 필요할 때 새로운 페이지를 만들어야합니다.

우리가 iText 7에서 수정 한 것 :

iText 7을 사용하면 Text2Pdf.java (iText 7) 예제의 코드를 복사하여 붙여 넣을 수 있습니다. 이전과 같은 방법으로 add() 메서드를 계속 사용할 수 있습니다. 내용을 하나가 아닌 두 개의 열로 렌더링하려는 경우 간단히 문서 렌더러를 변경해야합니다.

Rectangle[] columns = {
    new Rectangle(36, 36, 254, 770),
    new Rectangle(305, 36, 254, 770)};
document.setRenderer(new ColumnDocumentRenderer(document, columns));

더 알고 싶으십니까?

iText 7 : Building Blocks 튜토리얼의 5 장에 있는 RootElement로 작업하기를 읽으십시오. 무료 전자 책을 받으십시오!

Text2PdfColumns.java (iText 5)

다음 텍스트 파일이 있다고 가정합니다. jekyll_hyde.txt

다음과 같이 PDF로 변환하려면 어떻게해야합니까?

여기에 이미지 설명을 입력하십시오.

iText 5를 사용할 때 다음과 같은 코드가 필요합니다.

public void createPdf(String dest)
throws DocumentException, IOException {
    Document document = new Document();
    PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(dest));
    document.open();
    ColumnText ct = new ColumnText(writer.getDirectContent());
    BufferedReader br = new BufferedReader(new FileReader(TEXT));
    String line;
    Paragraph p;
    Font normal = new Font(FontFamily.TIMES_ROMAN, 12);
    Font bold = new Font(FontFamily.TIMES_ROMAN, 12, Font.BOLD);
    boolean title = true;
    while ((line = br.readLine()) != null) {
        p = new Paragraph(line, title ? bold : normal);
        p.setAlignment(Element.ALIGN_JUSTIFIED);
        title = line.isEmpty();
        ct.addElement(p);
    }
    Rectangle[] columns = {
        new Rectangle(36, 36, 290, 806), new Rectangle(305, 36, 559, 806)
    };
    int c = 0;
    int status = ColumnText.START_COLUMN;
    while (ColumnText.hasMoreText(status)) {
        ct.setSimpleColumn(columns[c]);
        status = ct.go();
        if (++c == 2) {
            document.newPage();
            c = 0;
        }
    }
    document.close();
}

출처 : developers.itextpdf.com

Text2PdfColumns.java (iText 7)

다음 텍스트 파일이 있다고 가정하십시오. jekyll_hyde.txt

다음과 같이 PDF로 변환하려면 어떻게해야합니까?

여기에 이미지 설명을 입력하십시오.

iText 7을 사용할 때 다음과 같은 코드가 필요합니다.

public void createPdf(String dest) throws IOException {
    PdfDocument pdf = new PdfDocument(new PdfWriter(dest));
    Document document = new Document(pdf)
        .setTextAlignment(TextAlignment.JUSTIFIED);
    Rectangle[] columns = {
        new Rectangle(36, 36, 254, 770),
        new Rectangle(305, 36, 254, 770)};
    document.setRenderer(new ColumnDocumentRenderer(document, columns));
    BufferedReader br = new BufferedReader(new FileReader(TEXT));
    String line;
    PdfFont normal = PdfFontFactory.createFont(FontConstants.TIMES_ROMAN);
    PdfFont bold = PdfFontFactory.createFont(FontConstants.TIMES_BOLD);
    boolean title = true;
    while ((line = br.readLine()) != null) {
        document.add(new Paragraph(line).setFont(title ? bold : normal));
        title = line.isEmpty();
    }
    document.close();
}

출처 : developers.itextpdf.comiText 7 : Building Blocks 튜토리얼.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow