我正在使用Mojarra,PrimeFaces和Tomcat 6.x开发JSF 2.0项目,但在前面我有一个Apache HTTP服务器。
我创建了一个Web表单,我可以在其中选择要合并的PDF文件。这些文件在Apache HTTPD控制下的目录中是我的WAR的外部文件。我使用iText 2.1.7合并PDF文件。
目前我正在按如下方式访问文件:
PdfReader reader1 = new PdfReader(new URL("file:///appli/Vignette/vcm/inst-vgninst/docroot_CDC" + file));
但是,我想通过HTTP访问它们:
PdfReader reader1 = new PdfReader(new URL("http://centos" + file));
这失败了。但是网址浏览器可以访问网址http://centos/folder/folder1/file.pdf。
出了什么问题,如何解决?
答案 0 :(得分:4)
PdfReader
显然无法直接使用指向外部资源的网址。如果您真的打算使用URL
而不是File
或FileInputStream
,那么最好的办法就是使用URL#openStream()
将InputStream
返回PdfReader
1}}。它也就是constructor。
PdfReader reader1 = new PdfReader(new URL("http://centos" + file).openStream());
答案 1 :(得分:1)
首先通过Web Driver初始化该资源。有关详细信息,请参阅以下代码 -
WebDriver ie_driver = BrowserFactory.startBrowser("ie","https://www.tutorialspoint.com/sql/pdf/index.pdf");
ie_driver.manage().window().maximize();
PdfReader reader = new PdfReader(new URL("https://www.tutorialspoint.com/sql/pdf/index.pdf").openStream());
System.out.println("This PDF has "+reader.getNumberOfPages()+" pages.");
String page = PdfTextExtractor.getTextFromPage(reader, 1);
System.out.println("Page Content:\n\n"+page+"\n\n");
System.out.println("Is this document tampered: "+reader.isTampered());
System.out.println("Is this document encrypted: "+reader.isEncrypted());