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

Ale*_*Man 10 java pdf openoffice.org xlsx jodconverter

我创建了一个使用JodConverterOpen-Office转换excel(.xlsx)PDF的应用程序,该应用程序工作正常,但我面临两个问题

  1. 输出PDF的页面是A4大小的形式,因为某些工作表内容已被切掉.因为我希望excel的每个工作表都像一个页面一样完整.

  2. 没有工作表丢失,如果我的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();
    }
Run Code Online (Sandbox Code Playgroud)

小智 2

我使用(免费)PrimoPDF 打印机驱动程序直接从 Excel 中创建 PDF。页数较多(20+)是因为其中一张工作表中缺少“适合页面”打印选项,如果我没记错的话,是第三张工作表。更正此问题后,打印所有工作表的命令仍然会生成 2 个 PDF 文件。PrimoPDF 会询问两次文件名,而它应该只询问一次。我假设您的程序只生成与第一部分相对应的 PDF,因为通常只应生成一个 PDF。我对两部分打印没有任何解释。这可能是由于其中一张工作表中的某些打印设置强制分“两批”执行打印。例如,不同的分辨率值可能会阻止批量打印。结论:解决方法是使用 PrimoPDF 进行打印,并使用网络上免费提供的程序之一连接 2 个 PDF 文件。为了获得持久的解决方案,您必须详细验证所有工作表的打印设置并确保它们相同。