问题标签 [apache-fop]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Apache FOP:解析为本地文档安装
我需要配置 Apache FOP 以便它使用我的本地 docbook dtd 文件等。我尝试了几乎所有的东西,从编写目录文件到安装 apache xml 解析器等
这是我写的目录文件。我还将 xml.catalog.files 属性设置为该文件,并实例化了 FopFactory 用作 URIResolver 的 apache 目录解析器。但是 fop 仍然从网上获取所有内容。
任何想法出了什么问题?
问候, raichoo
xml - 是否可以将 XSL 表中的行分成单独的页序列?
我是 xsl 的新手,所以这可能是一个显而易见的答案。
我正在使用 FOP 从 xml 和 java 中的 xsl 样式表创建一个表。该表可以有几千行(> 50,000),因此我想减少 FOP 的内存占用以避免耗尽 Java 堆空间。
现在,我的 xsl 将整个<fo:table-body
> 元素组合成一个单独的页面序列,因此在生成表的行时永远不会回收任何内存。是否有可能以某种方式将单个或一组行分成单独的页面序列?
我知道我可以通过索引遍历元素(请参阅此 stackoverflow 答案:Xslt - iterate nodes in chunks),但我认为<fo:page-sequence
> 元素在 > 元素内不合法<fo:table
。
如果无法拆分表中的行,有没有办法可以将行拆分为单独的表?
编辑:我从建议中想出了这个
输入xml:
输入 xsl:
有了这个,我在关于主引用的 > 标记上得到一个错误<page-sequence
,但我用 master-reference="simpleA4" 尝试过,但无济于事。是什么赋予了?
除了那个语法错误之外,还有什么看起来不对的地方?
width - XSL-FO 在 Apache FOP 和 XMLSpy 中从具有宽区域主体的页面主流向窄(包括列宽更改)时溢出宽度
我在带有 Apache FOP 的 XMLSpy 中使用 XSL-FO(格式化对象)。
当我将内容从具有宽区域主体的简单页面主页面的第一页流到具有窄区域主体的第二(其余)页面时,第二页上的内容与上的内容具有相同的宽度第一页,溢出正文。如果我将第二页上的列数设置为大于第一页上的列数,也会发生这种情况。
如何强制引擎识别可用的水平空间已减少,并相应地调整正文(或列)宽度?
可以在此处查看问题的示例(与包含足够文本内容以从第 1 页流到第 2 页的任何 XML 文档一起使用):
image - 使用 IKVM 的 FOP:无图像
我已经在 .NET 中成功编译并使用了 FOP 1.0 和 IKVM 0.44.5,但是我无法让它在生成的 PDF 中显示任何图像。
当我在命令行中通过 ikvm 运行 FOP 时,我得到一个 java.io.EOFException。当我使用 java 转换同一个文件时,图像完美地显示出来。
有没有人使用 FOP+IKVM 让图像工作?任何帮助或解决方案的指针将不胜感激!
java - FOP 驱动程序配置与 FOPFactory 相同
我目前正在使用使用驱动程序嵌入的 FOP,如下所示
但我想以编程方式访问配置设置,特别是输出分辨率,因为我必须生成多个分辨率文件 72dpi 150dpi 300dpi 我能找到的唯一方法是更改为 FOPFactory 如下
有没有一种方法可以使用 Driver 控制 FOP 引擎,或者我必须切换到 FOPFactory,这样做有什么好处/问题?
android - 适用于 Android 的 FOP?
我最近使用 FOP 编译了一个 Android 应用程序,因为我想将一些 XML 转换为 PDF 文件。但是我不认为 FOP JAR 文件不适用于 Android。是否有适用于 Android 的 FOP 版本?或者我可以在我的应用程序中使用任何其他 XML 到 PDF 转换器,而不是连接到 Internet 上启用 FOP 的服务器?
我试过包括 fop.jar 和 xmlgraphics.jar 但即使将它们添加到我的项目中,调用也会FopFactory.newInstance()
失败。
这是调用 FOP 的按钮单击的代码片段:
编译器也给了我一堆Dxwarning: Ignoring InnerClasses attribute...
错误。这是我单击按钮创建 PDF 时的错误:
java - PDF,barcode4j用java压缩
我正在使用 Apache Fop 1.0 创建 PDF 文档。默认情况下,它使用 FlateFilter 来压缩内容。FOP 在封面下使用 DeflaterOutputStream DEFAULT_COMPRESSION。我还没有找到将其设置为 BEST_COMPRESSION 的任何可能性。
pdf 包含一些由 Barcode4j 2.1 生成的条形码。正如我看到生成的图像非常大,我还没有找到任何信息如何压缩它:
如果我生成 PDF(在 fop 中使用 flate 并使用上面编写的条形码注入),那么我可以使用简单的 winzip 将 pdf 大小减少 30%。
有没有办法通过我的过程使用更好的压缩算法?pdf 应该可以在 Acrobat Reader 中打开,因此不能在服务器端压缩并在客户端解压缩。
我认为barcode4j生成的图像可以被压缩,但我不知道该怎么做。
Update1:生成的条形码似乎太大了。pdf 包含 3 页和 3 个条形码。3 条码大约占整个 pdf 大小的 50%。
谢谢
佐尔坦
xml - 在 FOP 转换之前验证 XML
我想在对 XML 模式运行 FOP 转换之前,针对 XML 模式验证 XMLReader 的 XML 输出。
我可以独立完成这两个步骤,但这意味着 XMLReader 被处理了两次。我看不到如何使用验证器的输出并将其反馈回转换。
我正在运行的代码如下。
谢谢你的帮助
来源:
验证:
变换:
xsl-fo - XSL-FO 文档左下角的静态图像,动态文本围绕 2 列布局流动?
我正在使用来自外部源的动态 XML/XSL-FO 创建 PDF,我需要页面左下方的图像,但它不工作并且在图像周围流动文本。
使用的 xsl 如下 - 注意花是对 fo:instream-foreign-object 作为 SVG 的片段的调用
图像显示在底部,但文本一直被推到页面的右侧,(在 61 毫米处 - 如果我将宽度设置为 1 毫米,它可以工作,但文本会溢出图像。)
我怎样才能将图像放在正确的位置并且文本环绕,文本也是可变的并且可以更改,因此无法计算文本内嵌图像的位置。
apache-fop - Apache FOP:如何设置基本 URL 以使用相对路径访问外部资源
在我的 .xsl 文件中,我使用这样的外部图形
<fo:external-graphic width="90pt" height="29pt" src="url(xsl/logo.jpg)"/>
但是图像没有在生成的 PDF 中加载,我在控制台中收到此错误。
[ERROR] Error while creating area : Error with image URL: xsl\logo.jpg (The system cannotfind the path specified) and no base URL is specified
我该如何解决这个问题?我想设置基本 URL 就可以了。但是如何设置基本 URL?请帮忙。