Đọc và ghi file PDF trong Java với iText

iText là một thư viện được tạo ra bởi Bruno Lowagie cho phép tạo, chỉnh sửa và đọc các file PDF. Trong bài viết này chúng ta sẽ cùng nhau tìm hiểu cách sử dụng iText để thực hiện các thao tác cơ bản với file PDF.

Maven dependency

Để sử dụng iText chúng ta cần thêm dependency sau vào dự án maven:

        <dependency>
            <groupId>com.itextpdf</groupId>
            <artifactId>itextpdf</artifactId>
            <version>5.5.10</version>
        </dependency>

Cách ghi file PDF

Để ghi file PDF với iText chúng ta cần sử dụng PdfWriter 

import com.itextpdf.text.*;
import com.itextpdf.text.pdf.PdfWriter;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

public class PdfWriteExample {

    private static final String FILE_NAME = "/tmp/itext.pdf";

    public static void main(String[] args) {
        writeUsingIText();
    }

    private static void writeUsingIText() {

        Document document = new Document();

        try {

            PdfWriter.getInstance(document, new FileOutputStream(new File(FILE_NAME)));

            //open
            document.open();

            Paragraph p = new Paragraph();
            p.add("This is my paragraph 1");
            p.setAlignment(Element.ALIGN_CENTER);

            document.add(p);

            Paragraph p2 = new Paragraph();
            p2.add("This is my paragraph 2"); //no alignment

            document.add(p2);

            Font f = new Font();
            f.setStyle(Font.BOLD);
            f.setSize(8);

            document.add(new Paragraph("This is my paragraph 3", f));

            //close
            document.close();

            System.out.println("Done");
         
        } catch (FileNotFoundException | DocumentException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

    }
}

Kết quả chúng ta sẽ có file PDF như sau

Cách đọc file PDF

Tương tự chúng ta sẽ cần dùng đến PdfReader được cung cấp bởi iText để đọc một file PDF

import com.itextpdf.text.pdf.PdfReader;
import com.itextpdf.text.pdf.parser.PdfTextExtractor;

import java.io.IOException;

public class PdfReadExample {

    private static final String FILE_NAME = "/tmp/itext.pdf";

    public static void main(String[] args) {

        PdfReader reader;

        try {

            reader = new PdfReader("f:/itext.pdf");

            // pageNumber = 1
            String textFromPage = PdfTextExtractor.getTextFromPage(reader, 1);

            System.out.println(textFromPage);

            reader.close();

        } catch (IOException e) {
            e.printStackTrace();
        }

    }

}

Kết quả

This is my paragraph 1
This is my paragraph 2
This is my paragraph 3

Các class cơ bản trong iText

Qua các phần trên chúng ta có thể thấy PdfWriterPdfReader là 2 class được sử dụng chính trong thư viện dùng để đọc, ghi file PDF. Bên cạnh đó một số class phụ trợ như:

  • Document – là một object đại diện cho một file PDF
  • Paragraph – là một loại nội dung có thể ghi vào file PDF, ngoài ra còn một số loại khác như AnchorChapterSectionListPdfPTable tương ứng với những nội dung tương ứng như dạng bảng, danh sách v.v

 

3.5 2 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x