2011-02-09 2 views
2

Я работаю над проектом JSF 2.0 с использованием Mojarra, PrimeFaces и Tomcat 6.x, но впереди у меня есть HTTP-сервер Apache.Доступ к внешним ресурсам URL в iText

Я создал веб-форму, где я могу выбрать файлы PDF, которые я хочу объединить. Эти файлы являются внешними из моей WAR в каталоге под управлением Apache HTTPD. Я использую 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)); 
  • CentOS это имя моего сервера, где развертывается webapp.
  • файл является строкой переменной выглядеть «/folder/folder1/file.pdf»

Это терпит неудачу. Но URL http://centos/folder/folder1/file.pdf доступен обычным веб-браузером.

Что не так и как я могу это исправить?

ответ

4

PdfReader, по-видимому, не может работать напрямую с URL-адресами, указывающими на внешний ресурс. Если вы действительно собираетесь работать с URL, а не с File или FileInputStream, то лучше всего использовать URL#openStream(), чтобы вернуть InputStream в PdfReader. Для этого он также имеет значение constructor.

PdfReader reader1 = new PdfReader(new URL("http://centos" + file).openStream()); 
1

Сначала инициализируйте этот ресурс через веб-драйвер. См. Ниже код для более подробной информации.

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()); 
+0

ОП не сказал ничего прямо о том, как он запускает свой сервер, а его имя даже намекает на направление Linux. Таким образом, что хорошего должно инициализировать 'WebDriver' для', то есть '' делать? – mkl

Смежные вопросы