- 浏览: 142646 次
- 性别:
- 来自: 西安
文章分类
最新评论
-
klo0704:
这个我没有进行测试 过。
linux word 转 pdf 下类似百度文库开发研究与实战 -
leipan19890705:
你好!请问你用OpenOffice将word等转换为pdf,会 ...
linux word 转 pdf 下类似百度文库开发研究与实战 -
selectFrom:
com.jacob.com.ComFailException: ...
2010 word 转换pdf jacob
package com.xinlong.test;
import java.io.File;
import java.io.FileFilter;
import java.util.Calendar;
import java.util.Date;
import com.jacob.activeX.ActiveXComponent;
import com.jacob.com.ComThread;
import com.jacob.com.Dispatch;
import com.jacob.com.Variant;
public class ExcelToPdf {
private String path;
public static boolean runFlag=false;
public ExcelToPdf(String path)
{
this.path=path;
}
//原始
public void saveExcelAsPdf1(String filePath,String outFile){
ComThread.InitSTA();
ActiveXComponent actcom=new ActiveXComponent("Excel.Application");
try{
System.out.println((new Date()).toString()+" start convert from : "+filePath+" to "+outFile);
actcom.setProperty("Visible", new Variant(false));
Dispatch excels=actcom.getProperty("Workbooks").toDispatch();
Dispatch excel = Dispatch.invoke(excels,"Open",Dispatch.Method,
new Object[]{filePath,new Variant(false),new Variant(false)},
new int[9] ).toDispatch();
Dispatch.invoke(excel,"SaveAs",Dispatch.Method,new Object[]{outFile,new Variant(57), new Variant(false),
new Variant(57), new Variant(57),new Variant(false), new Variant(true),new Variant(57), new Variant(false),
new Variant(true), new Variant(false) },new int[1]);
Dispatch.call(excel, "Close",new Variant(false));
if(actcom!=null){
actcom.invoke("Quit",new Variant[]{});
actcom=null;
}
ComThread.Release();
File temp=new File(filePath);
//temp.renameTo(new File(filePath+"."+getDateStr()));
temp.renameTo(new File(filePath));
temp=new File(filePath);
// temp.deleteOnExit(); //自动删除
temp=null;
System.out.println((new Date()).toString()+" convert ok : "+filePath+" to "+outFile);
}catch(Exception es){
es.printStackTrace();
}
}
/***
* office 转换pdf
* @param docfile 要转换的路径
* @param toFile 转换后的路径
* @param type 57-ppt,17-doc,32-xls
*/
public void saveExcelAsPdf(String docfile, String toFile){
ComThread.InitSTA();
ActiveXComponent app=null;
Dispatch docs =null;
int type=17;
String typedoc=docfile.substring(docfile.lastIndexOf("."));
if(typedoc.equals(".xls")||typedoc.equals(".xlsx")){
type=32;
}else if(typedoc.equals(".ppt")||typedoc.equals(".pptx")){
type=57;
}
try {
if(type==32)
{
app = new ActiveXComponent("PowerPoint.Application"); // 启动PowerPoint
app.setProperty("Visible", new Variant(true)); //转ppt的时候把false改为了true
docs = app.getProperty("Presentations").toDispatch(); //ppt
}else if(type==57)
{
app = new ActiveXComponent("Excel.Application"); // 启动Excel
app.setProperty("Visible", new Variant(false));
docs = app.getProperty("Workbooks").toDispatch(); //excel
}else if(type==17)
{
app = new ActiveXComponent("Word.Application"); // 启动word
app.setProperty("Visible", new Variant(false));
docs = app.getProperty("Documents").toDispatch(); //word
}
Dispatch doc = Dispatch.invoke(docs,"Open",Dispatch.Method,new Object[] {
docfile, new Variant(false),new Variant(true) }, new int[1]).toDispatch();
Dispatch.invoke(doc, "SaveAs", Dispatch.Method, new Object[] {
toFile, new Variant(type) }, new int[1]);
if(type!=32)
{
Variant f = new Variant(false);
Dispatch.call(doc, "Close", f); //转ppt的时候把这两行代码去掉
}
} catch (Exception e) {
e.printStackTrace();
} finally {
app.invoke("Quit", new Variant[] {});
ComThread.Release();
}
}
public void listAllFile(){
runFlag=true;
String fileName="",appdex="";
File temp=null;
try{
File [] list=new File(path).listFiles(new FileFilter(){
public boolean accept(File pathname) {
boolean x = false;
if (pathname.getName().toLowerCase().endsWith(".doc")||pathname.getName().toLowerCase().endsWith(".xls")||pathname.getName().toLowerCase().endsWith(".ppt")) {
c+=1; System.out.println(pathname+"==="+c);
x = true;
}
return x;
}
});
//System.out.println((new Date()).toString()+" Total Convert File : "+list.length);
// for(int i=0;i<list.length;i++){
// fileName=list[i].getName().substring(0, list[i].getName().indexOf("."));
// appdex=list[i].getName().substring(list[i].getName().indexOf("."));
// temp=new File(path+fileName+".pdf");
// if(temp.exists()){
// temp.renameTo(new File(path+fileName+"-"+getDateStr()+".pdf"));
// }
// saveExcelAsPdf(path+fileName+appdex,path+fileName+".pdf");
// System.out.println(path+fileName+appdex);
runFlag=false;
// }
}catch(Exception ex){
ex.printStackTrace();
}
runFlag=false;
}
public String getDateStr(){
Calendar cl=Calendar.getInstance();
cl.setTime(new Date());
String str=cl.get(Calendar.YEAR)+""+(cl.get(Calendar.MONTH)+1)+""
+cl.get(Calendar.DATE)+""+cl.get(Calendar.HOUR)+""+cl.get(Calendar.MINUTE)+""
+cl.get(Calendar.SECOND);
str="9月加班.xls";
return str;
}
public void pp()
{
// ComThread.InitSTA();
//
// ActiveXComponent slideApp = new ActiveXComponent("PowerPoint.Application");
//
// Dispatch presentations = slideApp.getProperty("Presentations").toDispatch();
//
// Dispatch presentation = Dispatch.call(presentations, "Open", inputFile.getAbsolutePath(),
// MsoTriState.msoTrue.getInteger(), // ReadOnly
// MsoTriState.msoFalse.getInteger(), // Untitled The Untitled parameter is used to create a copy of the presentation.
// MsoTriState.msoFalse.getInteger() // WithWindow
// ).toDispatch();
}
private long[] count = new long[] { 0, 0 };
private File file;
int c=0;
private long[] listFile(String path) {
file = new File(path);
File[] f = file.listFiles();
for (int i = 0; i < f.length; i++) {
if (f[i].isDirectory()) {
count[0]++;
//System.out.println(f[i].getPath());
this.listFile(f[i].getPath());
this.path=f[i].getPath();
listAllFile();
} else {
count[1]++;
}
}
//System.out.println("shu="+c);
return count;
}
/**
* 得到指定路径下的文件和文件夹数量
*
* @param path
* 要查看的路径
* @return object[0]耗时(毫秒)<br>
* object[1]文件夹数量<br>
* object[2]文件数量
*/
public Object[] getFileCount(String path) {
long t = System.currentTimeMillis();
long[] count = this.listFile(path);
//System.out.println(path);
t = System.currentTimeMillis() - t;
Object[] o = new Object[] { Long.valueOf(t), Long.valueOf(count[0]),
Long.valueOf(count[1])};
return o;
}
public static void main(String[] args) {
ExcelToPdf l = new ExcelToPdf("");
Object[] count = l.getFileCount("E:\\肖秋峰");
System.out.println("用时:"+count[0]);
System.out.println("文件夹个数:"+count[1]);
System.out.println("共文件"+count[2]);
}
}
//public static void main(String[] args) {
//
// ExcelToPdf e = new ExcelToPdf("D:\\质量管理体系文件\\");
// //e.listAllFile();
//// e.saveExcelAsPdf("D:\\转换\\加班时间.xlsx","D:\\转换\\j.pdf");
//// System.out.println("222.111.docx".substring("222.111.docx".lastIndexOf(".")));
//
//}
//}
import java.io.File;
import java.io.FileFilter;
import java.util.Calendar;
import java.util.Date;
import com.jacob.activeX.ActiveXComponent;
import com.jacob.com.ComThread;
import com.jacob.com.Dispatch;
import com.jacob.com.Variant;
public class ExcelToPdf {
private String path;
public static boolean runFlag=false;
public ExcelToPdf(String path)
{
this.path=path;
}
//原始
public void saveExcelAsPdf1(String filePath,String outFile){
ComThread.InitSTA();
ActiveXComponent actcom=new ActiveXComponent("Excel.Application");
try{
System.out.println((new Date()).toString()+" start convert from : "+filePath+" to "+outFile);
actcom.setProperty("Visible", new Variant(false));
Dispatch excels=actcom.getProperty("Workbooks").toDispatch();
Dispatch excel = Dispatch.invoke(excels,"Open",Dispatch.Method,
new Object[]{filePath,new Variant(false),new Variant(false)},
new int[9] ).toDispatch();
Dispatch.invoke(excel,"SaveAs",Dispatch.Method,new Object[]{outFile,new Variant(57), new Variant(false),
new Variant(57), new Variant(57),new Variant(false), new Variant(true),new Variant(57), new Variant(false),
new Variant(true), new Variant(false) },new int[1]);
Dispatch.call(excel, "Close",new Variant(false));
if(actcom!=null){
actcom.invoke("Quit",new Variant[]{});
actcom=null;
}
ComThread.Release();
File temp=new File(filePath);
//temp.renameTo(new File(filePath+"."+getDateStr()));
temp.renameTo(new File(filePath));
temp=new File(filePath);
// temp.deleteOnExit(); //自动删除
temp=null;
System.out.println((new Date()).toString()+" convert ok : "+filePath+" to "+outFile);
}catch(Exception es){
es.printStackTrace();
}
}
/***
* office 转换pdf
* @param docfile 要转换的路径
* @param toFile 转换后的路径
* @param type 57-ppt,17-doc,32-xls
*/
public void saveExcelAsPdf(String docfile, String toFile){
ComThread.InitSTA();
ActiveXComponent app=null;
Dispatch docs =null;
int type=17;
String typedoc=docfile.substring(docfile.lastIndexOf("."));
if(typedoc.equals(".xls")||typedoc.equals(".xlsx")){
type=32;
}else if(typedoc.equals(".ppt")||typedoc.equals(".pptx")){
type=57;
}
try {
if(type==32)
{
app = new ActiveXComponent("PowerPoint.Application"); // 启动PowerPoint
app.setProperty("Visible", new Variant(true)); //转ppt的时候把false改为了true
docs = app.getProperty("Presentations").toDispatch(); //ppt
}else if(type==57)
{
app = new ActiveXComponent("Excel.Application"); // 启动Excel
app.setProperty("Visible", new Variant(false));
docs = app.getProperty("Workbooks").toDispatch(); //excel
}else if(type==17)
{
app = new ActiveXComponent("Word.Application"); // 启动word
app.setProperty("Visible", new Variant(false));
docs = app.getProperty("Documents").toDispatch(); //word
}
Dispatch doc = Dispatch.invoke(docs,"Open",Dispatch.Method,new Object[] {
docfile, new Variant(false),new Variant(true) }, new int[1]).toDispatch();
Dispatch.invoke(doc, "SaveAs", Dispatch.Method, new Object[] {
toFile, new Variant(type) }, new int[1]);
if(type!=32)
{
Variant f = new Variant(false);
Dispatch.call(doc, "Close", f); //转ppt的时候把这两行代码去掉
}
} catch (Exception e) {
e.printStackTrace();
} finally {
app.invoke("Quit", new Variant[] {});
ComThread.Release();
}
}
public void listAllFile(){
runFlag=true;
String fileName="",appdex="";
File temp=null;
try{
File [] list=new File(path).listFiles(new FileFilter(){
public boolean accept(File pathname) {
boolean x = false;
if (pathname.getName().toLowerCase().endsWith(".doc")||pathname.getName().toLowerCase().endsWith(".xls")||pathname.getName().toLowerCase().endsWith(".ppt")) {
c+=1; System.out.println(pathname+"==="+c);
x = true;
}
return x;
}
});
//System.out.println((new Date()).toString()+" Total Convert File : "+list.length);
// for(int i=0;i<list.length;i++){
// fileName=list[i].getName().substring(0, list[i].getName().indexOf("."));
// appdex=list[i].getName().substring(list[i].getName().indexOf("."));
// temp=new File(path+fileName+".pdf");
// if(temp.exists()){
// temp.renameTo(new File(path+fileName+"-"+getDateStr()+".pdf"));
// }
// saveExcelAsPdf(path+fileName+appdex,path+fileName+".pdf");
// System.out.println(path+fileName+appdex);
runFlag=false;
// }
}catch(Exception ex){
ex.printStackTrace();
}
runFlag=false;
}
public String getDateStr(){
Calendar cl=Calendar.getInstance();
cl.setTime(new Date());
String str=cl.get(Calendar.YEAR)+""+(cl.get(Calendar.MONTH)+1)+""
+cl.get(Calendar.DATE)+""+cl.get(Calendar.HOUR)+""+cl.get(Calendar.MINUTE)+""
+cl.get(Calendar.SECOND);
str="9月加班.xls";
return str;
}
public void pp()
{
// ComThread.InitSTA();
//
// ActiveXComponent slideApp = new ActiveXComponent("PowerPoint.Application");
//
// Dispatch presentations = slideApp.getProperty("Presentations").toDispatch();
//
// Dispatch presentation = Dispatch.call(presentations, "Open", inputFile.getAbsolutePath(),
// MsoTriState.msoTrue.getInteger(), // ReadOnly
// MsoTriState.msoFalse.getInteger(), // Untitled The Untitled parameter is used to create a copy of the presentation.
// MsoTriState.msoFalse.getInteger() // WithWindow
// ).toDispatch();
}
private long[] count = new long[] { 0, 0 };
private File file;
int c=0;
private long[] listFile(String path) {
file = new File(path);
File[] f = file.listFiles();
for (int i = 0; i < f.length; i++) {
if (f[i].isDirectory()) {
count[0]++;
//System.out.println(f[i].getPath());
this.listFile(f[i].getPath());
this.path=f[i].getPath();
listAllFile();
} else {
count[1]++;
}
}
//System.out.println("shu="+c);
return count;
}
/**
* 得到指定路径下的文件和文件夹数量
*
* @param path
* 要查看的路径
* @return object[0]耗时(毫秒)<br>
* object[1]文件夹数量<br>
* object[2]文件数量
*/
public Object[] getFileCount(String path) {
long t = System.currentTimeMillis();
long[] count = this.listFile(path);
//System.out.println(path);
t = System.currentTimeMillis() - t;
Object[] o = new Object[] { Long.valueOf(t), Long.valueOf(count[0]),
Long.valueOf(count[1])};
return o;
}
public static void main(String[] args) {
ExcelToPdf l = new ExcelToPdf("");
Object[] count = l.getFileCount("E:\\肖秋峰");
System.out.println("用时:"+count[0]);
System.out.println("文件夹个数:"+count[1]);
System.out.println("共文件"+count[2]);
}
}
//public static void main(String[] args) {
//
// ExcelToPdf e = new ExcelToPdf("D:\\质量管理体系文件\\");
// //e.listAllFile();
//// e.saveExcelAsPdf("D:\\转换\\加班时间.xlsx","D:\\转换\\j.pdf");
//// System.out.println("222.111.docx".substring("222.111.docx".lastIndexOf(".")));
//
//}
//}
发表评论
-
java 保存页面上传 js 图片
2017-05-10 18:03 442现在页面上有 <img src="dat ... -
java 批量推送 ios
2017-05-08 14:47 1745此程序需要Javapns 2.2版 ... -
SpringMVC 文件上传配置,多文件上传,使用的MultipartFile
2016-07-06 17:27 776基本的SpringMVC的搭建在我的上一篇文章里已经写过了, ... -
JS 传值到 action 乱码
2016-05-16 17:11 539JS var afterencode = encod ... -
java发送http的get、post请求
2016-04-08 15:37 652package wzh.Http; import jav ... -
SpringMVC+shiro+hibernate权限管理整合
2016-02-26 10:13 1558什么是权限? 权限是管理web应用用户的一种手段,比如 ... -
SpringMVC结合ajaxfileupload文件无刷新上传
2015-12-08 13:25 686jQuery没有提供ajax的文件上传,我们可以通过aj ... -
powerdesigner 生成mysql PDM 的COMMENT注释
2015-09-07 11:40 649powerdesigner 生成mysql PDM 的COM ... -
java合并单元格同时导出excel
2014-11-06 20:00 3368POI进行跨行需要用到对象HSSFSheet对象,现在就当我 ... -
c3p0 数据重启 tomcat 正常运行配置
2014-08-20 09:20 1110<bean id="dataSource&q ... -
Java中如何获取Spring中配置的bean 和注解
2014-06-12 22:14 1060一、什么是Spring? Spring是一个轻量级的控制反转( ... -
读写Excel文件的内容
2014-04-14 11:22 788package chb.util; import java. ... -
java(Web)中相对路径,绝对路径问题总结
2014-04-10 11:05 788主题:java(Web)中相对路 ... -
Oracle 删除恢复数据
2014-01-14 14:57 757今天一哥们把正式服务 ... -
java socket
2013-11-21 11:43 770一,网络编程中两个主要的问题 一个是如何准确的定位网络上一台 ... -
java 实现对图片的压缩生成缩略图
2013-11-14 16:31 1263一位高手的上传内容中学习到的,并将其代码根据我的需求进行了修 ... -
ORACLE 数据库的级联查询 一句sql搞定(部门多级)
2013-08-09 16:55 4604在ORACLE 数据库中有一种方法可以实现级联查询 ... -
Eclipse更改皮肤 . 保护眼睛
2013-07-05 14:57 867今天在网上看到别人的 ... -
使用eclipse生成html格式注释文档 [ javadoc ]
2013-07-02 14:34 1151一、操作步骤 1. 选中要生成doc的项目,右键 ... -
Spring+Quartz实现定时任务的配置方法
2013-02-01 11:57 9131、Scheduler的配置 <bean class= ...
相关推荐
用java 打印目录下所有文件名称 包括子目录, 默认目录 "C:/" 打印完 目录列表 输出在 选择的根目录的 "path/TestResultList.txt" 文件夹里。
要获取文件夹大小,需要使用递归方法,遍历文件夹下的所有文件和子文件夹,计算其大小。下面是一个示例代码: ```java public long getFileSize(File f) throws Exception { long size = 0; File flist[] = f....
例如,你可以使用`listFiles()`方法来获取目录下的所有文件和子目录,它会返回一个`File`对象数组。但要注意,这个方法不包括隐藏文件。 ```java File directory = new File("C:\\example\\folder"); File[] files ...
在JDK 7及以上版本中,Java提供了一种更加高效且灵活的方式来删除文件,包括递归删除整个文件夹及其子文件,这主要通过`java.nio.file`包中的`Files`类和`SimpleFileVisitor`类来实现。下面我们将详细探讨如何实现这...
这段代码首先检查源文件夹是否存在且为目录,然后获取其下所有文件或子文件夹。对于每个文件,如果是文件夹,就递归调用`moveFiles()`方法;如果是文件,就使用Java NIO的`Files.move()`方法来移动文件,此方法会...
获取某个路径下的 所有文件夹和子文件夹 java后缀的文件的总行数 扩展名可随意改
在Java编程语言中,遍历一个目录下的所有文件和子目录是一项常见的任务,尤其是在处理文件系统操作时。这里我们将深入探讨如何使用Java API来实现这一功能,并解释相关的知识点。 首先,Java提供了`java.io.File`类...
"获取文件夹的子目录的文件名"这个任务就是一个典型的文件系统操作,它涉及到读取和列举一个目录下所有子目录中的文件名。这个过程在不同的编程语言中实现方式可能会有所不同,但基本的思路是相似的。下面我们将详细...
在Java编程语言中,读取目录下指定的文件是一项常见的任务,这主要涉及到文件I/O操作。Java提供了丰富的API来处理文件系统相关的操作,包括读取、创建、删除文件以及遍历目录等。这里我们将详细讲解如何在Java中实现...
在Java编程中,统计文件夹大小是一项...在统计文件夹大小时,我们可以利用这些工具来提高效率,同时满足特定需求,如过滤文件类型和处理子目录。这样的实现方式对于处理大规模的文件系统操作具有很好的性能和可扩展性。
在Java中,`java.io.File`类提供了创建和删除文件或目录的功能。下面将详细介绍如何利用这些功能实现文件和文件夹的基本操作。 #### 一、创建文件夹 创建文件夹是通过`File`类的`mkdir()`或`mkdirs()`方法实现的。...
在Java开发中,经常会遇到需要遍历指定目录及其子目录下所有文件的情况。本文将详细介绍如何使用Java标准库中的`java.io.File`类来实现这一功能。我们将通过一个简单的递归函数来演示如何遍历目录、列出所有文件的...
// 获取源目录下的所有文件和子目录 ``` 遍历这个数组,对每个`File`对象进行判断,看它是文件还是目录。如果是文件,我们就进行复制操作;如果是目录,我们可以递归调用此方法继续复制子目录。 在Java中,我们...
例如,如果你需要列出指定目录下的所有文件和子目录,可以使用`list()`或`listFiles()`方法: ```java File directory = new File("/path/to/directory"); String[] files = directory.list(); // 列出文件名 File...
这个`FileList`类提供了一个方便的方法,可以轻松集成到任何Java项目中,以获取特定文件夹及其子目录下的所有文件名,并将这些名称保存到一个文件中。通过调用`new FileList("目录路径", "列表文件路径")`并随后调用...
- 如果要压缩的是一个目录,需要遍历目录下的所有文件和子目录,对每个子项重复上述步骤。 4. **关闭流**: - 在所有文件和目录都添加完成后,记得关闭`ZipOutputStream`,这将完成ZIP文件的写入过程。 5. **...
在Java编程中,生成一个文件或目录及其子文件夹下所有文件的路径列表是一项常见的任务。这在处理大量文件或需要遍历整个文件系统时非常有用。以下将详细讲解如何实现这一功能,并提供相关的源码示例。 首先,我们...
Java实现实时监控目录下文件变化的方法 Java实现实时监控目录下文件变化的方法是指通过Java语言来实现实时监控目录下文件的变化情况,包括文件的创建、删除、修改等操作。这种方法可以应用于各种场景,例如文件系统...