konvertieren Sie excel-Datei in pdf mit java, itext und POI API und behält die Einstellungen
Ich habe eine Excel-Datei mit 5 Spalten mit wenigen fusionierten Zellen, leere Zellen, Daten und anderen text-Informationen (eine normale excel-Datei).
Ich lese diese Datei mit POI-API in java. Ich bin in der Lage, um die Datei zu konvertieren, um pdf-Tabelle mittels iText jar.
Aber, das ganze format ist nicht kopiert, in der pdf-Datei. (z.B. verbundene Zellen in eine Spalte, und andere Formatierungen oder Einstellungen sind alle Weg).
Einem einfachen pdf-Tabelle erstellt.
Wie kann ich die behalten das gleiche format wie in excel? (Ich will eine exakte Kopie der excel-Tabelle im pdf)
Hier ist der code, den ich verwende
//First we read the Excel file in binary format into FileInputStream
FileInputStream input_document = new FileInputStream(new File("K:\\DCIN_TER\\DCIN_EPU2\\CIRCUIT FROM BRANCH\\RAINBOW ORDERS\\" + SONo.trim() + "\\" + SONo.trim() + " - Checklist.xls"));
//Read workbook into HSSFWorkbook
HSSFWorkbook my_xls_workbook = new HSSFWorkbook(input_document);
//Read worksheet into HSSFSheet
HSSFSheet my_worksheet = my_xls_workbook.getSheetAt(0);
//To iterate over the rows
Iterator<Row> rowIterator = my_worksheet.iterator();
//We will create output PDF document objects at this point
com.itextpdf.text.Document iText_xls_2_pdf = new com.itextpdf.text.Document();
PdfWriter.getInstance(iText_xls_2_pdf, new FileOutputStream("K:\\DCIN_TER\\DCIN_EPU2\\CIRCUIT FROM BRANCH\\RAINBOW ORDERS\\" + SONo.trim() + "\\" + SONo.trim() + " - Checklist.pdf"));
iText_xls_2_pdf.open();
//we have 5 columns in the Excel sheet, so we create a PDF table with 5 columns; Note: There are ways to make this dynamic in nature, if you want to.
PdfPTable my_table = new PdfPTable(5);
//We will use the object below to dynamically add new data to the table
PdfPCell table_cell;
//Loop through rows.
while(rowIterator.hasNext())
{
Row rowi = rowIterator.next();
Iterator<Cell> cellIterator = rowi.cellIterator();
while(cellIterator.hasNext())
{
Cell celli = cellIterator.next(); //Fetch CELL
switch(celli.getCellType())
{
//Identify CELL type you need to add more code here based on your requirement /transformations
case Cell.CELL_TYPE_STRING:
//Push the data from Excel to PDF Cell
table_cell = new PdfPCell(new Phrase(celli.getStringCellValue()));
//move the code below to suit to your needs
my_table.addCell(table_cell);
break;
case Cell.CELL_TYPE_NUMERIC:
//Push the data from Excel to PDF Cell
table_cell = new PdfPCell(new Phrase("" + celli.getNumericCellValue()));
//move the code below to suit to your needs
my_table.addCell(table_cell);
break;
}
//next line
}
}
//Finally add the table to PDF document
iText_xls_2_pdf.add(my_table);
iText_xls_2_pdf.close();
//we created our pdf file..
input_document.close(); //close xls
Ich anbei die excel-Datei als Bild
hi Sumeet, bedeutet die Umstellung auch, dass eine Datei gespeichert wird unter einem lokalen Ordner, den Sie eingerichtet haben? können Sie einfach konvertieren und rufen Sie den stream aus?
vor dem gleichen problem, die erzeugte pdf-Datei ist hässlich mit Tabellen ohne Rahmen und passt nicht in die pdf-Ansicht.
InformationsquelleAutor user1416631 | 2014-04-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben Sie
ExcelToHtmlConverter
? Es ist in der 3.13 Version von Apache POI. Es hat die gleiche Verwendung wieWordToHtmlConverter
. Nach der Konvertierung von Excel zu HTML, die Sie verwenden können, iText zum konvertieren von HTML in PDF. Dies ist ein PDF-ich habe mit diesen tools:InformationsquelleAutor Chen
Mit Apache Tika, können Sie konvertieren Sie xlsx-Datei in html-format und über die apache pdfbox können Sie konvertieren Sie html-formatierten text in pdf.
?? bitte führe mich
Erste, Sie haben, um apache tika lib. Wenn Sie mit Maven verwenden, können Sie: <Abhängigkeit> <groupId>org.apache.tika</groupId> <artifactId>tika-Parser</artifactId> <version>1.5</version> </Abhängigkeit> Und als, Sie können überprüfen für die source-codes auf stackoverflow für die Konvertierung xls-Datei in html. Sie können AutoDetectParser für die Analyse, aber ich kann mich nicht erinnern, im Zusammenhang control handler ' s name. Bitte überprüfen Sie es auf stackoverflow. Danach, verwenden Sie pdfbox für die Konvertierung von html in pdf. Es ist sehr einfach. Glauben Sie bitte in die Suche 🙂
hey, sorry, danke für die Antwort. werde versuchen n let u know von teh Ergebnisse
Apache tika entfernt alle Formatierungen und Formatvorlagen aus excel-sheet.
InformationsquelleAutor