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

前端之家收集整理的这篇文章主要介绍了java – 当excel(.xlsx)使用开放式办公室转换为pdf(.pdf)时,缺少工作表和页面大小问题前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我已经使用JodConverter和Open-Office创建了一个应用程序,用于将excel(.xlsx)转换为PDF,该应用程序正常工作,但我面临两个问题

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

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

Excel文件ss1.xlsx@H_404_4@

输出PDF – work.pdf@H_404_4@

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

我的代码如下@H_404_4@

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相关文章