将pdfDocument转换为byte []流-PDFBox Java

时间:2019-04-01 08:15:10

标签: java pdfbox

我正在使用73000 % 60000更新可编辑PDF的值。除了保存之外,我还想返回流。我保存了它,一切正常。现在,我想返回PDFBox而不是保存它。

byte[]

我尝试了public static void main(String[] args) throws IOException { String formTemplate = "myFormPdf.pdf"; try (PDDocument pdfDocument = PDDocument.load(new File(formTemplate))) { PDAcroForm acroForm = pdfDocument.getDocumentCatalog().getAcroForm(); if (acroForm != null) { PDTextField field = (PDTextField) acroForm.getField( "sampleField" ); field.setValue("Text Entry"); } pdfDocument.save("updatedPdf.pdf"); // instead of this I need STREAM } } ,但是它无法序列化。

SerializationUtils.serialize

1 个答案:

答案 0 :(得分:2)

使用接受OutputStream并使用ByteArrayOutputStream的重载save方法。

public static void main(String[] args) throws IOException
{
    String formTemplate = "myFormPdf.pdf";

    try (PDDocument pdfDocument = PDDocument.load(new File(formTemplate)))
    {
        PDAcroForm acroForm = pdfDocument.getDocumentCatalog().getAcroForm();

        if (acroForm != null)
        {

           PDTextField field = (PDTextField) acroForm.getField( "sampleField" );
           field.setValue("Text Entry");
        }

        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        pdfDocument.save(baos);
        byte[] pdfBytes = baos.toByteArray(); // PDF Bytes
    }
}