Доступ к внешним ресурсам URL в iText - PullRequest
2 голосов
/ 10 февраля 2011

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

Я создал веб-форму, где я могу выбрать файлы 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 - это имя моего сервера, на котором развернуто веб-приложение.
  • Файл представляет собой строковую переменную в виде "/folder/folder1/file.pdf"

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

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

Ответы [ 2 ]

4 голосов
/ 10 февраля 2011

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

PdfReader reader1 = new PdfReader(new URL("http://centos" + file).openStream());
1 голос
/ 07 октября 2016

Сначала инициализируйте этот ресурс через 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());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...