gpt4 book ai didi

java - 从 GAE 应用程序内部写入 PDF

转载 作者:行者123 更新时间:2023-11-30 06:25:58 24 4
gpt4 key购买 nike

我需要从我的 GAE 数据存储中读取几兆字节(原始文本字符串),然后将它们全部写入一个新的 PDF 文件,然后使该 PDF 文件可供用户下载。

我很清楚阻止您写入文件系统的沙盒限制。我想知道是否有一种巧妙的方法可以在内存中创建 PDF(或内存和 blobstore 的组合),然后以某种方式存储它,以便客户端(浏览器)实际上可以将其作为文件下载并保存它在本地。

这可能是一个巨大的延伸,但我唯一的其他选择是将此任务分包给非 GAE 服务器,我想不惜一切代价避免这种情况,即使这需要我进行大量额外的开发.提前致谢。

最佳答案

您绝对可以使用 GAE 本身来实现您的用例。以下是您应该在较高级别遵循的步骤:

  1. 下载优秀iText library ,这是一个用于处理 PDF 的 Java 库。首先构建您的 Java 代码以生成 PDF 内容。查看各种示例:http://itextpdf.com/book/toc.php

  2. 由于您不能直接写入文件,因此您需要以字节为单位生成 PDF 内容,然后编写一个 Servlet 作为下载 Servlet。 Servlet 将使用 Response 对象打开流、操作 Mime header (文件名、文件类型)并将 PDF 内容写入流。当您执行此操作时,浏览器会自动显示下载选项。

  3. 您的下载 Servlet 将具有如下所示的高级代码:

    public class DownloadPDF extends HttpServlet {

    public void doGet(HttpServletRequest req, HttpServletResponse res)
    throws ServletException, IOException {

    //Extract some request parameters, fetch your data and generate your document

    String fileName = "<SomeFileName>.pdf";
    res.setContentType("application/pdf");
    res.setHeader("Content-Disposition", "attachment;filename=\"" + fileName + "\"");
    writePDF(<SomeObjectData>, res.getOutputStream());
    }
    }

  4. 请记住上面的 writePDF 方法是您自己的方法,您可以在其中使用 iText 库 Document 和其他类来生成数据并将其写入您在第二个参数中传递的输出流。

    <

关于java - 从 GAE 应用程序内部写入 PDF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14992534/

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