1. Trang chủ
  2. » Công Nghệ Thông Tin

Tạo động các tài liệu PDF từ ứng dụng Java doc

11 477 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Tạo động các tài liệu PDF từ ứng dụng Java
Trường học Trường Đại Học Công Nghệ Thông Tin
Chuyên ngành Công Nghệ Thông Tin
Thể loại bài viết
Năm xuất bản 2025
Thành phố Hà Nội
Định dạng
Số trang 11
Dung lượng 217,51 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Trong bài này, chúng tôi sẽ sử dụng thư viện Java iText để tạo ra các tài liệu PDF.. Thư viện iText chứa các lớp để tạo ra văn bản PDF theo các phông chữ khác nhau, tạo ra các bảng trong

Trang 1

Tạo động các tài liệu PDF từ ứng dụng Java

Nhiều ứng dụng yêu cầu tạo động các tài liệu PDF Các ứng dụng như vậy trải rộng từ việc các ngân hàng tạo các báo cáo khách hàng để gửi qua email đến các độc giả mua các chương của cuốn sách cụ thể và nhận chúng dưới định dạng PDF Danh sách này là vô tận Trong bài này, chúng tôi sẽ sử dụng thư viện Java iText để tạo ra các tài liệu PDF Chúng tôi sẽ đưa bạn qua một ứng dụng ví dụ mẫu để bạn có thể tự mình thực hiện nó và hiểu nó tốt hơn

Làm quen với phiên bản 5.3.0 của iText

iText là một thư viện Java có sẵn miễn phí từ http://itextpdf.com/ (xem phần Tài nguyên) Thư viện iText mạnh mẽ và hỗ trợ việc tạo các tài liệu HTML, RTF và XML, ngoài việc tạo các tệp PDF Bạn có thể chọn một loạt các phông chữ để sử dụng trong tài liệu Ngoài ra, cấu trúc của iText cho phép bạn tạo ra bất kỳ các kiểu tài liệu nào đã nói ở trên bằng mã tương tự

Thư viện iText chứa các lớp để tạo ra văn bản PDF theo các phông chữ khác nhau, tạo ra các bảng trong tài liệu PDF, thêm các hình mờ vào các trang và v.v Còn có nhiều tính năng hơn nữa

có sẵn trong iText Không thể trình bày tất cả chúng chỉ trong một bài viết Chúng tôi sẽ trình bày các vấn đề cơ bản cần thiết để tạo PDF Để biết thêm thông tin chi tiết, hãy tham khảo tài liệu hướng dẫn về iText từ nhà cung cấp (xem phần Tài nguyên)

Chúng tôi sẽ sử dụng Eclipse để phát triển ứng dụng ví dụ mẫu của mình Là một IDE nguồn mở, Eclipse hoàn toàn miễn phí và khá mạnh Bạn có thể tải về Eclipse ngay bây giờ (xem phần Tài nguyên)

IText API: Xem xét kỹ hơn

Lớp com.itextpdf.text.Document là lớp chính để tạo tài liệu PDF Đây là lớp đầu tiên được khởi chạy Một khi đã tạo ra tài liệu, bạn cần có một trình viết để viết vào lớp đó

Com.itextpdf.text.pdf.PdfWriter là một trình viết PDF Một số các lớp thường dùng phổ biến khác được cho dưới đây:

com.itextpdf.text.Paragraph—Lớp này đại diện cho một đoạn thụt vào

com.itextpdf.text.Chapter—Lớp này đại diện cho một chương trong tài liệu PDF Nó

được tạo ra bằng cách sử dụng một Paragraph (đoạn) làm tiêu đề và một int làm số chương

com.itextpdf.text.Font—Lớp này chứa tất cả các đặc tả của một phông chữ, chẳng hạn

như họ các phông chữ, kích thước, kiểu dáng và màu sắc Các phông chữ khác nhau được khai báo như các hằng số tĩnh trong lớp này

com.itextpdf.text.List—Lớp này đại diện cho một danh sách, rồi danh sách này lại chứa

một số ListItems (các mục danh sách)

com.itextpdf.text.pdf.PDFPTable—Đây là một bảng có thể được đặt ở một vị trí tuyệt

đối, nhưng cũng có thể được thêm vào tài liệu làm lớp Table (bảng)

com.itextpdf.text.Anchor—Neo (Anchor) có thể là một tài liệu tham khảo hoặc một

đích đến của một tài liệu tham khảo

Trang 2

Tải về và cấu hình iText trong Eclipse

Là một thư viện Java thuần túy, iText tồn tại dưới dạng một tệp JAR (xem phần Tài nguyên) Một khi bạn đã tải về thư viện này (chẳng hạn, tại đường dẫn C:\temp), các bước sau đây sẽ cấu hình thư viện iText trong một môi trường Eclipse:

1 Tạo một dự án Java mới trong Eclipse có tên là iText

2 Nhấn chuột phải vào dự án iText trong khung nhìn Package Explorer và chọn Properties

3 Nhấn Java Build Path Trên tab Libraries, nhấn Add External JARs

4 Duyệt đến thư mục C:\ temp và chọn tệp iText-5.3.0.jar trong thư mục này

5 Nhấn OK

Bây giờ iText được cấu hình và Eclipse đã sẵn sàng tạo các ứng dụng Java để tạo động các tài liệu PDF

Về đầu trang

Ứng dụng ví dụ mẫu

Có điều gì tốt hơn khi chính bạn bắt tay vào xây dựng ứng dụng mẫu phải không? Bây giờ bạn

có các công cụ (Eclipse IDE) và các thư viện (thư viện iText) cần thiết, chúng ta đã sẵn sàng thiết kế và phát triển một chương trình chạy ví dụ mẫu

Hãy tạo ra một tài liệu PDF đơn giản có chứa một số phần tử cơ bản như văn bản thuần, văn bản màu có phông chữ không theo mặc định, bảng, danh sách, chương, phần, v.v Mục đích của ứng dụng này là để cho bạn quen với cách sử dụng thư viện iText Có rất nhiều lớp để thực hiện nhiều công việc cho bạn liên quan đến việc tạo tài liệu PDF Không thể trình bày tất cả các lớp

đó ở đây Javadocs của iText là một nguồn thông tin tốt về cách sử dụng các lớp đó Hãy bắt đầu viết mã

Bước đầu tiên là tạo một tài liệu Một tài liệu là thùng chứa cho tất cả các phần tử của một tài liệu PDF

Liệt kê 1 Tạo đối tượng tài liệu

Document document = new Document(PageSize.A4, 50, 50, 50, 50);

Đối số đầu tiên là kích thước trang (page size) Đối số tiếp theo tương ứng là các lề trái, phải, đầu trang và cuối trang Kiểu tài liệu này chưa được định nghĩa Nó phụ thuộc vào kiểu của trình writer mà bạn tạo Trong ví dụ mẫu của mình, chúng tôi chọn trình writer là

com.itextpdf.text.pdf.PdfWriter Những trình writer khác là HtmlWriter, RtfWriter, XmlWriter

và nhiều trình viết khác nữa Tên của chúng đã tự giải thích các mục đích của chúng rồi

Liệt kê 2 Tạo đối tượng PdfWriter

Trang 3

PdfWriter writer = PdfWriter.getInstance(document, \

new FileOutputStream("C:\\ITextTest.pdf"));

document.open();

Đối số đầu tiên là tài liệu tham chiếu đến đối tượng tài liệu và đối số thứ hai chỉ là tên đúng của tệp sẽ viết kết quả đầu ra vào Tiếp theo, chúng tôi mở tài liệu để viết

Bây giờ, chúng tôi sẽ thêm một đoạn văn bản vào trang đầu tiên của tài liệu Bất kỳ văn bản nào đều được thêm vào với sự trợ giúp của lớp com.itextpdf.text.Paragraph Bạn có thể tạo một đoạn mặc định trong văn bản của mình và các thiết lập mặc định về các phông chữ, màu sắc, kích thước và v.v Nếu không, bạn có thể cung cấp phông chữ riêng của mình Trong bài này, chúng tôi cũng sẽ thảo luận về anchor (neo liên kết) đến tài liệu PDF Trong tài liệu PDF này, chúng tôi

đã sử dụng backToTop làm liên kết Khi bạn nhấn chuột vào liên kết backToTop, nó sẽ đưa bạn đến trang đầu tiên của tài liệu Bạn cần thiết lập văn bản như là đích neo đến trang đầu tiên Chúng ta hãy xem cách thiết lập đích neo và thiết lập phông chữ cho đoạn văn bản đã thêm vào

Liệt kê 3 Tạo đối tượng đoạn văn bản

Anchor anchorTarget = new Anchor("First page of the document.");

anchorTarget.setName("BackToTop");

Paragraph paragraph1 = new Paragraph();

paragraph1.setSpacingBefore(50);

paragraph1.add(anchorTarget);

document.add(paragraph1);

document.add(new Paragraph("Some more text on the \

first page with different color and font type.",

FontFactory.getFont(FontFactory.COURIER, 14, Font.BOLD, new CMYKColor(0,

255, 0, 0))));

Hình 1 cho thấy kết quả đầu ra của mã ví dụ mẫu trong Liệt kê 3 Để đóng tài liệu lại, hãy thêm

document.close(); vào cuối đoạn mã trong Liệt kê 3

Trang 4

Hình 1 Kết quả đầu ra của mã ví dụ mẫu trong Liệt kê 3

Bạn chỉ cần xem cách thêm văn bản thuần vào tài liệu PDF Tiếp theo, chúng ta cần thêm một số phần tử phức tạp vào tài liệu này Hãy bắt đầu bằng việc tạo một chương mới Chương (chapter)

là một phần đặc biệt, bắt đầu bằng một trang mới và có một con số được hiển thị theo mặc định

Liệt kê 4 Tạo đối tượng chapter

Paragraph title1 = new Paragraph("Chapter 1",

FontFactory.getFont(FontFactory.HELVETICA,

18, Font.BOLDITALIC, new CMYKColor(0, 255, 255,17)));

Chapter chapter1 = new Chapter(title1, 1);

chapter1.setNumberDepth(0);

Trong đoạn mã của Liệt kê 4, chúng ta đã tạo ra một đối tượng chapter mới là chapter1, có tiêu

đề "This is Chapter 1" (Đây là Chương 1) Việc thiết lập số độ sâu là 0 sẽ không hiển thị số

chương trên trang

Trang 5

Một section (phần) là một phần tử con của một chương Trong đoạn mã của Liệt kê 5, chúng ta tạo ra một section có tiêu đề "This is Section 1 in Chapter 1" (Đây là Phần 1 trong Chương 1)

Để thêm một số văn bản vào phần này, chúng ta tạo một đối tượng paragraph (đoạn) khác là

someSectionText và thêm nó vào đối tượng section

Liệt kê 5 Tạo đối tượng section

Paragraph title11 = new Paragraph("This is Section 1 in Chapter 1",

FontFactory.getFont(FontFactory.HELVETICA, 16, Font.BOLD,

new CMYKColor(0, 255, 255,17)));

Section section1 = chapter1.addSection(title11);

