In PDF bằng Java theo lập trình

In tài liệu PDF thường là một chức năng chính trong các công ty và tổ chức khác nhau. Bạn có thể dễ dàng in một tệp PDF theo lập trình bằng ngôn ngữ Java. Bạn có thể làm việc với API Aspose.PDF for Java bằng cách đặt cấu hình API đó trong môi trường của bạn. Hãy để chúng tôi xem qua các kịch bản in PDF khác nhau có thể có trong các ứng dụng Java của bạn:

In tệp PDF bằng Java

Bạn có thể dễ dàng in tệp PDF bằng mã Java bằng cách thực hiện theo các bước bên dưới:

  1. Tạo đối tượng PdfViewer
  2. Tải tệp PDF đầu vào
  3. In tệp PDF

Đoạn mã dưới đây cho thấy cách in các tệp PDF theo chương trình bằng Java:

//Tạo đối tượng PdfViewer
PdfViewer viewer = new PdfViewer();
//Mở tệp PDF đầu vào
viewer.bindPdf(dataDir + "Test.pdf");
//In tài liệu PDF
viewer.printDocument();
//Đóng tệp PDF
viewer.close();

In nhiều tài liệu PDF bằng Java

In nhiều tệp hoặc in hàng loạt tệp PDF là một quy trình đơn giản bằng ngôn ngữ Java. Bạn có thể in một số tệp PDF bằng cách thực hiện theo các bước bên dưới:

  1. Khởi tạo danh sách kiểu String
  2. Thêm nhiều tệp PDF để in
  3. In tài liệu PDF

Đoạn mã sau cho biết cách in nhiều tệp PDF bằng ngôn ngữ Java:

// Khởi tạo danh sách kiểu String
List<String> files = new ArrayList<>();

// Thêm nhiều tệp sẽ được in
files.add(dataDir + "First.pdf");
files.add(dataDir + "Second.pdf");

// Xử lý từng tệp để in
for (String file : files)
{
    //Tạo đối tượng PdfViewer
    PdfViewer viewer = new PdfViewer();
    //Mở tệp PDF đầu vào
    viewer.bindPdf(file);
    //In tài liệu PDF
    viewer.printDocument();
    //Đóng tệp PDF
    viewer.close();
}

In các trang hoặc phạm vi trang cụ thể bằng Java

API cung cấp cho bạn nhiều quyền kiểm soát khi in tệp PDF. Bạn có thể làm việc với các trường và phương pháp khác nhau trong khi in tệp, theo yêu cầu của bạn. Ví dụ: nếu bạn không muốn in tất cả các trang của tệp PDF và chỉ in một vài trang. Đó có thể là một số phạm vi trang liên tục như từ Trang số 3 đến Trang số 7 hoặc đây có thể là các trang ngẫu nhiên như Trang số 1,5 và 6. Bạn có thể xử lý cả hai tình huống bằng các bước sau:

  1. Khởi tạo đối tượng PdfViewer
  2. Đặt thuộc tính để in
  3. Tạo các đối tượng cho cài đặt máy in và trang
  4. Chỉ định nếu bạn muốn in tất cả các trang, các trang cụ thể hoặc một phạm vi trang liên tục
  5. In tài liệu PDF bằng cài đặt máy in và trang

Đoạn mã sau cho biết cách in các trang cụ thể hoặc một dải trang trong tài liệu PDF bằng Java:

// Tạo đối tượng PdfViewer
PdfViewer viewer = new PdfViewer();
// Mở tệp PDF đầu vào
viewer.bindPdf(dataDir + "test.pdf");
// Đặt thuộc tính để in
viewer.setAutoResize(true); // Print the file with adjusted size
viewer.setAutoRotate(true); // Print the file with adjusted rotation
viewer.setPrintPageDialog(false); // Do not produce the page number dialog when printing

// Tạo các đối tượng cho cài đặt máy in và trang và PrintDocument
PrintPageSettings pgs = new PrintPageSettings();
PdfPrinterSettings ps = new PdfPrinterSettings();
// Đặt tên máy in
ps.setPrinterName("Microsoft Print to PDF");

// ps.setPrintRange(2); // 0 = tất cả các trang; 1 = lựa chọn; 2 = một số trang
// ps.setFromPage(1);
// ps.setToPage(2);


ps.setPrintRange(1); // 0 = all pages; 1 = selection; 2 = some pages
ps.setSelectedPages(new int[]{1, 3, 5});


