java - 压缩使用 itext 创建的 pdf 文件

标签 java javascript jsp pdf itext

    response.setHeader("Content-Disposition", "attachment; filename=r.pdf");
    Document document1 = new Document(PageSize.A4);
    PdfWriter pdfWriter=PdfWriter.getInstance(document1, response.getOutputStream());
    pdfWriter.setPageEvent(new HeaderAndFooter(name));
   try{
     document1.open();
      XMLWorkerHelper worker1 = XMLWorkerHelper.getInstance();
      long seed =123;
      Random rnd = new Random (seed); 
      Collections.shuffle(arrlist1,rnd); 
      for(int i=0;i<nb;i++){
      String str =(String) arrlist1.get(i);
      worker1.parseXHtml(pdfWriter, document1, new StringReader(str));
  }
  }catch(Exception e){e.printStackTrace();}
  document1.close();
   pdfWriter.flush();
   pdfWriter.close();
   multi.finish();
 %>

我有一个创建 pdf 页面的代码,我想知道如何压缩它? 我在 some1 的帖子上找到了这段代码

var zip = new JSZip();
zip.file("Hello.txt", "Hello World\n");
var img = zip.folder("images");
img.file("smile.gif", imgData, {base64: true});
var content = zip.generate();
location.href="data:application/zip;base64,"+content;

但不知道如何将其应用到我的?

最佳答案

在 ZipOutputStream 而不是 response.getOutputStream() 中创建 pdf。

示例:

        OutputStream servletOutputStream =response.getOutputStream(); 
        ZipOutputStream zos = new ZipOutputStream(servletOutputStream);
        ZipEntry entry = new ZipEntry("sample.pdf");
        zos.putNextEntry(entry);

        Document document1 = new Document(PageSize.A4);
        PdfWriter pdfWriter=PdfWriter.getInstance(document1, zos.getOutputStream());
        pdfWriter.setPageEvent(new HeaderAndFooter(name));

关于java - 压缩使用 itext 创建的 pdf 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20511389/

相关文章:

Java:观察者模式在新线程中通知

java - 如何让Camel Websocket组件在客户端连接时发送消息?

javascript - 滚动指示器 JavaScript

javascript - 如何检查当前时间是否在特定营业时间之间?

java - 上传图像的相同图像名称未插入数据库

java - HashMap 更新未反射(reflect)在线程之间

java - 命名异常 : jta. 用户事务

Javascript二维数组初始化

java - 当我从 JSP 向 MySQL 发送请求时,数据库中显示的俄语符号不正确

java - JSF h :commandButton 的问题