office转换成pdf
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException; import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Image;
import com.itextpdf.text.PageSize;
import com.itextpdf.text.pdf.PdfWriter;
import com.jacob.activeX.ActiveXComponent;
import com.jacob.com.ComFailException;
import com.jacob.com.ComThread;
import com.jacob.com.Dispatch;
import com.jacob.com.Variant; public class JacobPDFConverter implements PDFConverter {
private static final int wdFormatPDF = 17;
private static final int xlTypePDF = 0;
private static final int ppSaveAsPDF = 32; public void convert2PDF(String inputFile, String pdfFile) {
String suffix = FileUtils.getFileSufix(inputFile);
File file = new File(inputFile);
if(!file.exists()){
System.out.println("文件不存在!");
return;
}
if(suffix.equals("pdf")){
System.out.println("PDF not need to convert!");
return ;
}
boolean isImg = false;//FileUtils.isImage(inputFile);
try{
isImg = FileUtils.isImage(inputFile);
}catch(Exception ce){ }
if(isImg){
img2PDF(inputFile,pdfFile);
}else if(suffix.equals("doc")||suffix.equals("docx")||suffix.equals("txt")){
word2PDF(inputFile,pdfFile);
}else if(suffix.equals("ppt")||suffix.equals("pptx")){
ppt2PDF(inputFile,pdfFile);
}else if(suffix.equals("xls")||suffix.equals("xlsx")){
excel2PDF(inputFile,pdfFile);
}else if(suffix.equals("wps")){
//wps2PDF(inputFile,pdfFile);
word2PDF(inputFile,pdfFile);
}else{
//System.out.println("文件格式不支持转换!");
word2PDF(inputFile,pdfFile);
}
} public void convert2PDF(String inputFile) {
String pdfFile = FileUtils.getFilePrefix(inputFile)+".pdf";
convert2PDF(inputFile,pdfFile); } public void convert2PDF(String[] inputFiles, String[] pdfFiles) {
try {
for(int i = 0;i<inputFiles.length;i++){
String inputFile = inputFiles[i];
String pdfFile = pdfFiles[i];
if(inputFile==null || inputFile.equals("")) continue;
convert2PDF(inputFile,pdfFile);
}
}catch (Exception ce) { }
} public void convert2PDF(String[] inputFiles) {
String pdfFiles[] = new String[inputFiles.length];
for(int i = 0;i<inputFiles.length;i++){
String inputFile = inputFiles[i];
String pdfFile = FileUtils.getFilePrefix(inputFile)+".pdf";
pdfFiles[i] = pdfFile;
}
convert2PDF(inputFiles,pdfFiles);
} public static void word2PDF(String inputFile,String pdfFile){
ActiveXComponent app = null;
Dispatch doc = null;
try {
ComThread.InitSTA();
app = new ActiveXComponent("Word.Application"); //打开word应用程序
app.setProperty("Visible", false); //设置word不可见
Dispatch docs = app.getProperty("Documents").toDispatch(); //获得word中所有打开的文档,返回Documents对象
//调用Documents对象中Open方法打开文档,并返回打开的文档对象Document
doc = Dispatch.call(docs,
"Open",
inputFile,
false,
true
).toDispatch();
Dispatch.call(doc,
"ExportAsFixedFormat",
pdfFile,
wdFormatPDF //word保存为pdf格式宏,值为17
);
} catch (ComFailException e) { } catch (Exception e) { } finally {
if (doc != null) {
Dispatch.call(doc, "Close", false); //关闭文档
}
if (app != null) {
app.invoke("Quit", 0); //关闭word应用程序
}
ComThread.Release();
}
}
public static void excel2PDF(String inputFile,String pdfFile){
ActiveXComponent app = null;
Dispatch excel = null;
try {
ComThread.InitSTA();
app = new ActiveXComponent("Excel.Application");
app.setProperty("Visible", false);
Dispatch excels = app.getProperty("Workbooks").toDispatch();
excel = Dispatch.call(excels,
"Open",
inputFile,
false,
true
).toDispatch();
Dispatch.call(excel,
"ExportAsFixedFormat",
xlTypePDF,
pdfFile
);
} catch (ComFailException e) { } catch (Exception e) { } finally {
if (excel != null) {
Dispatch.call(excel, "Close",false);
}
if (app != null) {
app.invoke("Quit");
}
ComThread.Release();
}
}
public static void ppt2PDF(String inputFile,String pdfFile){
ActiveXComponent app = null;
Dispatch ppt = null;
try {
ComThread.InitSTA();
app = new ActiveXComponent("PowerPoint.Application");
//app.setProperty("Visible", false);
Dispatch ppts = app.getProperty("Presentations").toDispatch();
ppt = Dispatch.call(ppts,
"Open",
inputFile,
true,//ReadOnly
true,//Untitled指定文件是否有标题
false//WithWindow指定文件是否可见
).toDispatch();
Dispatch.call(ppt,
"SaveAs",
pdfFile,
ppSaveAsPDF
);
} catch (ComFailException e) {
System.out.println(e.getMessage());
} catch (Exception e) { } finally {
if (ppt != null) {
Dispatch.call(ppt, "Close");
}
if (app != null) {
app.invoke("Quit");
}
ComThread.Release();
}
} public void wps2PDF(String inputFile,String pdfFile) {
File sFile = new File(inputFile);
File tFile = new File(pdfFile);
ActiveXComponent wps = null;
try {
ComThread.InitSTA();
wps = new ActiveXComponent("wps.application");
ActiveXComponent doc = wps.invokeGetComponent("Documents").invokeGetComponent("Open", new Variant(sFile.getAbsolutePath()));
doc.invoke("ExportPdf", new Variant(tFile.getAbsolutePath()));
doc.invoke("Close");
doc.safeRelease();
} catch (Exception e) {
System.out.println(e.getMessage());
} finally {
if (wps != null) {
wps.invoke("Terminate");
wps.safeRelease();
}
ComThread.Release();
}
} public void img2PDF(String inputFile,String pdfFile) {
Document doc = new Document(PageSize.A4, 20, 20, 20, 20);
try {
PdfWriter.getInstance(doc, new FileOutputStream(pdfFile));
doc.open();
doc.newPage();
Image img = Image.getInstance(inputFile);
float heigth = img.getHeight();
float width = img.getWidth();
int percent = getPercent(heigth, width);
img.setAlignment(Image.MIDDLE);
img.scalePercent(percent+3);// 表示是原来图像的比例;
doc.add(img);
doc.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (DocumentException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
File mOutputPdfFile = new File(pdfFile);
if (!mOutputPdfFile.exists()) {
mOutputPdfFile.deleteOnExit();
return;
}
}
public static int getPercent(float h, float w) {
int p = 0;
float p2 = 0.0f;
p2 = 530 / w * 100;
p = Math.round(p2);
return p;
}
}
office转换成pdf的更多相关文章
- c# office转换成pdf
下载地址 [url]http://www.microsoft.com/downloads/details.aspx?FamilyId=4D951911-3E7E-4AE6-B059-A2E79ED87 ...
- java-使用Jacob实现office转换成pdf
参考路径: https://blog.csdn.net/csdnFlyFun/article/details/79523262#commentBox Jacob组件下载地址:https://sourc ...
- 关于office转换成pdf组件服务中的DCOM配置问题
在开始->运行 中录入“dcomcnfg” 单击“确定”后弹出“组件服务”窗口 依次选择“组件服务”->“计算机”->“我的电脑”->“DCOM配置” 在“DCOM配置”下找到 ...
- C#将Word转换成PDF方法总结(基于Office和WPS两种方案)
有时候,我们需要在线上预览word文档,当然我们可以用NPOI抽出Word中的文字和表格,然后显示到网页上面,但是这样会丢失掉Word中原有的格式和图片.一个比较好的办法就是将word转换成pdf,然 ...
- 服务器端打开office然后采用虚拟打印 转换成pdf
服务器端打开office然后采用虚拟打印 转换成pdf [WebMethod] public bool ConvertWordTOPDF(string WordPath) { bool ret=fal ...
- java调用com组件将office文件转换成pdf
在非常多企业级应用中都涉及到将office图片转换成pdf进行保存或者公布的场景,由于pdf格式的文档方便进行加密和权限控制(类似于百度文库).总结起来眼下将office文件转换 成pdf的方法主要有 ...
- ABBYY如何把图片转换成pdf格式
在制作工作文件的时候,有时候会遇到需要进行文件格式转换的情况,比较常见的文件格式转换就包含了Office与pdf格式之间的转换.但除此之外,图片与pdf格式也是可以进行转换的,那么图片要怎么操作,才能 ...
- ASP.NET将word文档转换成pdf的代码
一.添加引用 using Microsoft.Office.Interop.Word; 二.转换方法 1.方法 C# 代码 /// <summary> /// 把Word文件转换成pdf文 ...
- word ppt excel文档转换成pdf
1.把word文档转换成pdf (1).添加引用 using Microsoft.Office.Interop.Word; 添加引用 (2).转换方法 /// <summary> /// ...
随机推荐
- C语言 · 企业奖金发放
算法提高 企业奖金发放 时间限制:1.0s 内存限制:512.0MB 企业发放的奖金根据利润提成.利润低于或等于10万元时,奖金可提10%:利润高于10万元,低于20万元时,低于10 ...
- CAS (12) —— CAS TicketRegistry使用JPA方案数据源c3p0与JNDI
CAS (12) -- CAS TicketRegistry使用JPA方案数据源c3p0与JNDI tomcat版本: tomcat-8.0.29 jdk版本: jdk1.8.0_65 cas版本: ...
- 【oneday_onepage】——Growth Is A Bitch
Companies are worth a multiple of their earnings and that multiple is directly related to earnings g ...
- git基本操作:使用git将本地代码上传到GitHub
一.创建github repository(仓库) 1.登录GitHub 创建GitHub仓库,首先需要登录GitHub,GitHub网址:https://github.com.如果没有GitHub账 ...
- php curl_multi系列函数实现多线程抓取网页
最近几天在做一个多搜索引擎关键字排名查询工具,用于及时方便的了解关键词在各大搜索引擎的排名. 在抓取360搜索的时候,发现360搜索每页只支持显示10个搜索结果,如果想获取100个搜索结果数据,就得搜 ...
- 如何利用jsp实现防盗链功能
index.jsp ----------------------------- Place your content here here is index jsp get header info a. ...
- iframe 父页面与子页面之间的方法的相互调用【转】
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- Netty 介绍
本指南对Netty 进行了介绍并指出其意义所在. 1. 问题 现在,我们使用适合一般用途的应用或组件来和彼此通信.例如,我们常常使用一个HTTP客户端从远程服务器获取信息或者通过web service ...
- 权限控制-JS判断是否有权限进行操作跳转页面需要加target
妈蛋的,这问题花了我20分钟,我用来搜索代码花了18分钟,我写代码有个差生的习惯,就是抄,啥东西想做,就上网搜别人杂写,拿下来照抄改一下即可 啧啧,妈蛋的,整个一页,没有我能用到的信息,那些博客内容一 ...
- 模式识别之bpnn---神经网络训练
http://blog.csdn.net/linj_m/article/details/40679085