// In tài liệu bằng cài đặt máy in và trang
viewer.printDocumentWithSettings(pgs, ps);

In PDF bảo mật bằng Java

Đôi khi các tệp PDF được bảo mật hoặc mã hóa bằng mật khẩu để đảm bảo quyền truy cập được phép vào dữ liệu. Bạn có thể dễ dàng truy cập và in tệp PDF được bảo mật hoặc mã hóa bằng mã Java và in tệp theo yêu cầu của bạn. Bạn cần làm theo các bước dưới đây:

  1. Tải tệp đầu vào PDF được bảo vệ bằng mật khẩu bằng mật khẩu
  2. Khởi tạo đối tượng PdfViewer
  3. In tài liệu PDF

Đoạn mã dưới đây dựa trên các bước giải thích cách in các tệp PDF được bảo mật bằng mã Java:

//Tải tài liệu PDF an toàn trong khi chỉ định mật khẩu Người dùng hoặc Chủ sở hữu
Document document = new Document(dataDir + "Password.pdf" , "userORowner");
//Tạo đối tượng PdfViewer
PdfViewer viewer = new PdfViewer();
//Mở tệp PDF đầu vào
viewer.bindPdf(document);
//In tài liệu PDF
viewer.printDocument();
//Đóng tệp PDF
viewer.close();

Kiểm tra Trạng thái Tác vụ In trong khi In PDF bằng Java

Bạn có thể theo dõi trạng thái của lệnh in sau khi tệp được gửi đến hàng đợi in của máy in. Điều này cho phép ứng dụng của bạn quyết định xem bản in có thành công hay không. Lớp PdfViewer hiển thị phương thức getPrintStatus giúp bạn kiểm tra trạng thái của lệnh in. Ví dụ: khi in định dạng PDF sang XPS, bạn có thể nhận trạng thái bằng cách thực hiện theo các bước bên dưới:

  1. Tải tệp PDF đầu vào
  2. Đặt thuộc tính để in
  3. Tạo các đối tượng cho cài đặt máy in và trang
  4. Đặt tên máy in
  5. In kết quả ra tệp
  6. Kiểm tra trạng thái in

Đoạn mã sau cho biết cách kiểm tra trạng thái của tác vụ in trong khi in PDF bằng mã Java:

// Tạo đối tượng PdfViewer
PdfViewer viewer = new PdfViewer();
// Mở tệp PDF đầu vào
viewer.bindPdf(dataDir + "test.pdf");
// Đặt thuộc tính để in
viewer.setAutoResize(true); // Print the file with adjusted size
viewer.setAutoRotate(true); // Print the file with adjusted rotation
viewer.setPrintPageDialog(false); // Do not produce the page number dialog when printing

// Tạo các đối tượng cho cài đặt máy in và trang và PrintDocument
PrintPageSettings pgs = new PrintPageSettings();
PdfPrinterSettings ps = new PdfPrinterSettings();

// Đặt tên máy in
ps.setPrinterName("Microsoft Print to PDF");


// Tên bản in kết quả
ps.setPrintFileName(dataDir + "ResultantPrintout.xps");

// In kết quả ra tệp
ps.setPrintToFile(true);

// In tài liệu với các cài đặt được chỉ định ở trên
viewer.printDocumentWithSettings(pgs, ps);

// Kiểm tra trạng thái in
if (viewer.getPrintStatus() != null)
{
    // Một ngoại lệ đã được ném
    Exception ex = (Exception)viewer.getPrintStatus();
    if (ex != null)
    {
        // Nhận thông báo ngoại lệ
    }
}
else
{
    // Không có lỗi nào được tìm thấy. Công việc in ấn đã hoàn tất thành công
    System.out.println("printing completed without any issue..");
}

Sự kết luận

Chúng tôi đã khám phá các tình huống khác nhau liên quan đến việc in các tệp PDF trong các ứng dụng Java của bạn. Bạn có thể dễ dàng tích hợp các tính năng này vào các ứng dụng web, ứng dụng bảng điều khiển hoặc bất kỳ loại dự án nào khác mà bạn đang làm việc bằng ngôn ngữ Java. Bạn có thể khám phá thêm API bằng cách tìm hiểu từ Tài liệu tham khảo API hoặc Tài liệu sản phẩm. Có rất nhiều tình huống có thể xảy ra khác liên quan đến in PDF và bạn có thể thoải mái thảo luận với chúng tôi qua Diễn đàn hỗ trợ miễn phí. Chúng tôi sẽ rất vui khi được giúp đỡ!

Xem thêm