之前项目有需求,要求java代码实现word转pdf功能.调研了很多技术都不是很成熟.特别是中文乱码的问题.大部分框架都是在中文环节出了问题.(我很奢望我能出生在一个英语国度).最终的技术选型是利用jacob实现word转pdf功能.但是服务器部署在linux服务器上.所以又产生了新的问题就是:linux和windows交互文件.这个问题还是比较容易解决的.windows上用的是pscp.exe向linux回传文件.linux使用ftp向window发送文件.
1.linux向windows发送文件,使用如下脚本:
#!/bin/bash
ftp -v -n xxx.xxx.xxx.xxx << EOF
user 用户名 密码
binary
hash
lcd /user/locale/ (发送文件所在的文件夹)
prompt
mput $1(传进来的第一个参数 代表发送的文件名)
bye
EOF
java调用linux脚本的方式如下:
Process process = Runtime.getRuntime().exec(command)
文件成功发送到windows服务器之后,会利用spring的httpinvoker技术远程通知windows服务器有新文件到了.关于httpinvoker的使用可以看这篇文件:http://blog.csdn.net/qq413041153/article/details/7971194
2.windows需要装office2007sp1以上版本就可以使用jacob命令调用word接口生成pdf了.windows上java利用jacob word转pdf的代码如下:
private synchronized void word2PDF(String docfile, String toFile) {
logger.info("WTopTools word2PDF begin");
ActiveXComponent app = new ActiveXComponent("Word.Application");
try {
app.setProperty("Visible", new Variant(false));
Dispatch docs = app.getProperty("Documents").toDispatch();
Dispatch doc = Dispatch.invoke(
docs,
"Open",
Dispatch.Method,
new Object[] { docfile, new Variant(false),
new Variant(true) }, new int[1]).toDispatch();
File file1 = new File(toFile);
File file2 = new File(toFile + ".pdf");
if (file1.exists()) {
file1.delete();
}
if (file2.exists()) {
file2.delete();
}
Dispatch.invoke(doc, "SaveAs", Dispatch.Method, new Object[] {
toFile, new Variant(17) }, new int[1]);
Variant f = new Variant(false);
Dispatch.call(doc, "Close", f);
logger.info("转换成功:" + toFile);
} catch (Exception e) {
e.printStackTrace();
logger.info("转换失败:" + docfile + ", " + e.getMessage());
} finally {
app.invoke("Quit", new Variant[] {});
}
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
}
logger.info("WTopTools word2PDF end");
}
3.window使用pscp.exe向linux发送文件.同时利用httpinvoker通知linux服务器文件转换完成.在第一次使用pscp.exe的使用会有提示操作.如果你直接用java代码调用的话会直接推出.所有第一次使用请用cmd手动执行一次,并且根据选项操作一下就可以了. window发送文件到linux的bat脚本代码如下:
pscp.exe -q -pw 密码 -P 端口 d:\file\%1 wap@xxx.xxx.xxx.xxx:/usr/local/
其中-pw参数后面是linux密码. -p后面是端口号, 在后面是window本地要发送的文件.%1表示调用bat脚本时传进来的第一个参数.wap@xxx.xxx.xxx.xxx:/usr/local/表示用wap用户链接xxx.xxx.xxx.xxxlinux服务器,并且文件发送到/user/local文件夹下.
分享到:
相关推荐
在这个场景下,我们将关注如何使用Aspose在Java环境中实现Word文档转换为PDF,并且去除PDF中的水印。 首先,`aspose-words-20.1-jdk17.jar`是Aspose.Words for Java的库文件,它包含了处理Word文档和进行转换的所有...
总结起来,XDocReport和Docx4j都是强大的Java库,能够帮助开发者实现Word到PDF的转换。XDocReport更适合于动态内容填充,而Docx4j提供了更底层的文档处理能力。根据具体需求和项目情况,可以选择合适的库进行集成。...
总结来说,用C#.NET实现生成PDF文档和将WORD转换为PDF涉及到对PDF结构的理解、使用合适的库进行编程、处理WORD文档的复杂格式以及异常处理。此外,OCR技术在文档转换过程中的应用也是提高效率的关键环节。通过掌握...
在这个场景中,我们使用Jacob来实现Word文档到PDF的转换,以保持格式的一致性和美观性。在转换过程中,确保你的计算机上已经安装了Office 2010或更高版本,因为较低版本可能无法支持某些功能,导致转换失败或出现...
总结来说,Word转PDF带有导航页或书签的关键在于设置好大纲级别,并在转换时选择将标题样式输出为书签。无论是WPS还是Office,都有相应的选项可以实现这一功能,只需按照教程步骤操作,就能轻松实现转换并保留导航...
总结来说,.NET中的Word转PDF是一个常见的需求,可以通过多种方式实现,包括利用Microsoft.Office.Interop.Word和第三方库。开发者需要根据具体项目需求,考虑性能、兼容性、安全性和易用性等因素来选择合适的解决...
总结来说,"Word转PDF"是一个常见的文档操作,通过第三方控件如Aspose、Spire.Doc等可以方便地实现这一转换。这些工具不仅提供API供开发者集成,还支持直接的用户界面操作,满足不同场景下的需求。在选择转换方法时...
标题提到的“word 转pdf 可以跨平台同时也实现中文显示”揭示了一个重要的知识点,即如何将Microsoft Word文档转换为PDF格式,同时确保在任何平台上都能正确显示中文内容。下面将详细探讨这个过程以及相关的技术背景...
总结来说,C#实现Word转PDF的方法主要包括使用Microsoft Office Interop(需安装Office且不适用于服务器环境)和依赖第三方库如Aspose.Words或iTextSharp。选择哪种方法取决于项目需求,如性能、跨平台支持、许可证...
总结起来,实现Java中的Word转PDF涉及到多个库的协同工作。Apache POI提供对Word文档的读取,Docx4j负责转换为PDF,而iText或PDFBox则用于格式优化。这种转换方法虽然涉及的组件较多,但能确保转换的准确性和灵活性...
在IT行业中,转换文件格式是一项常见的...总结来说,使用Java和Jacob库实现Word转PDF是一项实用的技术,但需要注意平台限制和可能存在的格式转换问题。在实际开发中,根据项目需求和环境选择合适的转换方案至关重要。
总结来说,利用Sapose这个Java库和自定义的工具类,我们可以高效地实现Word到PDF的转换,并通过流的方式将转换后的文件下载到本地。这种技术对于开发文档处理应用或需要跨平台兼容的系统非常有用。在实际应用中,...
### Word转PDF在Linux与Windows环境下的应用及移植性 #### 概述 在软件开发过程中,经常需要处理文档格式转换的问题,特别是在不同操作系统之间确保文档的兼容性和一致性时尤为重要。例如,在项目开发中可能会遇到...
标题中的“poi将word、PPT、Excel转pdf实现在线预览的jar包”涉及到的是Apache POI库在Java开发中的应用,以及如何利用它来处理Microsoft Office文档并转换为PDF格式,以便进行在线预览。Apache POI是Java平台上用于...
总结一下,本篇文章介绍了如何使用Apache OpenOffice和Eclipse实现“Word转PDF”的代码转换。通过理解并运用这些知识点,开发者可以创建自己的文件转换工具,满足特定的需求,提高工作效率。这个过程涉及到文件系统...
这个"Word转pdf所需文件"的压缩包提供了实现这一目标所需的组件。让我们深入了解一下这些组件及其工作原理。 首先,"jacob-1.19"是一个Java库,全称为Java COM Bridge。它允许Java应用程序与COM(Component Object ...
总结一下,本项目通过Aspose库实现了在Java环境中,利用MyEclipse开发工具将Word和Excel文档转换为PDF的功能。开发者可以根据提供的代码示例,结合自己的实际需求,进行相应的修改和扩展,以适应不同的转换场景。...
总结来说,Java实现Word转图片、Word转PDF以及图片转PDF,需要依赖于如Apache POI、iText、PDFBox等第三方库,结合Java的IO和图像处理功能。这个压缩包提供了相关的jar包和代码示例,有助于开发者快速上手这些转换...
以下是对利用Jacob实现Word转PDF的详细说明: 1. **Jacob库介绍**: Jacob是一个Java到COM桥接器,它使得Java开发者能够使用COM组件,如Microsoft Office的Word应用,来执行特定的任务。Jacob通过JNI(Java Native...
总结来说,这个"word转pdf.zip"压缩包提供了一种便捷的方式来将Word文档转换为PDF,特别适用于项目集成或文件预览。其中的"word转pdf.jar"是转换的核心工具,而"license.xml"则规定了使用条件。为了合法且安全地使用...