Apache FOP:如何设置使用相对路径访问外部资源的基本 URL
在我的 .xsl 文件中,我使用这样的外部图形
但图像未加载到生成的 PDF 中,并且我在控制台中收到此错误。[ERROR] 创建区域时出错:图像 URL 错误:xsl\logo.jpg(系统找不到指定的路径)且未指定基本 URL
如何解决此问题?我想设置基本 URL 就可以了。但如何设置基址呢?请帮忙。
In my .xsl file I am using external graphics like this<fo:external-graphic width="90pt" height="29pt" src="url(xsl/logo.jpg)"/>
But image is not getting loaded in the generated PDF and I get this error in console.[ERROR] Error while creating area : Error with image URL: xsl\logo.jpg (The system cannotfind the path specified) and no base URL is specified
How do I solve this issue? I guess setting the base URL will do. But how to set the base URL? Please help.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
我从这个链接得到了一个解决方案
http://groups.yahoo.com/group/XSL-FO/message/6116
使用 Java 代码设置基本目录
这对我有用。
如果您知道更好的解决方案,请留言。
I got a solution from this link
http://groups.yahoo.com/group/XSL-FO/message/6116
set base dir using Java code
This worked for me.
Please post if you know any better solution.
我正在使用 Apache FOP 1.1 版本。
我在项目的资源管理器中添加了所有图像和所需的字体文件。
它对我来说工作得很好。
谢谢
I am using Apache FOP 1.1 Ver.
I added all images and required font font files in resource director of my project.
It is working fine for me.
Thank you
我遇到了同样的问题,这只适用于我的 fop 0.95 版本。
SetBaseUrl 在 1.0 版本中被忽略
I had the same problem and this only works for me in the version 0.95 of fop.
SetBaseUrl is ignored in version 1.0
1.0、1.1版本的解决方案:
在 fop 1.0 和 1.1 中,方法 setBaseURL() 无法正确处理本地文件,因此您可以使用方法 setURIResolveri 并编写接口 URIResolver 的实现。
1.添加用途
导入 javax.xml.transform.URIResolver;
2.在mainClass中添加
fop fop = fopFactory.newFop(MimeConstants.MIME_PDF, out);
3.在调用transformer.transform(src, res)之前添加:
Solution for versions 1.0, 1.1 :
In fop 1.0 and 1.1 method setBaseURL() does not work correctly with local files, so you can use method setURIResolveri and write your implementation of interface URIResolver.
1.Add in uses
import javax.xml.transform.URIResolver;
2.Add in mainClass
Fop fop = fopFactory.newFop(MimeConstants.MIME_PDF, out);
3.Add before call transformer.transform(src, res) this: