OpenOffice转PDF遇到的问题
原文:https://blog.csdn.net/FANKYIXUN/article/details/80627339
问题:Java 操作 OpenOffice 将excel 转换为 pdf ,因多列出现折行;
原因:OpenOffice 默认输出为A4 大小,源excel 存在队列,总宽度超出 A4 宽度,所以出现折行;
解决方法:自定义一个类,继承OpenOfficeDocumentConverter 类 重写方法,与 refreshDocument 方法,设置 OpenOffice 输出 pdf 的宽度参数:
Windows系统参考代码如下:
package com.syni.app.utils;import com.artofsolving.jodconverter.openoffice.connection.OpenOfficeConnection;
import com.artofsolving.jodconverter.openoffice.converter.OpenOfficeDocumentConverter;
import com.sun.star.awt.Size;
import com.sun.star.beans.PropertyValue;
import com.sun.star.lang.XComponent;
import com.sun.star.uno.UnoRuntime;
import com.sun.star.view.PaperFormat;
import com.sun.star.view.XPrintable;public class ConverterDocument extends OpenOfficeDocumentConverter {public ConverterDocument(OpenOfficeConnection connection) {super(connection);}public final static Size A5, A4, A3;public final static Size B4, B5, B6;public final static Size KaoqinReport;static {A5 = new Size(14800, 21000);A4 = new Size(21000, 29700);A3 = new Size(29700, 42000);B4 = new Size(25000, 35300);B5 = new Size(17600, 25000);B6 = new Size(12500, 17600);KaoqinReport = new Size(29700, 27940); //最大限度 宽 1600000}@Overrideprotected void refreshDocument(XComponent document) {super.refreshDocument(document);// The default paper format and orientation is A4 and portrait. To// change paper orientation// re set page sizeXPrintable xPrintable = (XPrintable) UnoRuntime.queryInterface(XPrintable.class, document);PropertyValue[] printerDesc = new PropertyValue[2];// Paper Orientation// printerDesc[0] = new PropertyValue();// printerDesc[0].Name = "PaperOrientation";// printerDesc[0].Value = PaperOrientation.PORTRAIT;// Paper FormatprinterDesc[0] = new PropertyValue();printerDesc[0].Name = "PaperFormat";printerDesc[0].Value = PaperFormat.USER;// Paper SizeprinterDesc[1] = new PropertyValue();printerDesc[1].Name = "PaperSize";printerDesc[1].Value = KaoqinReport;try {xPrintable.setPrinter(printerDesc);} catch (Exception e) {e.printStackTrace();}}
}
问题:把项目打包到Linux服务器上后进行使用,发现转换出来的pdf文件还是会出现折行问题,排查之后发现,由于公司Linux系统没有网络打印机,于是在Windows系统下调用OpenOffice服务,改了本地机器的ip地址后,发现连接被拒绝了。
原因:因为远程服务启动的时候,host=真实的对外IP,有远程协议,这是因调用带有协议的文档操作
解决办法:
1.因为远程服务启动的时候,host=真实的对外IP,不能写127.0.0.1。改成本地机器的IP地址即可。
2.更改自定义类ConverterDocument,不再继承OpenOfficeDocumentConverter这个类。改为继承 StreamOpenOfficeDocumentConverter这个类。
public class ConverterDocument extends StreamOpenOfficeDocumentConverter {...}
OpenOffice转PDF遇到的问题相关推荐
- Java使用openOffice转PDF以及PDF文件预览乱码问题
Java使用openOffice转PDF以及PDF文件预览乱码问题 使用openOffice,支持doc, docx, .xls, .xlsx, .ppt, .pptx转pdf 一:依赖 <de ...
- java环境用openoffice转pdf
目前版本: JODConverter v2.2.1, OpenOffice v3.0.0 使用需求: JDK1.4以上, 安裝OpenOffice v2.0.3以上 基本簡介: JODConve ...
- openoffice java awt_使用openoffice转pdf,详细
期由于项目的需求,需要word文档转pdf在线预览,由于一直没有接触这块,所以花了将近四天时间才弄明白. 写这篇文章的主要目的是加深自己的记忆,同时方便以后在用. (最近有使用了这个功能,发现这篇文章 ...
- Linux解决openoffice转换PDF乱码问题(ubutun16.0.4)
将windows的字体复制到/usr/share/fonts目录下,如/usr/share/fonts/winfonts然后执行命令 sudo mkfontscale (创建雅黑字体的fonts.sc ...
- 关于openoffice转换pdf中txt乱码的问题
什么文件类型都好使,docx,doc,ppt,xls,xlsx,就踏马txt不行,各种乱码 气得我直接把txt统一转换成utf-8格式了, 看源码这个import org.jodconverter.D ...
- 使用OpenOffice插件实现RTF/WORD转PDF转多张图片或者一张图片
这里我们使用的是OpenOffice插件,需要安装,还有相关的jar包 网盘地址: https://pan.baidu.com/s/1c6HymABx3wre-d19eB1c-w 密码: n ...
- PHP使用openoffice实现word,ppt,Excel在线转PDF浏览。windows和linux系统不同的解决方案
一.PHP使用openoffice实现office在线转PDF介绍 最近需要在网页上实现预览上传的word文档,之前没有实现过相关功能,搜索了一下网上的资料,完整的教程较少,因此将自己实现的步骤和遇到 ...
- Java使用Openoffice将word、ppt转换为PDF
最近项目中要实现WORD的文件预览功能,我们可以通过将WORD转换成PDF或者HTML,然后通过浏览器预览. OpenOffice OpenOffice.org 是一套跨平台的办公室软件套件,能在 W ...
- Java仿文库的基本方法(openoffice+swftools+flexPaper)
基本步骤: 1.将要展示的office文件 转换成 PDF, 使用工具 openoffice 2.将PDF文件转换成swf ,实用工具swftools 3.使用flexPaper,显示转换后的swf ...
最新文章
- python 3d绘图 范围_python – 在3D绘图中绘制所有三个轴上的分布轮廓
- 手写自己的MyBatis框架-V2.0结果集处理
- Android 仿王者荣耀广告弹窗,android仿王者荣耀对战资料之能力图
- datatable把一个LIst的数据放入两个colum防止窜行的做法
- 第 8 章 TokyoCabinet/Tyrant
- 指针的指针指向指针数组的指针
- open cv+C++错误及经验总结(五)
- Rhino基础教程---三管混接
- java中级考试_Java中级开发工程师笔试题及答案2016
- EXCEL制作柱形图逆序的意义
- appstore上架助手
- 脑芯编 | 窥脑究竟,结网造芯(三)
- 正余弦函数的复指数表示
- 计算机课程考试质量分析,研究生课程成绩定量评价与质量分析的计算机实现
- 条码打印软件如何批量制作学生考试条形码标签
- 百度贴吧怎么进不去_百度贴吧引流不行了?我是怎么把文案做上百度首页引流的...
- 基于SQLite开发的Android记账APP
- ie的javascript语句失效修复方法
- windows下plink的常用命令
- Plog —— 新浪的处理日志流框架
热门文章
- 关于专利撰写的注意事项
- Kaggle系列(3)- Telco Customer Churn
- CUIF2020中国高校信息化发展论坛
- 系统架构设计总结—软件架构风格
- android中的mvp模式怎么定义,在android中使用MVP模式
- 苹果linux桌面文件夹,Linux下打造仿Mac系统桌面
- java 如何设置jtextfield_如何添加JTextField
- 关于VMware12 failed to start vmware authorization service问题发生原因及解决方法
- 看完通辽可汗小约翰之后应该掌握的英语词汇 01 外交类
- 头歌机器学习---决策树