Java, PDF

  • Автор темы Автор темы Azrael
  • Дата начала Дата начала
Google же есть... :

еще 2 варианта:
1. Вместо Document document = new Document();
надо полностью указать класс com.itextpdf.text.Document document = new Document
2. Перекомпилить iText текущей jvm

P.S. еще есть поиск: https://codeby.net/threads/13800.html
 
savl
для перекомпиления нужны исходники? и как это делается?
 
нужны конечно, можно сторонним Eclipson, можно jdk самим. Как угодно.
Я думаю все же полные имена классов надо писать.
у меня itex 5.3.0, проблем не возникало, единственное что я его подключал в лотус как стороннюю jar
 
нужны конечно, можно сторонним Eclipson, можно jdk самим. Как угодно.
Я думаю все же полные имена классов надо писать.
у меня itex 5.3.0, проблем не возникало, единственное что я его подключал в лотус как стороннюю jar

через ls2j запускаете или как java агент?

у меня проблемы только c ls2j
как java-agent проблем нету.

как с лотуса перекомпилить?
 
если есть сорц - перекомпиляется javac с указанием путей для classpath
javac входит в нотусню (прописать в path винды, если на винде)

Добавлено: но ещё луча - если есть build для ant... (в ОСС проектах он как пр-ло есть)
ставим ant - и компиляем (эссесвено путь к javac д.б. нотусёвый)

Добавлено: и чесногря не помню, напрямую itext не юзал, но вродить как fop работает из бриджа, правда либы надо в ФС покладивать

Добавлено: мне суть перекомпиляции не ясна ;) это лишне - потому как агент работатет
 
если есть сорц - перекомпиляется javac с указанием путей для classpath
javac входит в нотусню (прописать в path винды, если на винде)

Добавлено: но ещё луча - если есть build для ant... (в ОСС проектах он как пр-ло есть)
ставим ant - и компиляем (эссесвено путь к javac д.б. нотусёвый)

Добавлено: и чесногря не помню, напрямую itext не юзал, но вродить как fop работает из бриджа, правда либы надо в ФС покладивать

Добавлено: мне суть перекомпиляции не ясна ;) это лишне - потому как агент работатет
Пока вышел с положения - сделал яваагент который вызываю из LS с передачей параметров через док, работает.
 
актуальный вопрос.
Решил копать iText. Тут вроде бы все понятно. PDF создается, данные записываются. Все хорошо
Вот решил глянуть XMLWorkerHelper. Но тут вот прамблема... краксворд.
Получаю ошибку на этой строке worker.parseXHtml(pdfWriter, document, fis);
[0F2C:005D-07CC] 22.11.2012 18:53:14 Agent error: java.security.AccessControlException: Access denied (java.lang.RuntimePermission getenv.windir)
Агент подписан сервером. Уровень доступа 3.
Кто-то сталкивался с такой проблемой?
<div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">код</div></div><div class="sp-body"><div class="sp-content"><!--shcode--><pre><code class='java'> pdfWriter = PdfWriter.getInstance(document, new FileOutputStream(path));

//document header attributes
document.addAuthor("betterThanZero");
document.addCreationDate();
document.addProducer();
document.addCreator("MySampleCode.com");
document.addTitle("Demo for iText XMLWorker");
document.setPageSize(PageSize.LETTER);

//open document
document.open();
document.add(new Paragraph("Create PDF In lotus "));

//To convert a HTML file from the filesystem
String File_To_Convert = "d:\\PDF\\test\\documenttest.html";
FileInputStream fis = new FileInputStream(File_To_Convert);

//URL for HTML page
//URL myWebPage = new URL("http://demo.mysamplecode.com/");
//InputStreamReader fis = new InputStreamReader(myWebPage.openStream());

//get the XMLWorkerHelper Instance
XMLWorkerHelper worker = XMLWorkerHelper.getInstance();
//convert to PDF
worker.parseXHtml(pdfWriter, document, fis);

//close the document
document.close();
//close the writer
pdfWriter.close();[/CODE]
 
NickProstoNick,

Добавление в java.policy в секцию grant строки:

permission java.lang.RuntimePermission "getenv.windir"

и перезапуск сервера не помогает?
 
NickProstoNick,

Добавление в java.policy в секцию grant строки:

permission java.lang.RuntimePermission "getenv.windir"

