Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 动态创建PDF而不将其存储在驱动器/服务器上,然后将其转换为FileBody类型_Java_File_Pdf Generation - Fatal编程技术网

Java 动态创建PDF而不将其存储在驱动器/服务器上,然后将其转换为FileBody类型

Java 动态创建PDF而不将其存储在驱动器/服务器上,然后将其转换为FileBody类型,java,file,pdf-generation,Java,File,Pdf Generation,我有以下代码: MultipartEntityBuilder builder = MultipartEntityBuilder.create(); //Want this to be on-the-fly pdf creation instead of using an existing one File thePDF = new File("/path-to-pdf"); FileBody fb = new FileBody(thePDF); bui

我有以下代码:

    MultipartEntityBuilder builder = MultipartEntityBuilder.create();

    //Want this to be on-the-fly pdf creation instead of using an existing one
    File thePDF = new File("/path-to-pdf");

    FileBody fb = new FileBody(thePDF);
    builder.addPart("Body", fb);
    ....Code to use this builder with pdf in a rest callout
在上面的代码中,我使用的是现有的pdf文件。我想改用动态创建的pdf。我知道如何使用iText创建pdf,但我不想在服务器中创建新文件。是否有一种方法可以存储文件的内容并将其类型转换为FileBody或file,以便与MultipartEntityBuilder一起使用,而无需在磁盘上实际创建文件

有什么建议吗

提前谢谢

要创建PDF,请使用:

ByteArrayOutputStream baOut = new ByteArrayOutputStream();
PdfWriter writer = PdfWriter.getInstance(document, baOut);
对于建立HttpEntity:

builder.addBinaryBody(name, baOut.toByteArray(), contentType, filename);

评论比不合理的否决票更受欢迎。:)如何使用iText创建此PDF?好的,那么
PdfWriter
将在
文件中创建PDF,该文件可以在
FileBody
中使用。尝试使用
ByteArrayOutputStream
而不是
FileOutputStream
EDIT:对于
builder.addPart
使用
org.apache.http.entity.mime.content.ByteArrayBody
让我们来看看。