我已经将FOP版本从fop 1.1升级到fop 2.3,但是
org.apache.fop.events。未找到LoggingEventListener processEvent Image。
以下是为升级而修改的代码片段。使用fop 2.3主控查看代码
法典:
TransformerFactory factory = TransformerFactory.newInstance();
Transformer transformer = factory.newTransformer();
FOUserAgent foUserAgent = fopFactory.newFOUserAgent();
//foUserAgent.setURIResolver( this.getURIResolver() );
transformer.setURIResolver(this.getURIResolver());
Fop fop = null;
Source src = new StreamSource(new ByteArrayInputStream(foDoc));
if (this.getContentType().equals("application/pdf"))
{
fop = fopFactory.newFop(MimeConstants.MIME_PDF, foUserAgent, os);
}
else if (this.getContentType().equals("application/postscript"))
{
fop = fopFactory.newFop(MimeConstants.MIME_POSTSCRIPT, foUserAgent, os);
}
查看fop 2.3的代码
protected static final FopFactory fopFactory = FopFactory.newInstance(new File(".").toURI(), resolver);
XSLT 代码
<fo:external-graphic src = "stylesheets/Anthem_Join_In.bmp"/>
解析器的API已更改,并且文档记录很差。此代码适用于我(fop 2.3)在JSF webApp中。
final ServletContext sc = (ServletContext) FacesContext.getCurrentInstance().getExternalContext().getContext();
// Create ServletContext resource Resolver
ResourceResolver resolver = new ResourceResolver() {
@Override
public Resource getResource(URI uri) throws IOException {
return new Resource(sc.getResourceAsStream(uri.toASCIIString()));
}
@Override
public OutputStream getOutputStream(URI uri) throws IOException {
URL url = sc.getResource(uri.toASCIIString());
return url.openConnection().getOutputStream();
}
};
// Buid the factory
FopFactoryBuilder builder = new FopFactoryBuilder(new URI(sc.getContextPath()), resolver);
FopFactory FOP_FACTORY = builder.build();
我的项目中以前的代码的其余部分保持不变。我没有使用transformer.setURIResolver(…)
xml fop 代码如下所示:
<fo:external-graphic width="auto" content-width="164pt" height="auto" src="url(/resources/img/main-logo.png)"/>
我正在尝试使用带有xslt的外部图形来生成PDF。大多数图像都工作正常,但偶尔会有一张“找不到”,尽管可以在Web浏览器上查看。FOP吐出的错误如下: 这是我的外部图形部分: 知道我做错了什么吗? 编辑:看起来这个问题与服务器不允许访问自动请求有关。有没有办法在fop 2.1中设置用户代理的URIResolver?这一功能似乎存在于以前的版本中,但我似乎找不到一种在2.1中实现的方法。
这就是我的症状: 我的python:3.7 64位os:ArchLinux
我的 Apache FOP 应用程序有问题。 一切正常,直到我开始将外部文件(xsl、ttf、…)从外部工作目录打包到应用程序的jar文件中。从那以后,不再加载图像,我收到以下错误: 在 xsl 文件中,图像嵌入了: 当我将文件打包到jar中时,为什么图像不再工作?图像作为base64字符串嵌入到xsl文件中,因此图像数据必须可用... 谢谢:) 编辑1我正在用以下内容设置FopFactory基本
问题内容: 在编译后运行程序时,出现以下错误: ./prog:/usr/lib/x86_64-linux-gnu/libstdc .so.6: 找不到版本GLIBCXX_3.4.19’(./prog要求)./prog:/ usr / lib / x86_64-linux-gnu / libstdc 。so.6:找不到版本“ GLIBCXX_3.4.20”(/ home / arman / lib
问题内容: 为什么我得到这个? 我该如何解决? 问题答案: 重新安装JDK并在JDK上设置系统变量JAVA_HOME。(例如C:\ tools \ jdk7), 然后将JAVA_HOME变量添加到PATH系统变量中 在命令行输入 和 验证安装是否成功完成。
在Google Cloud>Workloads中部署应用程序时,我在日志资源管理器中出错 找不到任何兼容的框架版本 找不到框架“Microsoft.NetCore.App”版本“3.1.0”。 找到了以下框架:5.0.4在[/usr/share/dotnet/shared/microsoft.netcore.app] 您可以通过安装指定的框架和/或SDK来解决此问题。 可在以下网址找到指定的框架: