gpt4 book ai didi

java - 不使用 iText 将内容导出为 pdf

转载 作者:太空宇宙 更新时间:2023-11-04 16:27:20 25 4
gpt4 key购买 nike

我一直致力于使用表 ID 将 html(表)内容导出到 excel。我使用了像

这样的内容类型
 response.getWriter().write(datatoexport);
response.setHeader("Content-Type", "application/vnd.ms-excel");
response.setHeader("Content-Disposition", "attachment; filename=test_file.xls");
response.getWriter().flush();
response.getWriter().close();

这里datatoexport是表id。

它在 excel 上运行良好。

但是,如果我使用像 pdf 这样的内容类型

 response.setHeader("Content-Type", "application/pdf");
response.setHeader("Content-Disposition", "attachment; filename=test_file.pdf");

但是,我收到的 pdf 文件已损坏。有什么帮助吗?不使用 iText 或其他 jar,我怎样才能实现它?尤其是在 IE 8 中

最佳答案

发送pdf文件输出之前,需要在服务器端生成pdf文件。

要将您的文件转换为 PDF,我建议在 headless 模式下使用 OpenOffice 和 JODConverter .

要以无外设模式(在 Windows 中)运行 OpenOffice,请运行以下命令(假设您有 OpenOfficePortable,安装在 C:\Apps 中:

"C:\Apps\OpenOfficePortable\OpenOfficePortable.exe" -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard

当您以 headless 模式启动 OpenOffice 时,使用 JODConverter 库运行一个简单的工作原型(prototype):

import com.artofsolving.jodconverter.DocumentConverter;
import com.artofsolving.jodconverter.openoffice.connection.OpenOfficeConnection;
import com.artofsolving.jodconverter.openoffice.connection.SocketOpenOfficeConnection;
import com.artofsolving.jodconverter.openoffice.converter.OpenOfficeDocumentConverter;
import java.io.File;
import java.net.ConnectException;

public class JODConv {
public static void main(String[] args) throws ConnectException {

if (args.length!=2) {
System.out.println("Usage:\nJODConv <file-to-convert> <pdf-file>");
System.exit(0);
}

String sourceFilePath = args[0];
String destFilePath = args[1];


File inputFile = new File(sourceFilePath);
File outputFile = new File(destFilePath);

// 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();
}
}

关于java - 不使用 iText 将内容导出为 pdf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24523010/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com