我已经使用JodConverter和Open-Office创建了一个应用程序,用于将excel(.xlsx)转换为PDF,该应用程序正常工作,但我面临两个问题
>输出PDF的页面是A4尺寸的形式,因为某些工作表内容已经被切掉了.因为我希望excel的每个工作表都像一个页面一样完整.
>没有工作表丢失,说如果我的excel有8个工作表我只在PDF输出中只有两三个@H_404_4@
即使我们试图从开放办公室直接转换为pdf,也给出了上述类似的问题@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文件.对于持久的解决方案,您必须详细验证所有工作表的打印设置,并确保它们相同.