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()
.
我正在使用 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()
.