0
0
Lập trình
NM

Hướng Dẫn Chi Tiết Chuyển Đổi File Excel Sang PDF Bằng JobConverter

Đăng vào 4 ngày trước

• 7 phút đọc

Mở Đầu

Trong lĩnh vực lập trình Java, việc tạo ra một file PDF từ file Excel có thể trở nên phức tạp và tốn kém nếu bạn chỉ sử dụng các thư viện trả phí như iText hay JasperReports. Một số thư viện miễn phí như Apache PDFbox có thể mang lại kết quả không như ý, khiến bạn mất nhiều thời gian và công sức cho việc điều chỉnh layout, định dạng văn bản và hình ảnh. JobConverter, một công cụ miễn phí, xuất hiện như một giải pháp giúp bạn dễ dàng chuyển đổi file Excel thành PDF mà không cần viết mã phức tạp. Bài viết này sẽ cung cấp cho bạn hướng dẫn chi tiết để sử dụng JobConverter và tối ưu hóa quá trình chuyển đổi này.

Nội Dung Chi Tiết

1. Tạo hoặc Chỉnh Sửa File Excel Bằng Apache POI

Trước khi tiến hành chuyển đổi sang PDF, bạn cần có một file Excel. Nếu bạn chưa có sẵn, Apache POI - một thư viện miễn phí từ Apache - sẽ giúp bạn dễ dàng tạo ra một file Excel mới hoặc chỉnh sửa file có sẵn. Dưới đây là hai ví dụ cơ bản:

Ví dụ 1: Tạo File Excel Mới

java Copy
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import java.io.FileOutputStream;
import java.io.IOException;

public class ExcelCreator {
    public static void main(String[] args) {
        Workbook workbook = new XSSFWorkbook();
        Sheet sheet = workbook.createSheet("Data Sheet");

        Row header = sheet.createRow(0);
        header.createCell(0).setCellValue("ID");
        header.createCell(1).setCellValue("Name");
        header.createCell(2).setCellValue("Age");

        Row row1 = sheet.createRow(1);
        row1.createCell(0).setCellValue(1);
        row1.createCell(1).setCellValue("John Doe");
        row1.createCell(2).setCellValue(30);

        try (FileOutputStream fileOut = new FileOutputStream("example.xlsx")) {
            workbook.write(fileOut);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

Ví dụ 2: Sử Dụng File Excel Có Sẵn

java Copy
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

public class ExcelTemplateProcessor {
    public static void main(String[] args) {
        String inputFilePath = "template.xlsx";
        String outputFilePath = "output.xlsx";

        Map<String, String> data = new HashMap<>();
        data.put("${fullName}", "Nguyễn Văn A");
        data.put("${age}", "30");
        data.put("${address}", "Hà Nội, Việt Nam");

        try {
            FileInputStream fis = new FileInputStream(inputFilePath);
            Workbook workbook = new XSSFWorkbook(fis);

            for (int i = 0; i < workbook.getNumberOfSheets(); i++) {
                Sheet sheet = workbook.getSheetAt(i);

                for (Row row : sheet) {
                    for (Cell cell : row) {
                        if (cell.getCellType() == CellType.STRING) {
                            String cellValue = cell.getStringCellValue();
                            for (Map.Entry<String, String> entry : data.entrySet()) {
                                if (cellValue.contains(entry.getKey())) {
                                    cellValue = cellValue.replace(entry.getKey(), entry.getValue());
                                }
                            }
                            cell.setCellValue(cellValue);
                        }
                    }
                }
            }

            FileOutputStream fos = new FileOutputStream(outputFilePath);
            workbook.write(fos);

            fos.close();
            workbook.close();
            fis.close();

            System.out.println("File Excel đã được xử lý thành công.");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

2. Cài Đặt Phần Mềm Văn Phòng Để Xử Lý File XLSX

Sau khi bạn đã có file Excel, cần thiết cài đặt một số phần mềm văn phòng để có thể xử lý file XLSX. Một số lựa chọn phổ biến bao gồm:

  • Microsoft Office: Phần mềm mạnh mẽ nhất nhưng yêu cầu trả phí.
  • OpenOffice: Phần mềm mã nguồn mở miễn phí.
  • LibreOffice: Cũng là phần mềm miễn phí mạnh mẽ và tương thích tốt với nhiều định dạng.

3. Sử Dụng JobConverter Để Chuyển Đổi Từ Excel Sang PDF

JobConverter giúp bạn chuyển đổi file Excel sang PDF một cách dễ dàng và hiệu quả. Điểm nổi bật của JobConverter là nó tận dụng các phần mềm văn phòng đã cài đặt trên máy tính của bạn để thực hiện chuyển đổi, điều này giúp đảm bảo chất lượng PDF đầu ra với định dạng và font chữ chính xác.

Bạn có thể tải JobConverter và thực hiện các bước sau để cài đặt thư viện:

xml Copy
<dependencies>
  <dependency>
    <groupId>org.artofsolving.jodconverter</groupId>
    <artifactId>jodconverter-core</artifactId>
    <version>3.0-beta-4</version>
  </dependency>
</dependencies>

Sau đó, bạn có thể thực hiện chuyển đổi file Excel thành PDF thông qua CMD:

bash Copy
java -jar jobconverter.jar -input example.xlsx -output example.pdf

Hoặc bạn có thể sử dụng đoạn mã sau trong Java để thực hiện chuyển đổi:

java Copy
import java.io.File;
import org.jodconverter.DocumentConverter;
import org.jodconverter.LocalConverter;
import org.jodconverter.office.LocalOfficeManager;
import org.jodconverter.office.OfficeException;
import org.jodconverter.office.OfficeManager;

public class DocConverter {
    public static void main(String[] args) throws OfficeException {
        OfficeManager officeManager = LocalOfficeManager.make();
        DocumentConverter converter = LocalConverter.make(officeManager);
        try {
            officeManager.start();

            File inputFile = new File("/data/test.xlsx");
            File outputFile = new File("/data/test.pdf");
            converter.convert(inputFile).to(outputFile).execute();
        } finally {
            officeManager.stop();
        }
    }
}

Lưu ý: Nếu OfficeManager không nhận được phần mềm văn phòng cài đặt, bạn có thể chỉ định đường dẫn cài đặt thủ công thông qua lệnh sau:

java Copy
OfficeManager officeManager = LocalOfficeManager.builder()
                .install()
                .officeHome("C:\Program Files\LibreOffice")
                .build();

4. Ví Dụ Thực Tế

Giả sử bạn có một file Excel với keyword là ${companyName}, bạn sẽ sử dụng Apache POI để gán dữ liệu vào vị trí này. Kết quả sau khi chuyển đổi sang PDF sẽ khá hoàn hảo với layout và hình ảnh không bị lệch.

Kết Luận

JobConverter là một giải pháp hiệu quả và tiết kiệm cho vấn đề chuyển đổi file Excel sang PDF. Bằng cách tận dụng phần mềm văn phòng đã cài đặt, JobConverter giúp đảm bảo chất lượng chuyển đổi được tối ưu nhất. Hy vọng rằng qua bài viết này, bạn có thể sử dụng JobConverter một cách dễ dàng và hiệu quả. Hãy thực hiện và trải nghiệm tiện ích mà JobConverter mang lại!
source: viblo

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào