commit a3c7516083e312b9cf70a4205d9680ff9fe8e2fe Author: lijh Date: Wed Mar 11 10:51:41 2026 +0800 first commit diff --git a/.classpath b/.classpath new file mode 100644 index 0000000..07c326e --- /dev/null +++ b/.classpath @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/.project b/.project new file mode 100644 index 0000000..ea239a2 --- /dev/null +++ b/.project @@ -0,0 +1,17 @@ + + + WordExcelToPDF + + + + + + org.eclipse.jdt.core.javabuilder + + + + + + org.eclipse.jdt.core.javanature + + diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..3a21537 --- /dev/null +++ b/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,11 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=1.8 diff --git a/bin/WordExcelToPDF.class b/bin/WordExcelToPDF.class new file mode 100644 index 0000000..6b49f3f Binary files /dev/null and b/bin/WordExcelToPDF.class differ diff --git a/lib/aspose-cells-22.10.jar b/lib/aspose-cells-22.10.jar new file mode 100644 index 0000000..9b3f668 Binary files /dev/null and b/lib/aspose-cells-22.10.jar differ diff --git a/lib/aspose-words-21.1.jar b/lib/aspose-words-21.1.jar new file mode 100644 index 0000000..7429c78 Binary files /dev/null and b/lib/aspose-words-21.1.jar differ diff --git a/src/WordExcelToPDF.java b/src/WordExcelToPDF.java new file mode 100644 index 0000000..ac79223 --- /dev/null +++ b/src/WordExcelToPDF.java @@ -0,0 +1,102 @@ +import java.io.File; +import java.io.IOException; + +import com.aspose.cells.PageOrientationType; +import com.aspose.cells.PageSetup; +import com.aspose.cells.Workbook; +import com.aspose.cells.Worksheet; +import com.aspose.words.Document; +import com.aspose.words.SaveFormat; + +public class WordExcelToPDF { + + public static void main(String[] args) { + // TODO Auto-generated method stub + try { + // 示例:将Word文档转换为PDF + String fileName = args[0]; + int lastDotIndex = fileName.lastIndexOf('.'); + String baseName = fileName.substring(0, lastDotIndex); + String pdfPath = baseName + ".pdf"; + System.out.println(pdfPath); + convertToPdf(args[0],pdfPath); + + // 示例:将Excel工作簿转换为PDF + // convertToPdf("example.xlsx", "output.pdf"); + } catch (Exception e) { + e.printStackTrace(); + } + } + + + /** + * 将Word或Excel文件转换为PDF + * + * @param inputFile 输入文件路径 + * @param outputFile 输出文件路径 + */ + public static void convertToPdf(String inputFile, String outputFile) throws Exception { + File file = new File(inputFile); + String extension = getFileExtension(file); + + switch (extension.toLowerCase()) { + case "doc": + case "docx": + // 使用Aspose.Words将Word文档转换为PDF + Document doc = new Document(inputFile); + doc.save(outputFile, SaveFormat.PDF); + break; + case "xls": + case "xlsx": + // 使用Aspose.Cells将Excel工作簿转换为PDF +// Workbook workbook = new Workbook(inputFile); +// workbook.save(outputFile, com.aspose.cells.SaveFormat.PDF); + + // 加载Excel文件 + Workbook workbook = new Workbook(inputFile); + + // 获取第一个工作表(根据实际情况选择) + Worksheet worksheet = workbook.getWorksheets().get(0); + + // 设置页面布局 + PageSetup pageSetup = worksheet.getPageSetup(); +// System.out.println(" worksheet.getCells().getMaxDataColumn()====="+ worksheet.getCells().getMaxDataColumn()); +// // 设置页面方向为横向(如果列太多) + pageSetup.setOrientation(PageOrientationType.LANDSCAPE); +// +// // 自动调整所有列宽以适应内容 +// for (int i = 0; i < worksheet.getCells().getMaxDataColumn(); i++) { +// worksheet.autoFitColumn(i); +// } +// +// // 设置缩放方式:将所有列缩放到一页宽度 +// pageSetup.setFitToPagesWide(1); +// pageSetup.setFitToPagesTall(0); + // 保存为PDF + try { + workbook.save(outputFile, com.aspose.cells.SaveFormat.PDF); + System.out.println("文件已成功转换为PDF!"); + } catch (Exception e) { + System.err.println("转换过程中出现错误:" + e.getMessage()); + throw e; + } + + break; + default: + throw new IOException("不支持的文件格式: " + extension); + } + } + + /** + * 获取文件扩展名 + * + * @param file 文件对象 + * @return 文件扩展名 + */ + private static String getFileExtension(File file) { + String fileName = file.getName(); + if(fileName.lastIndexOf(".") != -1 && fileName.lastIndexOf(".") != 0) + return fileName.substring(fileName.lastIndexOf(".")+1); + else return ""; + } +}