我正在尝试使用Apache FOP在Oracle 11g数据库中生成PDF文档。我已使用 loadjava 工具将以下JAR文件中的类安装到我的模式中:
在数据库内部,我可以生成没有图形的PDF文档。数据库外部的相同代码(命令行)创建包含所有相关图形的PDF文档。
在数据库中执行时,似乎只是忽略了内联SVG图形。在数据库之外,它们由Batik正确呈现。
您是否成功使用Apache FOP在Oracle数据库中生成包含SVG图形的PDF文档?你能提出什么建议?
我有一个图片被定义为<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.apache.xalan.internal.xsltc.trax.TemplatesImpl$TransletClassLoader@98644313
<no principals>
java.security.Permissions@b0558743 (
(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(&#39; 数据:image / png; base64,iVBORw0KGgoAAAANSUhEUgA ... &#39;)似乎解决了此图片的问题。
谢谢!
答案 0 :(得分:0)
我确定了<fo:external-graphic />
内嵌图片的问题:问题出在 src 属性上,该属性最初是在没有 url的情况下指定的(&#39; ...& #39;)。将url()添加到 src 属性可使图像在数据库中运行时解析。
在数据库中运行时,我仍然无法获取内联SVG图形。