0

我正在尝试将一个大/长字符串(从磁盘读取的 PDF 二进制文件)传递到 Java 应用程序中,但到目前为止收效甚微。当我从本地磁盘读取文件时,该应用程序可以工作,所以我知道问题与我导入数据的方式有关。大致这就是我正在查看的内容:

我正在阅读,在 PHP 中操作 pdf 并使用 exec(); 触摸 Java 应用程序,这就是我使用 Java 的地方:

作品:

File input = new File("C:\\Users\\Jack\\Downloads\\col_terror.pdf");
document = PDDocument.load(input);

不工作:PHP:

exec("/path/to/jar/java -jar JavaAppHere.jar $pdf_string",$ouput);

爪哇:

public static void main(String[] args) throws Exception {
...
document = PDDocument.load( args[0] );
...
}

我觉得这是一件很简单的事情,我不理解将字符串作为 args 传递,尽管自从我涉足 Java 领域已经有几年了。

4

1 回答 1

0

请阅读 PDDocument 的 Javadoc。如果 PDDocument 引用PDDocument,您可以看到您正在传递数据,而PDDocument.load(java.lang.String)需要文件名。您似乎也没有使用 escapeshellarg() 编码 $pdf_string

由于在传递二进制数据作为 shell 参数时涉及的变量太多,我建议不要这样做。最简单的解决方案是将 PDF 写入临时文件并将文件名传递给 java.util. 另一种方法是通过标准输入传递 PDF 数据。

于 2012-08-10T15:52:38.713 回答