Cómo convertir un PDF a un libro de Excel editable en Java
Esta guía muestra cómo transformar un PDF en un libro que realmente puedes editar, no solo una exportación plana. Convertirás un PDF a XLSX con ExcelSaveOptions, ajustarás la exportación para que las tablas se distribuyan limpiamente en un número razonable de hojas, y convertirás un libro editado de nuevo a PDF con ExcelLoadOptions.
Convertir un PDF a un libro de Excel básico
Document.save con SaveFormat.Xlsx realiza una conversión directa: el texto y el contenido tipo tabla de cada página se coloca en su propia hoja de cálculo.
import org.aspose.pdf.Document;
import org.aspose.pdf.SaveFormat;
try (Document doc = new Document("report.pdf")) {
doc.save("report.xlsx", SaveFormat.Xlsx); // SaveFormat.Excel is an alias
}Ajusta la exportación para obtener hojas de cálculo más limpias
Una exportación de una hoja por página a menudo no es lo que un usuario de hojas de cálculo desea. ExcelSaveOptions controla la fusión de hojas, la disposición de columnas y las heurísticas de recuperación de tablas para PDFs que no tienen una estructura de tabla etiquetada:
import org.aspose.pdf.Document;
import org.aspose.pdf.ExcelSaveOptions;
try (Document doc = new Document("report.pdf")) {
ExcelSaveOptions options = new ExcelSaveOptions();
options.setFormat(ExcelSaveOptions.ExcelFormat.XLSX); // default
options.setMinimizeTheNumberOfWorksheets(true); // merge pages onto fewer sheets
options.setInsertBlankColumnAtFirst(false); // no leading spacer column
options.setUniformWorksheets(false); // allow per-sheet column widths
options.setStructuralHeuristics(true); // recover tables on untagged PDFs
options.setSuppressRunningHeadersFooters(true); // drop repeated page furniture
doc.save("report.xlsx", options);
}setMinimizeTheNumberOfWorksheets(true) es la única opción que más modifica la forma del resultado: sin ella, un informe de 20 páginas genera 20 hojas de cálculo.
Convertir un libro de Excel de nuevo a PDF
Después de que un revisor edite el libro de trabajo, recupérelo en formato PDF cargándolo con ExcelLoadOptions y guardando el documento resultante:
import org.aspose.pdf.Document;
import org.aspose.pdf.ExcelLoadOptions;
try (Document doc = new Document("book.xlsx", new ExcelLoadOptions())) {
doc.save("book.pdf");
}