Paragraph someSectionText = new Paragraph("This

text comes as part of section 1 of chapter 1.");

section1.add(someSectionText);

someSectionText = new Paragraph("Following is a 3 X 2 table.");

section1.add(someSectionText);

Trước khi chúng ta thêm bảng, chúng ta hãy xem xét xem tài liệu sẽ trông như thế nào Thêm hai dòng sau đây để đóng tài liệu trong Hình 2 Sau đó biên dịch và chạy chương trình để tạo ra tài liệu PDF: document.add(chapter1);document.close();

Hình 2 Kết quả đầu ra ví dụ mẫu của chương

Tiếp theo, chúng ta tạo một đối tượng table (bảng) Một bảng chứa một ma trận các hàng và các cột Một ô (cell) trong một hàng có thể mở rộng nhiều hơn một cột Tương tự như vậy, một ô trong một cột có thể mở rộng nhiều hơn một hàng

Liệt kê 6 Tạo đối tượng table

Trang 6

PdfPTable t = new PdfPTable(3);

t.setSpacingBefore(25);

t.setSpacingAfter(25);

PdfPCell c1 = new PdfPCell(new Phrase("Header1"));

t.addCell(c1);

PdfPCell c2 = new PdfPCell(new Phrase("Header2"));

t.addCell(c2);

PdfPCell c3 = new PdfPCell(new Phrase("Header3"));

t.addCell(c3);

t.addCell("1.1");

t.addCell("1.2");

t.addCell("1.3");

section1.add(t);

Trong đoạn mã của Liệt kê 6, chúng ta tạo ra một đối tượng bảng PDFPTable là t có ba cột và tiếp tục thêm các hàng Tiếp theo, chúng ta tạo ra ba đối tượng PDFPcell, có văn bản khác nhau Chúng ta tiếp tục thêm chúng vào bảng Chúng được thêm vào hàng đầu tiên, bắt đầu từ cột đầu tiên, di chuyển sang cột tiếp theo trong cùng hàng Sau khi hoàn thành một hàng, các ô tiếp theo được thêm vào cột đầu tiên của hàng kế tiếp Cũng có thể thêm một ô vào bảng bằng cách chỉ cung cấp văn bản của ô đó, chẳng hạn như t.addCell("1.1"); Cuối cùng, đối tượng table (bảng) được thêm vào đối tượng section (phần)

Sau cùng, chúng ta hãy xem cách thêm một danh sách vào tài liệu PDF Một danh sách có chứa một số các ListItem Một danh sách có thể được đánh số hoặc không được đánh số Việc

chuyển đối số đầu tiên thành true (đúng) có nghĩa là bạn muốn tạo danh sách có đánh số

Liệt kê 7 Tạo đối tượng list (danh sách)

List l = new List(true, false, 10);

l.add(new ListItem("First item of list"));

l.add(new ListItem("Second item of list"));

section1.add(l);

Trang 7

Chúng ta đã thêm mọi thứ vào đối tượng chapter1 Bây giờ chúng ta thêm một hình ảnh vào dự

án java này Chúng ta có thể mở rộng quy mô hình ảnh bằng cách sử dụng một trong những phương thức Image (Hình ảnh) sau:

 scaleAbsolute()

 scaleAbsoluteWidth()

 scaleAbsoluteHeight()

 scalePercentage()

 scaleToFit()

Trong Liệt kê 8, chúng ta đã sử dụng phương thức scaleAbsolute Và sau đó thêm đối tượng image vào section này

Liệt kê 8 Thêm Image vào tài liệu chính

Image image2 = Image.getInstance("IBMLogo.bmp");

image2.scaleAbsolute(120f, 120f);

section1.add(image2);

Lớp com.itextpdf.text.Anchor trong iText đại diện cho một liên kết hoặc tới một trang web bên ngoài hoặc bên trong trong tài liệu Có thể nhấn chuột vào anchor (neo liên kết) giống như một liên kết trong một trang web Để thêm anchor chúng ta cần tạo ra một anchor mới và thiết lập tài liệu tham chiếu đến Anchor đích đã tạo ra trong Liệt kê 3 Sau đó thêm anchor này vào phần và thêm phần này vào tài liệu

Liệt kê 9 Thêm Anchor vào tài liệu chính

Paragraph title2 = new Paragraph("Using Anchor",

FontFactory.getFont(FontFactory.HELVETICA, 16, Font.BOLD,

new CMYKColor(0, 255, 0, 0)));

section1.add(title2);

title2.setSpacingBefore(5000);

Anchor anchor2 = new Anchor("Back To Top");

anchor2.setReference("#BackToTop");

section1.add(anchor2);

Trang 8

Không còn các phần tử nào để thêm vào chapter1 nữa, đây là lúc để thêm chapter1 vào

document (tài liệu) chính Chúng ta cũng sẽ đóng đối tượng tài liệu ở đây khi chúng ta đã thực hiện xong ứng dụng ví dụ mẫu

Liệt kê 10 Thêm một chương vào tài liệu chính

document.add(chapter1);

document.close();

Về đầu trang

Chạy ứng dụng ví dụ mẫu

1 Tải ứng dụng ví dụ mẫu, tệp j-itextsample.jar (xem phần Tải về)

2 Giải nén tệp j-itextsample.jar vào một thư mục Ví dụ, nếu bạn giải nén nó vào C:\temp, thì bạn sẽ đặt các tệp nguồn và lớp vào C:\temp\com\itext\test

3 Mở một dấu nhắc lệnh và thay đổi thư mục này thành C:\temp

4 Thiết lập đường dẫn lớp của hệ thống của bạn theo dấu nhắc lệnh này Hãy đưa

C:\temp\itext-5.3.0.jar vào đường dẫn lớp của hệ thống Trên Windows®, chạy lệnh set classpath=C:\temp\itext-5.3.0.jar;%classpath%

5 Chạy ứng dụng bằng lệnh java com.itext.test.ITextTest

Chương trình sẽ tạo ra tài liệu ITextTest.pdf tại C:\ Hình 3 cho thấy một ảnh chụp màn hình của trang đầu tiên của tài liệu PDF

Trang 9

Hình 3 Ảnh chụp màn hình của tài liệu PDF

Hình 4 cho thấy một ảnh chụp màn hình của Chương 1 (Chapter 1) và phần, văn bản, bảng, danh sách và hình ảnh của nó trong tài liệu PDF

Trang 10

Hình 4 Ảnh chụp màn hình của tài liệu PDF

Hình 5 cho thấy một ảnh chụp màn hình của liên kết Neo trong tài liệu PDF

Trang 11

Hình 5 Ảnh chụp màn hình của tài liệu PDF

Ngày đăng: 09/03/2014, 04:20

HÌNH ẢNH LIÊN QUAN

Hình 1. Kết quả đầu ra của mã ví dụ mẫu trong Liệt kê 3 - Tạo động các tài liệu PDF từ ứng dụng Java doc
Hình 1. Kết quả đầu ra của mã ví dụ mẫu trong Liệt kê 3 (Trang 4)
Hình 2. Kết quả đầu ra ví dụ mẫu của chương - Tạo động các tài liệu PDF từ ứng dụng Java doc
Hình 2. Kết quả đầu ra ví dụ mẫu của chương (Trang 5)
Hình 4. Ảnh chụp màn hình của tài liệu PDF - Tạo động các tài liệu PDF từ ứng dụng Java doc
Hình 4. Ảnh chụp màn hình của tài liệu PDF (Trang 10)
Hình 5. Ảnh chụp màn hình của tài liệu PDF - Tạo động các tài liệu PDF từ ứng dụng Java doc
Hình 5. Ảnh chụp màn hình của tài liệu PDF (Trang 11)

TỪ KHÓA LIÊN QUAN

w