使用aspose把各种文件转换成pdf

使用aspose把各种文件转换成pdfpackagecom.fh.util;importjava.io.File;importjava.io.FileInputStream;importjava.io.FileOutputStream;importjava.io.IOException;importjava.io.InputStream;importorg.apache.pdfbox.pdmodel.PD…

大家好,又见面了,我是你们的朋友全栈君。

package com.fh.util;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import org.apache.pdfbox.pdmodel.PDDocument;
import com.aspose.cells.Workbook;
import com.aspose.slides.Presentation;
import com.aspose.words.Document;
import com.lowagie.text.DocumentException;
import com.lowagie.text.Image;
import com.lowagie.text.PageSize;
import com.lowagie.text.pdf.PdfWriter;
/**
* 
* 使用的aspose包把文档转换成pdf工具类
* @author dwm
*2019-07-03
*/
public class Word2Pdf {
public static void main(String[] args) {
//		excel2Pdf("F:\\aaa\\加班.xls","F:\\aaa\\加班.pdf") ;
}
/**
* 获取pdf文档的页数
* @param pdfFilePath
* @return
*/
public static int getPdfPage(String pdfFilePath){
try{
// 判断输入文件是否存在
File file = new File(pdfFilePath);  
if (!file.exists()) {  
return 0;  
}
// 如果不是pdf直接返回0
if (!FileUtil.getFileSufix(pdfFilePath).equals("pdf")) {  
return 0;  
}
PDDocument pdf = PDDocument.load(file);
return pdf.getPages().getCount();		//返回页数
}catch(Exception e){
e.printStackTrace();
return 0;
}
}
/**
* 使用aspose转换成pdf文件
* @param inputFile
* @param pdfFile
* @return
*/
public static boolean convertToPdfAsAspose(String inputFile, String pdfFile) {
String suffix = FileUtil.getFileSufix(inputFile); //后缀
File file = new File(inputFile) ;
if(!file.exists()) {
return false ;
}
if("pdf".equalsIgnoreCase(suffix)) {
return false ;
}
//根据不同的文件转换成pdf文件
if("doc".equalsIgnoreCase(suffix) || "docx".equalsIgnoreCase(suffix) || "txt".equalsIgnoreCase(suffix)) {
return doc2pdf(inputFile,pdfFile) ;
} else if("xls".equalsIgnoreCase(suffix) || "xlsx".equalsIgnoreCase(suffix)) {
return excel2Pdf(inputFile, pdfFile);
} else if("xls".equalsIgnoreCase(suffix) || "xlsx".equalsIgnoreCase(suffix)) {
return excel2Pdf(inputFile, pdfFile);
} else if (suffix.equalsIgnoreCase("png") || suffix.equalsIgnoreCase("jpg") 
|| suffix.equalsIgnoreCase("jpeg")) {  
return img2PDF(inputFile, pdfFile);  
} else {  
return false;  
}
}
/**
* aspose.word包获取配置
* @return
*/
public static boolean getWordLicense() {
boolean result = false;
InputStream is = null ;
try {
is = Word2Pdf.class.getClassLoader().getResourceAsStream("license.xml"); // license.xml应放在..\WebRoot\WEB-INF\classes路径下
com.aspose.words.License aposeLic = new com.aspose.words.License();
aposeLic.setLicense(is);
result = true;
is.close();
} catch (Exception e) {
if(is != null) {
try {
is.close() ;
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
e.printStackTrace();
}
return result; 
}
/**
* word文档转pdf
* @param inPath
* @param outPath
*/
public static boolean doc2pdf(String inPath, String outPath) {
if (!getWordLicense()) { // 验证License 若不验证则转化出的pdf文档会有水印产生
return false;
}
FileOutputStream os = null ;
try {
long old = System.currentTimeMillis();
File file = new File(outPath); // 新建一个空白pdf文档
os = new FileOutputStream(file);
Document doc = new Document(inPath); // Address是将要被转化的word文档
doc.save(os, com.aspose.words.SaveFormat.PDF);// 全面支持DOC, DOCX, OOXML, RTF HTML, OpenDocument, PDF,
// EPUB, XPS, SWF 相互转换
long now = System.currentTimeMillis();
System.out.println("共耗时:" + ((now - old) / 1000.0) + "秒"); // 转化用时
os.close();
} catch (Exception e) {
if(os != null) {
try {
os.close();
} catch (IOException e1) {
e1.printStackTrace();
}
}
e.printStackTrace();
return false ;
}
return true ;
}
public static boolean getExcelLicense() {
boolean result = false;
InputStream is = null ;
try {
is = Word2Pdf.class.getClassLoader().getResourceAsStream("license.xml"); // license.xml应放在..\WebRoot\WEB-INF\classes路径下
com.aspose.cells.License aposeLic = new com.aspose.cells.License();
aposeLic.setLicense(is);
result = true;
is.close();
} catch (Exception e) {
if(is != null) {
try {
is.close() ;
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
e.printStackTrace();
}
return result; 
}
/**
* asponse:excel转pdf
* @param excelPath
* @param pdfPath
*/
public static boolean excel2Pdf(String excelPath, String pdfPath) {
long old = System.currentTimeMillis();
// 验证License
if (!getExcelLicense()) {
return false;
}
FileInputStream fileInputStream = null;
FileOutputStream fileOutputStream = null;
try {
File excelFile = new File(excelPath);
if (excelFile.exists()) {
fileInputStream = new FileInputStream(excelFile);
Workbook workbook = new Workbook(fileInputStream);
File pdfFile = new File(pdfPath);
fileOutputStream = new FileOutputStream(pdfFile);
workbook.save(fileOutputStream, com.aspose.cells.SaveFormat.PDF);
long now = System.currentTimeMillis();
System.out.println("共耗时:" + ((now - old) / 1000.0) + "秒\n\n" + "文件保存在:" + pdfFile.getPath());
return true ;
} else {
System.out.println("文件不存在");
return false ;
}
} catch (Exception e) {
e.printStackTrace();
return false ;
} finally {
if (fileInputStream != null) {
try {
fileInputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (fileOutputStream != null) {
try {
fileOutputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
public static boolean getPptLicense() {
boolean result = false;
InputStream is = null ;
try {
is = Word2Pdf.class.getClassLoader().getResourceAsStream("license.xml"); // license.xml应放在..\WebRoot\WEB-INF\classes路径下
com.aspose.slides.License aposeLic = new com.aspose.slides.License();
aposeLic.setLicense(is);
result = true;
is.close();
} catch (Exception e) {
if(is != null) {
try {
is.close() ;
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
e.printStackTrace();
}
return result; 
}
/**
* aspose:ppt转pdf
* @param inPath
* @param outPath
*/
public static void ppt2pdf(String inPath,String outPath) {
// 验证License
if (!getPptLicense()) {
return;
}
FileOutputStream fileOS = null ;
try {
long old = System.currentTimeMillis();
File file = new File(outPath);// 输出pdf路径
Presentation pres = new Presentation(inPath);//输入pdf路径         
fileOS = new FileOutputStream(file);
pres.save(fileOS, com.aspose.slides.SaveFormat.Pdf);
fileOS.close();
long now = System.currentTimeMillis();
System.out.println("共耗时:" + ((now - old) / 1000.0) + "秒\n\n" + "文件保存在:" + file.getPath()); //转化过程耗时
} catch (Exception e) {
if(fileOS != null) {
try {
fileOS.close();
} catch (IOException e1) {
e1.printStackTrace();
} 
}
e.printStackTrace();
}
}
//img转pdf
public static boolean img2PDF(String imgFilePath, String pdfFilePath){
File file = new File(imgFilePath);
if (file.exists()) {
com.lowagie.text.Document document = new com.lowagie.text.Document();
FileOutputStream fos = null;
try {
fos = new FileOutputStream(pdfFilePath);
PdfWriter.getInstance(document, fos);
// 添加PDF文档的某些信息,比如作者,主题等等
document.addAuthor("newprint");
document.addSubject("test pdf.");
// 设置文档的大小
document.setPageSize(PageSize.A4);
// 打开文档
document.open();
// 写入一段文字
// document.add(new Paragraph("JUST TEST ..."));
// 读取一个图片
Image image = Image.getInstance(imgFilePath);
float imageHeight = image.getScaledHeight();
float imageWidth = image.getScaledWidth();
int i = 0;
while (imageHeight > 500 || imageWidth > 500) {
image.scalePercent(100 - i);
i++;
imageHeight = image.getScaledHeight();
imageWidth = image.getScaledWidth();
System.out.println("imageHeight->" + imageHeight);
System.out.println("imageWidth->" + imageWidth);
}
image.setAlignment(Image.ALIGN_CENTER);
// //设置图片的绝对位置
// image.setAbsolutePosition(0, 0);
// image.scaleAbsolute(500, 400);
// 插入一个图片
document.add(image);
} catch (DocumentException de) {
System.out.println(de.getMessage());
} catch (IOException ioe) {
System.out.println(ioe.getMessage());
}
document.close();
try {
fos.flush();
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
return true;
} else {
return false;
}
}
}

此处提供转pdf的代码,不同文件转pdf或别的格式都需要不同的jar包,下载地址:在这里插入代码片
https://download.csdn.net/download/bianqing0305/11274829
其中包含lisence.xml

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/136167.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Java课程设计——学生成绩管理系统

    Java课程设计——学生成绩管理系统Java课程设计题目:学生成绩管理系统摘要在现今信息时代,生活速度的加快,使得人们越来越向信息化、数字化发展。随着学校的规模不断扩大,学生数量急剧增加,有关学生的各种信息量也成倍增长,尤其是学生的考试成绩数据。面对庞大的学生的成绩,需要有学生成绩管理系统来提高学生管理工作的效率。介于此提出了学生成绩管理系统,学生管理系统是计算机对学生档案信息进行管理,具有手工管理无可比拟的优点,如索检迅速、查找方便、可靠性高、存储量大等有点。现在我国的大中专院校的学生成绩管理水平正在不断提高,停留在纸介质

  • Navicat for oracle创建数据库

    Navicat for oracle创建数据库前言其实在Oracle中的概念并不是创建数据库,而是创建一个表空间,然后再创建一个用户,设置该用户的默认表空间为我们新创建的表空间,这些操作之后,便和你之前用过的mysql数据库创建完数据库一模一样了(如果你用过mysql的话,当然如果Oracle是你用的第一个数据库系统,那上面这段话其实看不看并不重要)。但是,鉴于很多用过mysql的用户,在刚开始使用Oracle的时候都会不知道如何创建数据…

  • SQL Server中的GUID

    GUID(Globaluniqueidentifier)全局唯一标识符,它是由网卡上的标识数字(每个网卡都有唯一的标识号)以及CPU时钟的唯一数字生成的的一个16字节的二进制值。GUID

    2021年12月22日
  • BeanUtils.populate 使用笔记

    BeanUtils.populate 使用笔记最近在学习网站开发,在后端获取网站请求数据的时候用到了BeanUtils.populate()方法,具体用法是:BeanUtils.populate(objectobj,Map<String,String[]>map);于是我就在想这个方法是怎么把map中的数据封装到obj对象里的。打开源码看,看别人写的代码是真难受,看了半天还是没看懂。上网搜了一下,发现多数都是在讲用法…

  • 看了这篇文章觉得MySQL读写分离这么简单「建议收藏」

    点赞多大胆,就有多大产!有支持才有动力!微信搜索公众号【达摩克利斯之笔】获取更多资源,文末有二维码!前言​  Mysql优化那篇文章有朋友留言说就这么点?,深深刺痛了晓添的心,感觉知识深度被小看了,痛定思痛决定发布读写分离,分表分库优化文章,其实这系列文章也在Mysql优化的计划之内,最近较忙断断续续写的有点难受,到今天才跟大家见面,篇幅有限这篇我们来说说基于Mycat实现读写分离,话不多…

  • FileInputStream应用

    FileInputStream应用源码packagecom.io;importjava.io.File;importjava.io.FileInputStream;/***@authoryanyugang*@description*1、FileInputStream读取文件内容*@date2019/10/1310:26*/publicclassFileInputStream…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号