import java.io.File;
import org.artofsolving.jodconverter.OfficeDocumentConverter;
import org.artofsolving.jodconverter.office.DefaultOfficeManagerConfiguration;
import org.artofsolving.jodconverter.office.OfficeManager;
/**
* 这是一个工具类,主要是为了使Office2003-2007全部格式的文档
* (.doc|.docx|.xls|.xlsx|.ppt|.pptx)转化为pdf文件
*/
public class OfficeToPDF {
public static final String OFFICE_DOC = "doc";
public static final String OFFICE_DOCX = "docx";
public static final String OFFICE_XLS = "xls";
public static final String OFFICE_XLSX = "xlsx";
public static final String OFFICE_PPT = "ppt";
public static final String OFFICE_PPTX = "pptx";
public static final String OFFICE_TO_PDF = "pdf";
/**
* 使Office2003-2007全部格式的文档(.doc|.docx|.xls|.xlsx|.ppt|.pptx) 转化为pdf文件<br>
*
* @param inputFilePath
* 源文件路径,如:"e:/test.docx"
* @param outputFilePath
* 目标文件路径,如:"e:/test_docx.pdf"
* @return
*/
public static boolean openOfficeToPDF(String inputFilePath, String outputFilePath) {
return office2pdf(inputFilePath, outputFilePath);
}
/**
* 获取OpenOffice.org 3的安装目录
*
* @return OpenOffice.org 3的安装目录
*/
public static String getOfficeHome() {
String path = PropertiesUtil.getValueByPropertyName(
ClassLoader.getSystemResourceAsStream("toPdf.properties"),
"OPENOFFICE_PATH");
return path;
}
/**
* 连接OpenOffice.org 并且启动OpenOffice.org
*
* @return
*/
public static OfficeManager getOfficeManager() {
DefaultOfficeManagerConfiguration config = new DefaultOfficeManagerConfiguration();
// 获取OpenOffice.org 3的安装目录
String officeHome = getOfficeHome();
config.setOfficeHome(officeHome);
// 启动OpenOffice的服务
OfficeManager officeManager = config.buildOfficeManager();
officeManager.start();
return officeManager;
}
/**
* 转换文件
*
* @param inputFile
* @param outputFilePath_end
* @param inputFilePath
* @param outputFilePath
* @param converter
*/
public static void converterFile(File inputFile, String outputFilePath_end,
String inputFilePath, String outputFilePath,
OfficeDocumentConverter converter) {
File outputFile = new File(outputFilePath_end);
// 假如目标路径不存在,则新建该路径
if (!outputFile.getParentFile().exists()) {
outputFile.getParentFile().mkdirs();
}
converter.convert(inputFile, outputFile);
}
/**
* 使Office2003-2007全部格式的文档(.doc|.docx|.xls|.xlsx|.ppt|.pptx) 转化为pdf文件
*
* @param inputFilePath
* 源文件路径,如:"e:/test.docx"
* @param outputFilePath
* 目标文件路径,如:"e:/test_docx.pdf"
* @return
*/
public static boolean office2pdf(String inputFilePath, String outputFilePath) {
boolean flag = false;
OfficeManager officeManager = getOfficeManager();
// 连接OpenOffice
OfficeDocumentConverter converter = new OfficeDocumentConverter(
officeManager);
if (null != inputFilePath) {
File inputFile = new File(inputFilePath);
// 判断目标文件路径是否为空
if (null == outputFilePath) {
// 转换后的文件路径
String outputFilePath_end = getOutputFilePath(inputFilePath);
if (inputFile.exists()) {// 找不到源文件, 则返回
converterFile(inputFile, outputFilePath_end, inputFilePath,
outputFilePath, converter);
flag = true;
}
} else {
if (inputFile.exists()) {// 找不到源文件, 则返回
converterFile(inputFile, outputFilePath, inputFilePath,
outputFilePath, converter);
flag = true;
}
}
officeManager.stop();
} else {
flag = false;
}
return flag;
}
/**
* 获取输出文件
*
* @param inputFilePath
* @return
*/
public static String getOutputFilePath(String inputFilePath) {
String outputFilePath = inputFilePath.replaceAll("."
+ getPostfix(inputFilePath), ".pdf");
return outputFilePath;
}
/**
* 获取inputFilePath的后缀名,如:"e:/test.pptx"的后缀名为:"pptx"
*
* @param inputFilePath
* @return
*/
public static String getPostfix(String inputFilePath) {
return inputFilePath.substring(inputFilePath.lastIndexOf(".") + 1);
}
分享到:
相关推荐
标题中的“Office文档转换为PDF、XPS工具”是指一种能够将Microsoft Office创建的文档(如Word、Excel、PowerPoint)转换成PDF或XPS格式的软件。这种工具的目的是为了方便用户在不同设备间共享文件,或者确保文档在...
本源码是基于Java开发的Office文档转换为PDF服务设计,包含35个文件,其中包括7个.java文件,6个.class文件,以及3个.jar文件。此外,还包括3个.png文件,2个.prefs文件和2个.dll文件。此外,还包括1个.classpath...
在JavaEE平台上,开发一个能够将Office文档转换为PDF的服务是一项常见的需求,特别是在企业级应用中,为了保证兼容性、打印质量和跨平台的阅读体验。这个服务通常涉及到多个技术栈,包括文件处理库、格式转换工具和...
将office文档(word,excel, ppt)转换为PDF的小工具。PC上运行,需要安装微软的。net框架
在这个特定的场景中,我们讨论的是一种JavaEE服务,它的主要功能是将Office文档转换为PDF格式,确保了良好的格式兼容性。这项服务支持多种常见的Microsoft Office文件类型,包括doc、docx、xls、xlsx、ppt和pptx。 ...
C#通过COM调用WPS将Office文档转换为PDF源码,源码参考学习使用。
在这个场景中,标题提到的"OFFICE文档转换成PDF源码"是指使用易语言编写的代码,能够实现将Microsoft Office创建的文档(如Word、Excel或PowerPoint)转换为PDF格式。这种功能在许多场合都很实用,例如保持文档格式...
本压缩包中的"易语言源码易语言OFFICE文档转换成PDF源码.rar"包含了使用易语言实现的将OFFICE文档转换为PDF格式的源代码。这个功能在很多场景下都十分实用,例如在企业文档处理、在线教育、电子出版等领域,用户可能...
"SaveAsPDFandXPS.exe"是一个工具,用于帮助用户将Office文档转换为PDF或XPS(XML Paper Specification)格式。 1. PDF格式的优势: - **一致性**:PDF文件在任何设备上打开时,都能保持一致的视觉效果,不受操作...
4. **Office文档转换**: 对于Microsoft Office文档,Go-Gotenberg借助了libreoffice工具,这是一个开源的Office套件。通过在后台运行libreoffice服务,它能读取Office文件并将其导出为PDF。这种方法虽然依赖于外部...
Java使用OpenOffice转换Office文档为PDF是一种...通过以上步骤和知识点,你就可以在Java项目中实现利用OpenOffice将Office文档转换为PDF了。记住,这只是一个基础实现,实际应用中可能需要根据具体需求进行优化和调整。
3. **Office文档转换**:Office文档,如Word、Excel或PowerPoint,可以通过特定的接口或API转换为PDF格式,以保持格式的一致性和可预览性。 转换流程如下: 1. **初始化Jcom**:在Java程序中,首先需要加载并初始...
总之,OpenOffice提供了一个强大且灵活的工具集,能够轻松地将Office文档转换为PDF和HTML。开发者还可以利用Java API实现自动化转换,提高效率。无论是在日常办公还是开发项目中,了解如何使用OpenOffice进行文件...
标题中的“Office 2007转换PDF插件”指的是一个专门用于Microsoft Office 2007的软件扩展,它的主要功能是将Office文档转换成Adobe PDF格式。这个插件使得用户无需拥有Adobe Acrobat这样的专业PDF编辑软件,也能方便...
首先,我们需要了解为什么需要将Office文档转换为PDF。一个主要原因是PDF文件的稳定性,它们不会因为不同电脑上的字体缺失或设置差异而改变格式。此外,PDF文件更适合作为打印预览和共享,因为它可以锁定内容,防止...
- **文档归档**:将大量Office文档转换为PDF,便于管理和检索。 - **电子出版**:出版物制作中,将Word文档转换为PDF,确保读者阅读体验的一致性。 6. **类库选择**: - 市场上有很多开源和商业的类库,如NReco....
PDF打印机是一种特殊的...总之,PDF打印机是一种高效且实用的工具,能帮助用户轻松地将Office文档转换为PDF格式,以便于分享、存档或保护内容。通过理解其工作原理和使用方法,你可以更便捷地处理日常的文档转换任务。
- **转换为中间格式**:可以先将Office文档转换为XML或其他结构化的中间格式,然后再将此格式转换为PDF。这种方法需要处理更多的细节,但能提供更大的控制度。 - **基于渲染引擎**:构建一个渲染引擎,将Office...
易语言OFFICE文档转换成PDF源码,OFFICE文档转换成PDF,拖放对象注册,拖放对象撤销,WindowProc,拖放对象得到文件,转换到HTML,转换到HTML路径,取文件类型_程序,SetWindowLongA,CallWindowProcA,DragAcceptFiles,...
本篇文章将详细介绍如何利用OpenOffice库在Java环境中将Word、Excel、PowerPoint等Microsoft Office文档转换为PDF格式。 首先,OpenOffice是一款开源的办公套件,它提供了一个称为UNO(Universal Network Objects)...