我正在使用Documents4j将文档转换为PDF / a。我想使用以下代码构建一个返回文件String DecimalValue = FilterUSD.Text.ToString().Trim();
Double Deci = Convert.ToDouble(DecimalValue);
if(Deci < 0)
{
//Negative
Double init = Deci;
Double init2 = init - 1;
sbuilder.Append(" Amount_USD").Append(" <= ").Append("@init AND Amount_USD > @init2 ");
}
else
{
//Positive, as above
}
表示的函数:
Select * FROM Table WHERE Amount_USD <= @init AND Amount_USD > @init2
但我的输出是空白的。我认为我通过输入不恰当的参数来滥用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()
?如果除了OutputStream
之外没有任何可行的ByteArrayOutputStream
,您是否知道如何在不创建文件的情况下在输出中返回OutputStream
?
提前感谢您的关注和答案。
答案 0 :(得分:1)
在调用schedule
而不是exectue
时,作业将在后台运行。你在这里面临着竞争条件。
此外,没有充分的理由在字节数组输出流上调用toString
; ratheer使用getBytes()
。