问题标签 [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.

0 投票
2 回答
1445 浏览

apache-fop - 关于 FOP 中的外部文档

我正在通过 XML、XSL 和 FOP 创建 pdf 文件。我希望 PDF 文件内容显示外部文件内容,例如 word 文档。我知道在我们使用的 PDF 中显示图像,但是我们应该使用什么标签来显示除 pdf 文件类型以外的文件内容。

有一个声称能够做到这一点的 FOP 扩展:

jeremias-maerki.ch/development/fop/index.html

另请参阅 xmlgraphics.apache.org/fop/1.0/extensions.html#external-document

当我以这种方式使用时


xmlns:fox="http://xmlgraphics.apache.org/fop/extensions"
content-type="pdf" src="C:\temp\reports\p2.pdf"/>

我得到了例外

org.apache.fop.apps.FOPException:错误(未知位置):没有找到 fox:external-document 的元素映射定义

让我知道原因。

提前致谢。

0 投票
1 回答
2896 浏览

xslt - 使用 XSL-FO、Apache FOP 将元素右对齐

我正在使用 XSL-FO 和 Apache FOP 来获取一个看起来很性感的 XML 文件并将其输出为 PDF,但是我遇到了一个非常基本的问题,试图从在页面右侧,我可以通过增加属性将其强制移到右侧left,但如果我更改页面大小、方向或边距,这将立即无用。

下面是 XSL 的代码,请注意第 23 行的注释。

正如您在此屏幕截图中看到的那样,该元素的定位不正确:

替代文字

有谁知道为什么会这样?

0 投票
1 回答
2878 浏览

php - 用于 PHP 的 XSL-FO 处理器:将 XML 转换为 PDF

我正在寻找一个 PHP XSL-FO 处理器。

我需要的是Apache FOP(在 Java 世界中)的替代方案,以便将 XML 文档转换为 PDF,但我需要在没有 Java 支持的 PHP 环境中执行它。

0 投票
3 回答
31200 浏览

java - Resolving relative paths when loading XSLT files

I need to do an XSL transformation using Apache FOP and I had code like this:

where xslPath is the path where my XSLT file is stored.

I have confirmed that it works when I have only one XSLT file, but in my project I have divided things into several XSLT files and joined them with the <xsl:import /> tag. With this configuration, I get a NullPointerException because it doesn't understand all the information stored in XSLT because it's distributed over different files.

I wonder if there's any way to load all these files in the Source xsltSrc variable so all the XSL information is available.

UPDATE

I've changed the code based on the answer given by Mads Hansen, but it still doesn't work. I have to include the XSLT slt files in the classpath, so I load the XSLT file with ClassLoader. I've checked that the URL has the correct path when executing url.toExternalForm(). This is my new piece of code:

It finds and loads myfile.xslt but it still doesn't resolve the relative paths to the other XSLT files.

What am I doing wrong?

0 投票
3 回答
6167 浏览

java - 在 Apache FOP 中,我如何以编程方式设置字体库,并且仍然拥有来自加载?

我正在使用 Apache FOP 1.0。代码在不同的服务器上运行,所以我将字体放在每个服务器的实例根目录中。我的计划是以编程方式设置字体库(到服务器实例根目录,加上“/fonts/”),并在我的 fop 配置文件中,设置相对于该字体库的字体路径。下面是制作 FopFactory 的代码片段:

fop.xconf 几乎是完全默认的。它包含

(在 {instance-root}/fonts/DejaVuTtf 中有几种字体,如果我只给出一个绝对路径,我可以正确加载它们——但这不适用于拥有多个服务器,每个服务器可能有不同的实例根目录)。

如何加载具有编程确定路径的字体?

谢谢!

0 投票
5 回答
16586 浏览

ms-word - 将 Word 文档转换为 XSL-FO

我正在使用 Microsoft Word 2007。我想将 Word 文档转换为 XSL-FO。网上有一些提示,但仅适用于 RenderX。Apache FOP 有这样的工具吗?

0 投票
1 回答
2126 浏览

pdf-generation - Apache FOP:zindex 似乎没有在重叠块中工作

我是一个 FOP 新手。我试图通过使用块容器和 zindexes 在图像顶部显示文本。图像总是在顶部。如果我删除图像,我可以看到文字,所以文字在图像下方。

这是表格单元格的内部。这是相关代码:

0 投票
1 回答
1871 浏览

java - 使用 Java 从 XSL-FO 生成 HTML

我有一些基于一些 XSL-FO 文档生成的 PDF 文件,我现在也需要这些 HTML 内容。我正在使用 FOP 创建 PDF 文件,但这不支持将 HTML 作为输出格式。

我的问题是:是否有某种 Java 库可以基于 XSL-FO 文档创建 HTML 文件,或者我可以通过向它抛出 XSLT 来做到这一点。我可以以某种方式扩展 FOP 来创建这种类型的输出吗?

如果 XSLT 是唯一的方法,那么是否已经创建了一个?(我想我不是第一个想要这个的家伙)

谢谢你们!

0 投票
0 回答
1498 浏览

xsl-fo - 调试 Apache fop

如何调试 xsl-fo 布局

我有一张桌子、一块块和一张距离这一切的外边缘 1 毫米的图像。

结果我得到以下信息:

如何调试导致间隔的原因?据我了解,这可能是几件事(边距、填充、空间)。我已经尝试将所有这些设置为 0pt 用于块和图形,但没有帮助。

像更高级的 AWT 预览这样的东西会很棒。我希望它能显示所有边距、填充、区域边界和区域尺寸。任何人都知道这样的(最好是免费软件)工具?

0 投票
1 回答
516 浏览

xsl-fo - 为什么 FOP 需要这么长时间才能将此文档发送到打印机?

在我们的软件中,我们使用 Apache FOP 0.20.5(我知道这是一个旧版本,我们无法更新它,因为它是我们软件的旧版本)来创建“漂亮”样式的报告。我们有一个特别是我通过将 PDF 导入 InkScape 然后从中生成 SVG 的 XML 来创建的。当将此特定表格发送到打印机(通过 -print 选项)时,需要非常长的时间,即 5 分钟以上。当我进行打印预览 (-awt) 或将其直接发送到 pdf (-pdf) 时,几乎不需要任何时间,但文本具有严重的伪影,以至于它甚至不可读。

我们使用许多其他具有独特/复杂样式表的报告/表单来执行此操作,而我所知道的没有问题。有人知道这里会发生什么吗?理想情况下,我会解决速度问题,但只需删除 -pdf 版本上的工件就足够了。我已经手动浏览了 InkScape 创建的 xsl,并尝试删除任何非关键内容,但它似乎没有任何区别。

很想听听任何想法,无论它们多么牵强。

编辑:忘了提到这个错误在打印过程中被吐出数百次(数千次):