java – 当excel(.xlsx)使用开放式办公室转换为pdf(.pdf)时,缺少工作表和页面大小问题

我已经使用JodConverter和Open-Office创建了一个应用程序,用于将excel(.xlsx)转换为PDF,该应用程序正常工作,但我面临两个问题

>输出PDF的页面是A4尺寸的形式,因为某些工作表内容已经被切掉了.因为我希望excel的每个工作表都像一个页面一样完整.
>没有工作表丢失,说如果我的excel有8个工作表我只在PDF输出中只有两三个

即使我们试图从开放办公室直接转换为pdf,也给出了上述类似的问题

Excel文件ss1.xlsx

输出PDF – work.pdf

任何人都可以告诉我一些解决方

我的代码如下

public class MyConverter {

    public static void main(String[] args) throws ConnectException {
        File inputFile = new File("C:/Users/Work/Desktop/ss1.xlsx");
        File outputFile = new File("C:/Users/Work/Desktop/work.pdf");

        // connect to an OpenOffice.org instance running on port 8100
        OpenOfficeConnection connection = new SocketopenOfficeConnection(8100);
        connection.connect();

        // convert
        DocumentConverter converter = new OpenOfficeDocumentConverter(connection);
        converter.convert(inputFile,outputFile);

        // close the connection
        connection.disconnect();
    }

解决方法

我使用(免费)PrimoPDF打印机驱动程序直接在Excel内创建PDF. 大量的页面(20)是由于在其中一个工作表中缺少“适合页面”打印选项的事实,如果我记住的话,第3页. 纠正这一点后,打印所有工作表的命令仍然会导致生成2个PDF文件. PrimoPDF要求两次文件名,而它只应询问一个. 我假设您的程序只生成与第一部分相对应的PDF,因为通常只能生成一个PDF.我没有解释2部分的打印.这可能是由于其中一个工作表中的某些打印设置强制打印以“两批”执行.例如,不同的分辨率值可能会阻止一次打印. 结论:解决方法是使用PrimoPDF打印,并使用网络上免费提供的程序之一连接2个PDF文件.对于持久的解决方案,您必须详细验证所有工作表的打印设置,并确保它们相同.

相关文章

背景 阿里java开发规范是阿里巴巴总结多年来的最佳编程实践,...
# 前言 在面试这一篇我们介绍过[CountDownLatch和CyclicBarr...
多线程编程是每一个开发必知必会的技能,在实际项目中,为了...
背景 在我们系统中有这么一个需求,业务方会通过mq将一些用户...
# 前言 为了更好的进行开发和维护,我们都会对程序进行分层设...
前言 关于动态代理的一些知识,以及cglib与jdk动态代理的区别...