将word、excel、ppt、html、txt,pdf转换成图片源代码
2014-07-28 13:31
716 查看
分享一下我的实现方式:首先利用openoffice将各种类型的文档转换成pdf,然后再利用imagsio将pdf转成图片。
那么我们下面谈一下如何处理:
去哪里下载openoffice?
openoffice的下载地址你可以通过百度搜索openoffice下载,就就直接下载到。
安装完成以后怎么用呢?
安装完成以后找到你的安装目录,打开目录下面的program文件夹。该文件夹里面包含一个soffice.exe文件。当你进入这个目录以后,按住shift然后右击在此处打开命令提示符,然后输入命令:soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard 然后回车就ok了。这样就会启动openoffice的8100端口。
项目中如何运用openoffice?
首先你要准备好jar包。
示例代码如下:
[java] view
plaincopy
public static void doc2Pdf(String docPath, String pdfPath) throws ConnectException {
File inputFile = new File(docPath);//预转文件
File outputFile = new File(pdfPath);//pdf文件
OpenOfficeConnection connection = new SocketOpenOfficeConnection(8100);
connection.connect();//建立连接
DocumentConverter converter = new OpenOfficeDocumentConverter(connection);
DefaultDocumentFormatRegistry formatReg = new DefaultDocumentFormatRegistry();
DocumentFormat txt = formatReg.getFormatByFileExtension("odt") ;//设定文件格式
DocumentFormat pdf = formatReg.getFormatByFileExtension("pdf") ;//设定文件格式
converter.convert(inputFile, txt, outputFile, pdf);//文件转换
connection.disconnect();//关闭连接
}
如何将pdf转换成图片?
示例代码如下:
[java] view
plaincopy
/**
* 将pdf转换成图片
*
* @param pdfPath
* @param imagePath
* @return 返回转换后图片的名字
* @throws Exception
*/
public static List<String> pdf2Imgs(String pdfPath, String imgDirPath) throws Exception {
Document document = new Document();
document.setFile(pdfPath);
float scale = 5f;//放大倍数
float rotation = 0f;//旋转度数
List<String> imgNames = new ArrayList<String>();
int pageNum = document.getNumberOfPages();
File imgDir = new File(imgDirPath);
if (!imgDir.exists()) {
imgDir.mkdirs();
}
for (int i = 0; i < pageNum; i++) {
BufferedImage image = (BufferedImage) document.getPageImage(i, GraphicsRenderingHints.SCREEN,
Page.BOUNDARY_CROPBOX, rotation, scale);
RenderedImage rendImage = image;
try {
String filePath = imgDirPath + File.separator + i + ".jpg";
File file = new File(filePath);
ImageIO.write(rendImage, "jpg", file);
imgNames.add(FilenameUtils.getName(filePath));
} catch (IOException e) {
e.printStackTrace();
return null;
}
image.flush();
}
document.dispose();
return imgNames;
}
我只说一下项目里面的这两个 scale、rotation。
这两个参数的含义:
scale:是指再转成成图片以后对图片的放大倍数,它影响字体清晰度。但是这个参数不能太大,如文件特别大的时候就会OOM的。这个参数要根据自己的项目来定,我建议在1~2之间。我测试在5.5的时候就直接oom了,我的电脑配置是i3 6G内存。
rotation:是指的旋转的度数。0就是默认不旋转,当然还有360n。。
如何将任意类型文件转成图片类型?
代码如下:
[java] view
plaincopy
public static void doc2Imags(String docPath, String imgDirPath){
String pdfPath =String.format("%s%s.pdf", FilenameUtils.getFullPath(docPath), FilenameUtils.getBaseName(docPath));
try {
doc2Pdf(docPath, pdfPath);
pdf2Imgs(pdfPath, imgDirPath);
File pdf = new File(pdfPath);
if(pdf.isFile()){
pdf.delete();
}
} catch (ConnectException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
源代码从哪里下载?
http://download.csdn.net/detail/oaimeng12/7686733
那么我们下面谈一下如何处理:
去哪里下载openoffice?
openoffice的下载地址你可以通过百度搜索openoffice下载,就就直接下载到。
安装完成以后怎么用呢?
安装完成以后找到你的安装目录,打开目录下面的program文件夹。该文件夹里面包含一个soffice.exe文件。当你进入这个目录以后,按住shift然后右击在此处打开命令提示符,然后输入命令:soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard 然后回车就ok了。这样就会启动openoffice的8100端口。
项目中如何运用openoffice?
首先你要准备好jar包。
示例代码如下:
[java] view
plaincopy
public static void doc2Pdf(String docPath, String pdfPath) throws ConnectException {
File inputFile = new File(docPath);//预转文件
File outputFile = new File(pdfPath);//pdf文件
OpenOfficeConnection connection = new SocketOpenOfficeConnection(8100);
connection.connect();//建立连接
DocumentConverter converter = new OpenOfficeDocumentConverter(connection);
DefaultDocumentFormatRegistry formatReg = new DefaultDocumentFormatRegistry();
DocumentFormat txt = formatReg.getFormatByFileExtension("odt") ;//设定文件格式
DocumentFormat pdf = formatReg.getFormatByFileExtension("pdf") ;//设定文件格式
converter.convert(inputFile, txt, outputFile, pdf);//文件转换
connection.disconnect();//关闭连接
}
如何将pdf转换成图片?
示例代码如下:
[java] view
plaincopy
/**
* 将pdf转换成图片
*
* @param pdfPath
* @param imagePath
* @return 返回转换后图片的名字
* @throws Exception
*/
public static List<String> pdf2Imgs(String pdfPath, String imgDirPath) throws Exception {
Document document = new Document();
document.setFile(pdfPath);
float scale = 5f;//放大倍数
float rotation = 0f;//旋转度数
List<String> imgNames = new ArrayList<String>();
int pageNum = document.getNumberOfPages();
File imgDir = new File(imgDirPath);
if (!imgDir.exists()) {
imgDir.mkdirs();
}
for (int i = 0; i < pageNum; i++) {
BufferedImage image = (BufferedImage) document.getPageImage(i, GraphicsRenderingHints.SCREEN,
Page.BOUNDARY_CROPBOX, rotation, scale);
RenderedImage rendImage = image;
try {
String filePath = imgDirPath + File.separator + i + ".jpg";
File file = new File(filePath);
ImageIO.write(rendImage, "jpg", file);
imgNames.add(FilenameUtils.getName(filePath));
} catch (IOException e) {
e.printStackTrace();
return null;
}
image.flush();
}
document.dispose();
return imgNames;
}
我只说一下项目里面的这两个 scale、rotation。
这两个参数的含义:
scale:是指再转成成图片以后对图片的放大倍数,它影响字体清晰度。但是这个参数不能太大,如文件特别大的时候就会OOM的。这个参数要根据自己的项目来定,我建议在1~2之间。我测试在5.5的时候就直接oom了,我的电脑配置是i3 6G内存。
rotation:是指的旋转的度数。0就是默认不旋转,当然还有360n。。
如何将任意类型文件转成图片类型?
代码如下:
[java] view
plaincopy
public static void doc2Imags(String docPath, String imgDirPath){
String pdfPath =String.format("%s%s.pdf", FilenameUtils.getFullPath(docPath), FilenameUtils.getBaseName(docPath));
try {
doc2Pdf(docPath, pdfPath);
pdf2Imgs(pdfPath, imgDirPath);
File pdf = new File(pdfPath);
if(pdf.isFile()){
pdf.delete();
}
} catch (ConnectException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
源代码从哪里下载?
http://download.csdn.net/detail/oaimeng12/7686733
相关文章推荐
- 将word、excel、ppt、html、txt转换成图片
- PDF文件转化成word,ppt,excel,图片(png,jpg...),tiff,rtf,txt,html,PDF组合,PDF编辑,PDF创建
- Java通过OpenOffice将word、ppt、excel、图片、txt文档转换成PDF
- 专业pdf转word转换软件 pdf转换器 pdf转txt pdf转ppt、excel
- PDF预览之word、excel、ppt转换为pdf,PHP内通过exec()调用笔记.txt
- word,ppt,txt,excel转换pdf 解决中文乱码
- Atitit.office word excel ppt pdf 的web在线预览方案与html转换方案 attilax 总结
- java实现爬虫技术,读取txt,word,excel,ppt,pdf,html等格式的文件
- java实现爬虫技术,读取txt,word,excel,ppt,pdf,html等格式的文件
- word,excel,ppt,txt转换为 PDF
- JAVA读取WORD,EXCEL,PDF,TXT,RTF,HTML文件文本内容的方法示例
- Word,PDF,PPT,TXT之间的转换方法(
- Word/Excel/PDF文件转换成HTML整理
- Word,PDF,PPT,TXT之间的转换方法
- JAVA读取WORD,EXCEL,PDF,TXT,RTF,HTML文件文本内容的方法示例
- [转载]分享日志 Word,PDF,PPT,TXT之间的转换方法
- Word/Excel/PDF文件转换成HTML整理
- 将PPT&WORD&EXCEL转换成html格式
- DataTable导出为word,excel,html,csv,pdf,.txt
- 【转】Word,PDF,PPT,TXT之间的转换方法