@francisco.friesen
Для конвертации файлов Excel в файлы PDF в Java можно использовать библиотеку Apache POI для чтения содержимого Excel и библиотеку iText для создания файла PDF.
Вот пример кода, который показывает, как конвертировать файл Excel в файл PDF:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import com.itextpdf.text.Document;
import com.itextpdf.text.PageSize;
import com.itextpdf.text.pdf.PdfWriter;
public class ExcelToPdfConverter {
public static void main(String[] args) {
try {
// Открыть файл Excel
String excelFilePath = "путь_к_файлу_excel.xlsx";
FileInputStream input = new FileInputStream(excelFilePath);
Workbook workbook = new XSSFWorkbook(input);
// Создать документ PDF
String pdfFilePath = "путь_к_файлу_pdf.pdf";
Document document = new Document(PageSize.A4);
PdfWriter.getInstance(document, new FileOutputStream(pdfFilePath));
document.open();
// Итерировать по всем листам в файле Excel
for (int i = 0; i < workbook.getNumberOfSheets(); i++) {
// Записать содержимое каждого листа в документ PDF
// используя Apache POI
// ...
// Пример записи содержимого каждого листа
/*Sheet sheet = workbook.getSheetAt(i);
for (Row row : sheet) {
for (Cell cell : row) {
String cellValue = cell.getStringCellValue();
// Записать значение ячейки в документ PDF используя iText
// ...
}
}*/
}
// Закрыть документ PDF и файл Excel
document.close();
workbook.close();
System.out.println("Файл Excel успешно конвертирован в файл PDF.");
} catch (IOException e) {
e.printStackTrace();
}
}
}
|
Пожалуйста, учтите, что вам может потребоваться добавить соответствующие зависимости к вашему проекту, чтобы использовать библиотеки Apache POI и iText.
@francisco.friesen
Для обновленного кода, представленного ниже, была добавлена возможность записи содержимого каждого листа Excel в соответствующей странице PDF с использованием Apache POI и iText. В этом примере для каждой ячейки Excel создается соответствующая ячейка PDF.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.PageSize;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.pdf.PdfWriter;
public class ExcelToPdfConverter {
public static void main(String[] args) {
try {
// Открыть файл Excel
String excelFilePath = "путь_к_файлу_excel.xlsx";
FileInputStream input = new FileInputStream(excelFilePath);
Workbook workbook = new XSSFWorkbook(input);
// Создать документ PDF
String pdfFilePath = "путь_к_файлу_pdf.pdf";
Document document = new Document(PageSize.A4);
PdfWriter.getInstance(document, new FileOutputStream(pdfFilePath));
document.open();
// Итерировать по всем листам в файле Excel
for (int i = 0; i < workbook.getNumberOfSheets(); i++) {
Sheet sheet = workbook.getSheetAt(i);
document.newPage();
document.add(new Paragraph("Лист: " + sheet.getSheetName()));
// Записать содержимое каждой ячейки листа в документ PDF
for (Row row : sheet) {
for (Cell cell : row) {
String cellValue = cell.toString();
document.add(new Paragraph(cellValue));
}
}
}
// Закрыть документ PDF и файл Excel
document.close();
workbook.close();
System.out.println("Файл Excel успешно конвертирован в файл PDF.");
} catch (IOException | DocumentException e) {
e.printStackTrace();
}
}
}
|
Убедитесь, что добавили следующие зависимости в ваш проект, чтобы использовать библиотеки Apache POI и iText:
1 2 3 4 5 6 7 8 9 10 11 |
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>5.1.0</version>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>5.5.13</version>
</dependency>
|
Этот код считывает содержимое каждого листа Excel и записывает его в соответствующую страницу PDF. Вам нужно заменить пути к файлам Excel и PDF соответствующим образом в коде.