2014-10-08 2 views
1

Я пытаюсь сгенерировать PDF-документы в базе данных Oracle 11g с помощью Apache FOP. Я установил классы из следующих файлов JAR в моей схеме, используя loadjava инструмент:Создание PDF-файла, содержащего SVG-изображения с использованием Apache FOP в базе данных Oracle

  1. Обще-каротаж 1.0.4.jar
  2. Обще-ю-1.3.1.jar
  3. Авалон-каркасного 4.2.0.jar
  4. XML-АПИС-доб-1.3.04.jar
  5. Xalan-2.7.0.jar
  6. сериализатору-2.7.0.jar
  7. xmlgraphics-Коммо нс-1.5.jar
  8. батик все 1.7.jar
  9. fop.jar

В то время как в базе данных, я могу генерировать PDF документы без графики. Тот же код вне базы данных (командной строки) создает документы PDF со всей соответствующей графикой.

Встроенная графика SVG, кажется, просто игнорируется при выполнении в базе данных. За пределами базы данных они правильно отображаются Батиком.

Вы успешно использовали Apache FOP для создания PDF-документов, содержащих графику SVG, в базе данных Oracle? Какие предложения вы можете сделать?

У меня есть один рисунок, определяемый как <fo:external-graphic content-width=".5in" content-height=".5in" src="data:image/png;base64, iVBORw0KGgoAAAANSUhEUgA..." />. Это делает правильно вне базы данных, и вызывает ошибку разрешения при выполнении в базе данных:

ORA-29532: Java call terminated by uncaught Java exception: 
javax.xml.transform.TransformerException: 
java.security.AccessControlException: the Permission 
(java.lang.RuntimePermission getClassLoader) has not been granted to 
ProtectionDomain (null <no signer certificates>) 

com.sun.org.apa[email protected]98644313 
<no principals> 
[email protected] (
(java.lang.RuntimePermission modifyThreadGroup) 
(java.lang.RuntimePermission createSecurityManager) 
(java.lang.RuntimePermission modifyThread) 
(java.lang.RuntimePermission preferences) 
(java.lang.RuntimePermission exitVM) 
(java.util.PropertyPermission user.language write) 
(java.util.PropertyPermission * read) 
(oracle.aurora.security.JServerPermission LoadClassInPackage.*) 
) 

в базе данных, я знаю, как предоставить разрешения на мою схему; однако я не знаю, как бы я дал getClassLoader на загружаемую кодовую базу.

ПРИМЕЧАНИЕ: изменение URL строковых график выше явно указать URL (« данные: изображения/PNG; base64, iVBORw0KGgoAAAANSUhEUgA ... »), похоже, проблема решена, для этого образ.

Спасибо!

ответ

0

Я решил проблему с <fo:external-graphic /> встроенного изображения: проблема была с ЦСИ атрибут, который первоначально был указан без URL («...»). Добавление url() в атрибут src позволяет решить проблему при работе в базе данных.

Я все еще не могу получить встроенную графику SVG для рендеринга при работе в базе данных.

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