You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用iTextPDF生成内存PDF字节而非创建实际文件

生成内存中的PDF字节数组(不创建实际文件)

直接用ByteArrayOutputStream替代FileOutputStream即可,iText的HtmlConverter.convertToPdf方法支持接收任意OutputStream实现,包括内存流。

修改后的完整代码如下:

import com.itextpdf.html2pdf.HtmlConverter;
import java.io.ByteArrayOutputStream;
import java.io.IOException;

public class App 
{
    public static final String HTML = "<h1>Hello</h1>"
            + "<p>This was created using iText</p>"
            + "<a href='hmkcode.com'>hmkcode.com</a>";
    
    
    public static void main( String[] args ) throws IOException  
    {
        // 使用内存输出流替代文件输出流
        ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
        HtmlConverter.convertToPdf(HTML, outputStream);
        
        // 将内存流转换为字节数组
        byte[] pdfBytes = outputStream.toByteArray();
        
        System.out.println("PDF字节数组已生成,长度:" + pdfBytes.length);
        
        // 后续可以用pdfBytes做任何操作:比如返回给HTTP响应、存入数据库等
    }
}

关键说明:

  • ByteArrayOutputStream会把PDF内容写入内存缓冲区,不会在文件系统创建任何实际文件
  • 调用outputStream.toByteArray()就能得到完整的PDF字节数组
  • 生成的字节数组可直接用于各类场景,无需落地到磁盘

内容的提问来源于stack exchange,提问作者Vish

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 14:43:12