и перезапуск сервера не помогает?
Не помогает. :huh:
Все та же ошибка
C локалью вроде разобрался. Заработало.
Но вот новый прикол. В XMLWorkerHelper "скармливаю" ссылку на документ (простая табличка с текстом)... и получаю ошибку на то, что не закрыт тег img.
Но вот какая интересная особенность - оказывается что не закрыт не только тег img, а так же и теги p, br.
Смотрю что это проблема конвертации Domino сервера документов в HTML. Указать DOCTYPE не помогает
Как решить эту проблему?

Со строгим синтаксисом HTML разобрался.
Остается открытый вопрос с кириллицей. Пока победить не получается :(
 
а чё с кириллицей?
При импорте из HTML да и просто так.. при добавлении "русского" текста либо пустота либо иероглифы.
Я так понимаю надо как-то шрифты подключить. Но пока не раскопал как.
И еще заметил особенность... <font> не работает. Текст обрамленный в такой тэг попросту исчезает

Пробовал еще ковырять link removed
Но получаю ошибку:
don't know how to handle application/pdf as an output format
Моцк плывет :)
 
вот ФОП и нужно было задействовать - там со шрифтами нет никаких траблов (начиная с 0.95 версии)
здесь есть мои изыскания по ФОП, с готовым конфигом для шрифтов
ну ежели такой упор именно в айТекст -
 
вот ФОП и нужно было задействовать - там со шрифтами нет никаких траблов (начиная с 0.95 версии)
здесь есть мои изыскания по ФОП, с готовым конфигом для шрифтов
ну ежели такой упор именно в айТекст -
ФОП победил, но танцы с бубнами. И проблемы как раз все что старше 0.9 версии. Ну по крайней мере с теми примерами что есть в нете.
В версии 1.1 проблемы с этой строкой. Код просто вываливается
<!--shcode--><pre><code class='java'>Fop fop = fopFactory.newFop(MimeConstants.MIME_PDF, out);[/CODE]
ошибка вот такая
don't know how to handle application/pdf as an output format
А касательно iText - не улыбается так подключать шрифты... т.к. это все должно работать на Соляре
 
От ошибки избавился. Скинул все jar в директорию Notes. До этого они были прикреплены в базу.
Но некоторые проблемы таки не побеждаются :(
Нет кириллицы, нет картинок и нет форматирования таблицы :(
Для картинок место оставляет, но самой картинки нет. В fo-файле запись о картирке есть.
Код:
<fo:external-graphic content-type="" height="262" src="test_files/0.gif" width="425" />
Структура каталога:
Код:
[.]
┠ [test_files]
|	 ∟ 0.gif
┠ test.html
┠ test.fo
┠ test.pdf
∟ xhtml2fo.xsl

И появляются такие коды & # 10;. Я так понимаю это перевод каретки
 
разбираем по-порядку...
картинки:
-PDF - надо встраивать через base 64
-html - а как он на них будет ссылаться-то

как встраивать в пдф - здесь было (xsl целый) от проекта LDN-FOP-PDF
link removed
link removed
и воще link removed
dxl2fo.xsl - обратить внимание
link removed

да и здесь выкладывал (где не помню)
 
разбираем по-порядку...
картинки:
-PDF - надо встраивать через base 64
-html - а как он на них будет ссылаться-то

как встраивать в пдф - здесь было (xsl целый) от проекта LDN-FOP-PDF
link removed
link removed
и воще link removed
dxl2fo.xsl - обратить внимание
link removed

да и здесь выкладывал (где не помню)
Та ну... iText понимает и импортирует картинки просто так... без base 64
Этой строки для iText достаточно для импорта картинки:
<!--shcode--><pre><code class='html'><img src="test_files/0.gif" width="425" height="262" />[/CODE]
Главное чтоб картинка была
Думал что и Fop так же умеет.
 
фоп понимает, если тег правильный и путь к файлу!
кот. можно и в переменную сунуть (в т.ч. в файл пропертей)
но если цель - обработать ДХЛ, то смысла выкладывать встроенный имедж в ФС я не вижу
 
фоп понимает, если тег правильный и путь к файлу!
кот. можно и в переменную сунуть (в т.ч. в файл пропертей)
но если цель - обработать ДХЛ, то смысла выкладывать встроенный имедж в ФС я не вижу
Ну я вроде привел примеры какие ссылки у меня на изображения в html. В html все изображения отображаются.
В идеале конечно нужно уметь обрабатывать и html и dxl, но с DXL у меня вообще ничего не получается.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!