Documents4j 的输出流问题

OutputStream issue with Documents4j

我正在使用 Documents4j 将文档转换为 PDF/a。我想构建一个 return 文件的 String 表示的函数,代码如下:

    String input=...;
    DocumentType[] docType= {DocumentType.CSV,DocumentType.DOC,DocumentType.MHTML,DocumentType.MS_EXCEL,DocumentType.MS_WORD,DocumentType.ODS,DocumentType.PDF,DocumentType.RTF,DocumentType.TEXT,DocumentType.XML};

    IConverter converter = LocalConverter.make();

    ByteArrayInputStream in= new ByteArrayInputStream(input.getBytes());       
    ByteArrayOutputStream out = new ByteArrayOutputStream();

    Future<Boolean> conversion = converter.convert(in)
    .as(docType[n-1])
    .to(out) 
    .as(DocumentType.PDFA)
    .prioritizeWith(1000) // optional
    .schedule();

    String output=out.toString();

    in.close();
    out.flush();
    out.close();
    System.out.println(output);
    return(output);

但是我的输出是空白的。我认为我通过输入不适当的参数误用了 .to() 方法。如果不是 ByteArrayOutputStream,我应该使用哪个 OutputStream?如果除了 FileOutputStream 之外没有任何可行的 OutputStream,您是否知道如何在输出中 return 一个 String 而无需在任何时候创建文件?

在此先感谢您的关注和回答。

当调用 schedule 而不是 exectue 时,作业在后台运行。您在这里面临赛车状况。

此外,没有充分的理由在字节数组输出流上调用 toString;宁愿使用 getBytes().