122 个解决方案
#1
import com.jacob.activeX.ActiveXComponent;
import com.jacob.com.Dispatch;
import com.jacob.com.Variant;
/**
* @author XuMing Li
*
* @version 1.00, 2007-4-9
*
*/
public class D2P {
private ActiveXComponent wordCom = null;
private Object wordDoc = null;
private final Variant False = new Variant(false);
private final Variant True = new Variant(true);
/**
* 打开word文档
*
* @param filePath
* word文档
* @return 返回word文档对象
*/
public boolean openWord(String filePath) {
//建立ActiveX部件
wordCom = new ActiveXComponent( "Word.Application ");
try {
//返回wrdCom.Documents的Dispatch
Dispatch wrdDocs = wordCom.getProperty( "Documents ").toDispatch();
//调用wrdCom.Documents.Open方法打开指定的word文档,返回wordDoc
wordDoc = Dispatch.invoke(wrdDocs, "Open ", Dispatch.Method,
new Object[] { filePath }, new int[1]).toDispatch();
return true;
} catch (Exception ex) {
ex.printStackTrace();
}
return false;
}
/**
* 关闭word文档
*/
public void closeWord() {
//关闭word文件
wordCom.invoke( "Quit ", new Variant[] {});
}
/**
* * 将word文档打印为PS文件后,使用Distiller将PS文件转换为PDF文件 *
*
* @param sourceFilePath
* 源文件路径 *
* @param destinPSFilePath
* 首先生成的PS文件路径 *
* @param destinPDFFilePath
* 生成PDF文件路径
*/
public void docToPDF(String sourceFilePath, String destinPSFilePath,
String destinPDFFilePath) {
if (!openWord(sourceFilePath)) {
closeWord();
return;
}
//建立Adobe Distiller的com对象
ActiveXComponent distiller = new ActiveXComponent(
"PDFDistiller.PDFDistiller.1 ");
try {
//设置当前使用的打印机,我的Adobe Distiller打印机名字为 "Adobe PDF "
wordCom.setProperty( "ActivePrinter ", new Variant( "Adobe PDF "));
//设置printout的参数,将word文档打印为postscript文档。目前只使用了前5个参数,如果要使用更多的话可以参考MSDN的office开发相关api
//是否在后台运行
Variant Background = False;
//是否追加打印
Variant Append = False;
//打印所有文档
int wdPrintAllDocument = 0;
Variant Range = new Variant(wdPrintAllDocument);
//输出的postscript文件的路径
Variant OutputFileName = new Variant(destinPSFilePath);
Dispatch.callN((Dispatch) wordDoc, "PrintOut ", new Variant[] {
Background, Append, Range, OutputFileName });
System.out.println( "由word文档打印为ps文档成功! ");
//调用Distiller对象的FileToPDF方法所用的参数,详细内容参考Distiller Api手册
//作为输入的ps文档路径
Variant inputPostScriptFilePath = new Variant(destinPSFilePath);
//作为输出的pdf文档的路径
Variant outputPDFFilePath = new Variant(destinPDFFilePath);
//定义FileToPDF方法要使用adobe pdf设置文件的路径,在这里没有赋值表示并不使用pdf配置文件
Variant PDFOption = new Variant( " ");
//调用FileToPDF方法将ps文档转换为pdf文档
Dispatch.callN(distiller, "FileToPDF ", new Variant[] {
inputPostScriptFilePath, outputPDFFilePath, PDFOption });
System.out.println( "由ps文档转换为pdf文档成功! ");
} catch (Exception ex) {
ex.printStackTrace();
} finally {
closeWord();
}
}
public static void main(String[] argv) {
D2P d2p = new D2P();
// d2p.openWord( "c:/12.doc ");
// d2p.callWordMacro( "c:/12.docc ", "MyWordMacro ",
// new String[] { "这是调用word宏的测试程序 " });
d2p.docToPDF( "d:/12.doc ", "c:/1p.ps ", "c:/1p.pdf ");
}
}
#2
你真是太幸运了,我刚发到博客
将office文档(word,excel,powerpoint)转换为pdf
http://www.codigg.com/2009/05/office-word-excel-ppt-to-pdf-java/
本文中的方法可以将Office文档(word,excel,powerpoint)转为pdf文档。代码中使用了jcom(http://sourceforge.net/projects/jcom),日本的一个项目。
将office文档(word,excel,powerpoint)转换为pdf
http://www.codigg.com/2009/05/office-word-excel-ppt-to-pdf-java/
本文中的方法可以将Office文档(word,excel,powerpoint)转为pdf文档。代码中使用了jcom(http://sourceforge.net/projects/jcom),日本的一个项目。
#3
看来没有程序做不出来的啊,这么强悍啊
#4
mark
#5
2楼 刚从你的博客回来!
这个类怎么用啊!
能给菜鸟级别的人讲解一下不!
我都不知道怎么导入包!
import com.jacob.activeX.ActiveXComponent;
import com.jacob.com.Dispatch;
import com.jacob.com.Variant;
这个类怎么用啊!
能给菜鸟级别的人讲解一下不!
我都不知道怎么导入包!
import com.jacob.activeX.ActiveXComponent;
import com.jacob.com.Dispatch;
import com.jacob.com.Variant;
#6
mark
#7
学习
#8
代码不错,但是好多类没有提供,还是运行不了
#9
厉害呀,学习
#10
强悍
#11
不错,学习了!
#12
我也得好好学学了
#13
学习了!
#14
不是有软件包吗?
#15
好强大
#16
正在需要。
#17
学习
#18
有这么复杂?
openoffice3直接输出不好?
openoffice3直接输出不好?
#19
不错,收藏之。
#20
不会,但还是支持一下。
#21
mark
#22
没有软件包 5555
#23
好东西,mark!
#24
下载转化软件
#25
Windows XP下建议使用Adobe Acrobat 6 Professional或是更高版本!
#26
标记一下,一会在机器上实验。。。
#27
不错啊
#28
dingding
#29
标记
#30
还没有机会涉及过这样的需求,学习下~~~~~~~~~
#31
我还以为是用工具呢
汗
汗
#32
雷~~~~~~
#33
mark
#34
好厉害啊,我只在windous下学习了一下
#35
强,学习了
#36
学习
#37
崇拜。。。
#38
kanbudong
#39
java很强大呀
#40
这个不得不mark
#41
标记
#42
不错,学历
#43
学习!
#44
学习!
#45
收藏。
#46
有pdf的 文本转化器 也有制作器
不过挺麻烦!
不过挺麻烦!
#47
可以使用OpenOffice,很容易手动转换。
也可以调用OpenOffice的API。
也可以调用OpenOffice的API。
#48
学习
#49
收藏了。谢谢
#50
仍然依赖于adobe acrobat pro版.
#1
import com.jacob.activeX.ActiveXComponent;
import com.jacob.com.Dispatch;
import com.jacob.com.Variant;
/**
* @author XuMing Li
*
* @version 1.00, 2007-4-9
*
*/
public class D2P {
private ActiveXComponent wordCom = null;
private Object wordDoc = null;
private final Variant False = new Variant(false);
private final Variant True = new Variant(true);
/**
* 打开word文档
*
* @param filePath
* word文档
* @return 返回word文档对象
*/
public boolean openWord(String filePath) {
//建立ActiveX部件
wordCom = new ActiveXComponent( "Word.Application ");
try {
//返回wrdCom.Documents的Dispatch
Dispatch wrdDocs = wordCom.getProperty( "Documents ").toDispatch();
//调用wrdCom.Documents.Open方法打开指定的word文档,返回wordDoc
wordDoc = Dispatch.invoke(wrdDocs, "Open ", Dispatch.Method,
new Object[] { filePath }, new int[1]).toDispatch();
return true;
} catch (Exception ex) {
ex.printStackTrace();
}
return false;
}
/**
* 关闭word文档
*/
public void closeWord() {
//关闭word文件
wordCom.invoke( "Quit ", new Variant[] {});
}
/**
* * 将word文档打印为PS文件后,使用Distiller将PS文件转换为PDF文件 *
*
* @param sourceFilePath
* 源文件路径 *
* @param destinPSFilePath
* 首先生成的PS文件路径 *
* @param destinPDFFilePath
* 生成PDF文件路径
*/
public void docToPDF(String sourceFilePath, String destinPSFilePath,
String destinPDFFilePath) {
if (!openWord(sourceFilePath)) {
closeWord();
return;
}
//建立Adobe Distiller的com对象
ActiveXComponent distiller = new ActiveXComponent(
"PDFDistiller.PDFDistiller.1 ");
try {
//设置当前使用的打印机,我的Adobe Distiller打印机名字为 "Adobe PDF "
wordCom.setProperty( "ActivePrinter ", new Variant( "Adobe PDF "));
//设置printout的参数,将word文档打印为postscript文档。目前只使用了前5个参数,如果要使用更多的话可以参考MSDN的office开发相关api
//是否在后台运行
Variant Background = False;
//是否追加打印
Variant Append = False;
//打印所有文档
int wdPrintAllDocument = 0;
Variant Range = new Variant(wdPrintAllDocument);
//输出的postscript文件的路径
Variant OutputFileName = new Variant(destinPSFilePath);
Dispatch.callN((Dispatch) wordDoc, "PrintOut ", new Variant[] {
Background, Append, Range, OutputFileName });
System.out.println( "由word文档打印为ps文档成功! ");
//调用Distiller对象的FileToPDF方法所用的参数,详细内容参考Distiller Api手册
//作为输入的ps文档路径
Variant inputPostScriptFilePath = new Variant(destinPSFilePath);
//作为输出的pdf文档的路径
Variant outputPDFFilePath = new Variant(destinPDFFilePath);
//定义FileToPDF方法要使用adobe pdf设置文件的路径,在这里没有赋值表示并不使用pdf配置文件
Variant PDFOption = new Variant( " ");
//调用FileToPDF方法将ps文档转换为pdf文档
Dispatch.callN(distiller, "FileToPDF ", new Variant[] {
inputPostScriptFilePath, outputPDFFilePath, PDFOption });
System.out.println( "由ps文档转换为pdf文档成功! ");
} catch (Exception ex) {
ex.printStackTrace();
} finally {
closeWord();
}
}
public static void main(String[] argv) {
D2P d2p = new D2P();
// d2p.openWord( "c:/12.doc ");
// d2p.callWordMacro( "c:/12.docc ", "MyWordMacro ",
// new String[] { "这是调用word宏的测试程序 " });
d2p.docToPDF( "d:/12.doc ", "c:/1p.ps ", "c:/1p.pdf ");
}
}
#2
你真是太幸运了,我刚发到博客
将office文档(word,excel,powerpoint)转换为pdf
http://www.codigg.com/2009/05/office-word-excel-ppt-to-pdf-java/
本文中的方法可以将Office文档(word,excel,powerpoint)转为pdf文档。代码中使用了jcom(http://sourceforge.net/projects/jcom),日本的一个项目。
将office文档(word,excel,powerpoint)转换为pdf
http://www.codigg.com/2009/05/office-word-excel-ppt-to-pdf-java/
本文中的方法可以将Office文档(word,excel,powerpoint)转为pdf文档。代码中使用了jcom(http://sourceforge.net/projects/jcom),日本的一个项目。
#3
看来没有程序做不出来的啊,这么强悍啊
#4
mark
#5
2楼 刚从你的博客回来!
这个类怎么用啊!
能给菜鸟级别的人讲解一下不!
我都不知道怎么导入包!
import com.jacob.activeX.ActiveXComponent;
import com.jacob.com.Dispatch;
import com.jacob.com.Variant;
这个类怎么用啊!
能给菜鸟级别的人讲解一下不!
我都不知道怎么导入包!
import com.jacob.activeX.ActiveXComponent;
import com.jacob.com.Dispatch;
import com.jacob.com.Variant;
#6
mark
#7
学习
#8
代码不错,但是好多类没有提供,还是运行不了
#9
厉害呀,学习
#10
强悍
#11
不错,学习了!
#12
我也得好好学学了
#13
学习了!
#14
不是有软件包吗?
#15
好强大
#16
正在需要。
#17
学习
#18
有这么复杂?
openoffice3直接输出不好?
openoffice3直接输出不好?
#19
不错,收藏之。
#20
不会,但还是支持一下。
#21
mark
#22
没有软件包 5555
#23
好东西,mark!
#24
下载转化软件
#25
Windows XP下建议使用Adobe Acrobat 6 Professional或是更高版本!
#26
标记一下,一会在机器上实验。。。
#27
不错啊
#28
dingding
#29
标记
#30
还没有机会涉及过这样的需求,学习下~~~~~~~~~
#31
我还以为是用工具呢
汗
汗
#32
雷~~~~~~
#33
mark
#34
好厉害啊,我只在windous下学习了一下
#35
强,学习了
#36
学习
#37
崇拜。。。
#38
kanbudong
#39
java很强大呀
#40
这个不得不mark
#41
标记
#42
不错,学历
#43
学习!
#44
学习!
#45
收藏。
#46
有pdf的 文本转化器 也有制作器
不过挺麻烦!
不过挺麻烦!
#47
可以使用OpenOffice,很容易手动转换。
也可以调用OpenOffice的API。
也可以调用OpenOffice的API。
#48
学习
#49
收藏了。谢谢
#50
仍然依赖于adobe acrobat pro版.