原文: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遇到的问题相关推荐

  1. Java使用openOffice转PDF以及PDF文件预览乱码问题

    Java使用openOffice转PDF以及PDF文件预览乱码问题 使用openOffice,支持doc, docx, .xls, .xlsx, .ppt, .pptx转pdf 一:依赖 <de ...

  2. java环境用openoffice转pdf

    目前版本: JODConverter v2.2.1, OpenOffice v3.0.0  使用需求: JDK1.4以上, 安裝OpenOffice v2.0.3以上  基本簡介:  JODConve ...

  3. openoffice java awt_使用openoffice转pdf,详细

    期由于项目的需求,需要word文档转pdf在线预览,由于一直没有接触这块,所以花了将近四天时间才弄明白. 写这篇文章的主要目的是加深自己的记忆,同时方便以后在用. (最近有使用了这个功能,发现这篇文章 ...

  4. Linux解决openoffice转换PDF乱码问题(ubutun16.0.4)

    将windows的字体复制到/usr/share/fonts目录下,如/usr/share/fonts/winfonts然后执行命令 sudo mkfontscale (创建雅黑字体的fonts.sc ...

  5. 关于openoffice转换pdf中txt乱码的问题

    什么文件类型都好使,docx,doc,ppt,xls,xlsx,就踏马txt不行,各种乱码 气得我直接把txt统一转换成utf-8格式了, 看源码这个import org.jodconverter.D ...

  6. 使用OpenOffice插件实现RTF/WORD转PDF转多张图片或者一张图片

    这里我们使用的是OpenOffice插件,需要安装,还有相关的jar包 网盘地址: https://pan.baidu.com/s/1c6HymABx3wre-d19eB1c-w      密码: n ...

  7. PHP使用openoffice实现word,ppt,Excel在线转PDF浏览。windows和linux系统不同的解决方案

    一.PHP使用openoffice实现office在线转PDF介绍 最近需要在网页上实现预览上传的word文档,之前没有实现过相关功能,搜索了一下网上的资料,完整的教程较少,因此将自己实现的步骤和遇到 ...

  8. Java使用Openoffice将word、ppt转换为PDF

    最近项目中要实现WORD的文件预览功能,我们可以通过将WORD转换成PDF或者HTML,然后通过浏览器预览. OpenOffice OpenOffice.org 是一套跨平台的办公室软件套件,能在 W ...

  9. Java仿文库的基本方法(openoffice+swftools+flexPaper)

    基本步骤: 1.将要展示的office文件 转换成 PDF,  使用工具 openoffice 2.将PDF文件转换成swf ,实用工具swftools 3.使用flexPaper,显示转换后的swf ...

最新文章

  1. python 3d绘图 范围_python – 在3D绘图中绘制所有三个轴上的分布轮廓
  2. 手写自己的MyBatis框架-V2.0结果集处理
  3. Android 仿王者荣耀广告弹窗,android仿王者荣耀对战资料之能力图
  4. datatable把一个LIst的数据放入两个colum防止窜行的做法
  5. 第 8 章 TokyoCabinet/Tyrant
  6. 指针的指针指向指针数组的指针
  7. open cv+C++错误及经验总结(五)
  8. Rhino基础教程---三管混接
  9. java中级考试_Java中级开发工程师笔试题及答案2016
  10. EXCEL制作柱形图逆序的意义
  11. appstore上架助手
  12. 脑芯编 | 窥脑究竟,结网造芯(三)
  13. 正余弦函数的复指数表示
  14. 计算机课程考试质量分析,研究生课程成绩定量评价与质量分析的计算机实现
  15. 条码打印软件如何批量制作学生考试条形码标签
  16. 百度贴吧怎么进不去_百度贴吧引流不行了?我是怎么把文案做上百度首页引流的...
  17. 基于SQLite开发的Android记账APP
  18. ie的javascript语句失效修复方法
  19. windows下plink的常用命令
  20. Plog —— 新浪的处理日志流框架

热门文章

  1. 关于专利撰写的注意事项
  2. Kaggle系列(3)- Telco Customer Churn
  3. CUIF2020中国高校信息化发展论坛
  4. 系统架构设计总结—软件架构风格
  5. android中的mvp模式怎么定义,在android中使用MVP模式
  6. 苹果linux桌面文件夹,Linux下打造仿Mac系统桌面
  7. java 如何设置jtextfield_如何添加JTextField
  8. 关于VMware12 failed to start vmware authorization service问题发生原因及解决方法
  9. 看完通辽可汗小约翰之后应该掌握的英语词汇 01 外交类
  10. 头歌机器学习---决策树