xsl-fo 相关问题

XSL-FO(XSL格式化对象)是XML文档格式化的标记语言,最常用于生成打印内容。

使用 AntennaHouse Formatter v73 将 DITA-OT PDF2 插件输出转换为灰度

我目前正在使用 DITA-OT 4.1.1 和 AntennaHouse Formatter v73 进行 PDF 生成的样式表开发:到目前为止,我只处理过彩色输出 PDF,但将来我会...

回答 1 投票 0

使用 XSL FO 格式化文本节点内的节点

我正在尝试打印包含文本和其他节点的节点,但无法将格式应用于子节点。 我有以下 xml: Lorem Ipsum 只是虚拟的

回答 1 投票 0

FOP pdf 生成:fo:内联边框重叠问题

使用 xsl:fo 生成 pdf 时, 我的边框与 fo:inline 标签重叠。 我正在使用 apache-xmlgraphics-fop 版本 2.7。 这是一个代码片段 使用 xsl:fo 生成 pdf 时, 我的边框与 fo:inline 标签重叠。 我正在使用 apache-xmlgraphics-fop 版本 2.7。 这是一个代码片段 <fo:block margin-top="4px"> <fo:inline border-style="solid" border-width="1px" border-color="#E8EDF7" padding="2px" fox:border-radius="3pt"> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce eu justo at quam hendrerit congue ac ac magna. Maecenas tincidunt vulputate justo, ut tempus lorem pulvinar a. Nulla fermentum metus sit amet metus tempus pretium. In massa sem, vestibulum a lectus eu, efficitur imperdiet odio. </fo:inline> </fo:block> 下面是输出: 您需要增加 line-height 的 fo:block。 line-stacking-strategy="max-height",默认值(请参阅https://www.w3.org/TR/xsl11/#line-stacking-strategy),在定位线条时不考虑fo:inline上的边框和填充地区。 (还是不知道为什么。) 如果FOP支持line-stacking-strategy="line-height",那么你可以在line-height上设置fo:inline,只有带有fo:inline的线才会有更宽的间距。

回答 1 投票 0

org.apache.fop.fo.extensions.svg.SVGElement.getDimension 无法设置 svg 的基本 URL

我正在尝试在 instream-foreign-object 中实现 SVG,下面是代码片段;这是 XSLT (1.0) 的代码部分; 我正在尝试在 instream-foreign-object 内实现 SVG,下面是代码片段;这是 XSLT (1.0) 的代码部分; <xsl:template name="Draft"> <fo:block-container> <fo:block> <fo:instream-foreign-object> <svg:svg xmlns:svg="http://www.w3.org/2000/svg" xml:base="http://example.org/today/" > <svg:defs> <svg:font-face font-family="sample"> <svg:font-face-src> <svg:font-face-uri href="sample.ttf"/> </svg:font-face-src> </svg:font-face> </svg:defs> <svg:text> DRAFT </svg:text> </svg:svg> </fo:instream-foreign-object> </fo:block> </fo:block-container> </xsl:template> 现在,当我尝试从 xml 转换为 pdf 时,出现以下错误: org.apache.fop.fo.extensions.svg.SVGElement.getDimension Could not set base URL for svg java.lang.IllegalArgumentException: URI is not absolute at java.base/java.net.URL.fromURI(URL.java:721) at java.base/java.net.URI.toURL(URI.java:1139) at org.apache.fop.fo.extensions.svg.SVGElement.getDimension(SVGElement.java:77) . . . 那么您能帮我理解为什么我们会看到这个错误吗? 因为您是从命令行运行 FOP,所以您的文档有一个基本 URI。现在您已经证明您的文件系统上可以有 sample.ttf,我建议将完整路径放入 sample.ttf <svg:svg xmlns:svg="w3.org/2000/svg"> <svg:defs> <svg:font-face font-family="sample"> <svg:font-face-src> <svg:font-face-uri href="file:///PATH/for/config/sample.ttf"/> </svg:font-face-src> </svg:font-face> </svg:defs> <svg:text> DRAFT </svg:text> </svg:svg> 从 https://xmlgraphics.apache.org/fop/faq.html#svg-url 来看,FOP 似乎可以从 HTTP URL 找到字体。

回答 1 投票 0

XSL-FO 表行分页符

我有一个简单的 xsl-fo 表,用于显示违规行为的集合。每个违规都是表中一组 3 行。每个组的高度可以不同,某些违规属性较大

回答 1 投票 0

FOP pdf 生成:根据内容并排显示表格

我想根据表格单元格的内容并排显示表格。如果单元格内容使用的页面宽度超过 50%,则下一个表格应显示在该表格下方。 要创建 pdf...

回答 1 投票 0

如何编写 Xsl 以使用 Apache fop 在 PDF 文件中创建书签

我想使用 Apache fop 创建 PDF。要求是我想使用 xsl fo stylesheets 在 PDF 中创建书签。 请给我提供一个如何实现这一目标的示例。

回答 2 投票 0

如何在xsl翻译中有多个“替换”特殊字符

如何用斜杠替换字符串上的所有破折号和点?我尝试使用下面的代码。 我也尝试过使用...

回答 2 投票 0

如何避免不需要的空白页面

以下 FO 代码是通过 XSL 转换创建的。结果应是包含多个页面的长 PDF。第 1 页的内容可能会溢出到下一页。可能有需要...

回答 1 投票 0

我如何将未解析的文本函数包装在一个条件中,以便它不会一直被调用?

跟进问题如何将动态文件名传递给 xslt 中的未解析文本函数? 我有以下代码片段: 跟进问题如何将动态文件名传递给 xslt 中的未解析文本函数? 我有以下代码片段: <xsl:variable name="PDFNAME" select="InvoiceIndicators/PdfFileName"/> <xsl:variable name="vText" select="tokenize(unparsed-text('../data/ebpp/fopinvoices/arn/emfe_afp/sample.txt'),'&#xD;&#xA;')"/> <xsl:message>value of unparsed-text is <xsl:value-of select="$vText"/> </xsl:message> <xsl:variable name="PDFFileStatus"> <xsl:for-each select="$vText"> <xsl:if test="contains(.,$PDFNAME)"> <xsl:value-of select="substring-after(.,',')"/> </xsl:if> </xsl:for-each> </xsl:variable> <xsl:message><xsl:text>PDFFileStatus :</xsl:text> <xsl:value-of select="$PDFFileStatus"/> 我在代码的其他部分使用变量 PDFFileStatus 并对其进行检查。 例如在我的代码的某些部分, <xsl:when test="DunningSummary and $PDFFileStatus='Found'"> <xsl:value-of select="generate-id(DunningSummary)"/> </xsl:when> 到目前为止,代码运行得很好。但在某些情况下,我不想输入我编写未解析文本函数的代码。 就像用 if 条件包装它一样: <xsl:if test="InvoiceIndicators/LetterTypeCode = 'PU'"> <xsl:variable name="imagename" select="substring(substring-after(InvoiceDetails/InvoiceNumber, '_'), 3, 9)"/> <xsl:variable name="vText" select="tokenize(unparsed-text(concat('../data/ebpp/fopinvoices/arn/emfe_afp/', $FileName, '.txt')),'&#xD;&#xA;')"/> <xsl:message>value of unparsed-text is <xsl:value-of select="$vText"/> </xsl:message> <xsl:variable name="PDFFileStatus"> <xsl:for-each select="$vText"> <xsl:if test="contains(.,$imagename)"> <xsl:value-of select="substring-after(.,',')"/> </xsl:if> </xsl:for-each> </xsl:variable> <xsl:message><xsl:text>PDFFileStatus :</xsl:text> <xsl:value-of select="$PDFFileStatus"/> </xsl:message> </xsl:if> 但现在我遇到了代码片段的问题,我在其中添加了对变量 PDFFileStatus 的检查。 遇到这种情况我该如何处理? 根据您想要使用该函数的评论 unparsed-text-available https://www.w3.org/TR/xpath-functions-31/#func-unparsed-text-available 然后仅在以下情况下使用 unparsed-text未解析文本可用检查返回 true。

回答 1 投票 0

列表项标签 XML:FO 垂直对齐

我正在尝试将项目符号与正文垂直对齐。所以该项目符号应该位于中间(垂直)。但我无法实现它。 我正在尝试将项目符号与正文垂直对齐。所以该项目符号应该位于中间(垂直)。但我无法实现它。 <fo:list-item> <fo:list-item-label end-indent="label-end()"> <fo:block> <xsl:call-template name="gbl-bullet-tick-circle"/> </fo:block> </fo:list-item-label> <fo:list-item-body start-indent="body-start()"> <fo:block font-size="10pt"> here is hell lot of text paragraph i want to print... here is hell lot of text paragraph i want to print...here is hell lot of text paragraph i want to print...here is hell lot of text paragraph i want to print... </fo:block> </fo:list-item-body> </fo:list-item> 它正在打印如下所示的内容 . here is hell lot of text paragraph i want to print... here is hell lot of text paragraph i want to print...here is hell lot of text paragraph i want to print...here is hell lot of text paragraph i want to print... 但实际上我希望它打印如下 here is hell lot of text paragraph i want to print... . here is hell lot of text paragraph i want to print...here is hell lot of text paragraph i want to print...here is hell lot of text paragraph i want to print... 有人以前在 XML:FO 中做过这件事吗,请分享一些相关信息。 提前非常感谢您。 问候, 莫娜 快速答案是使用包含两列的表格。对项目符号使用显示对齐。我可以测试列表的一些东西,但我想带有项目符号的块的进展维度可能不受列表主体控制,我不确定。 我测试过,现在我确定了。如果在列表项标签上放置边框,您会发现块边界仅与列表项标签所需的大小相同。 要完成此布局,请使用两列表格,其中第一个单元格具有“display-align=”center”和项目符号,第二个单元格包含内容。

回答 1 投票 0

XSL 格式化对象不支持页面母版中页眉或页脚的属性

尽管我发现页眉或页脚中的文本属性似乎被忽略了。 当我尝试为偶数页和奇数页添加不同的文本对齐方式时,我偶然发现了这个问题 这是...

回答 1 投票 0

xsl-fo:删除页面序列中的空(仅页眉/页脚)页面

我们使用 XSL-FO 创建 PDF。我们的应用程序的用户可以选择是否希望 PDF 包含某些块。这是使用 XML 文件中的条件来实现的。 虽然默认

回答 1 投票 0

如何将 XSL FO 转换为 XSLT 模板

使用transformToFragment,通过传递XSLT和XML文档,我能够实现PDF 对于另一个请求,我有 XSL FO。我们可以使用XSL FO和XML文档来生成pdf吗? 请指教 你...

回答 1 投票 0

在 XSL FO (FOP) 中添加不带标题的附加文本页面

我无法解决一个问题。我需要在 XSL FO(在 FOP 中)中的文档末尾添加更多页面,但没有页眉和页脚。 我将打印发票。我有一个简单的页面主控定义...

回答 1 投票 0

卡片正面和背面页码相同

我正在尝试创建一个样式表,将文档输出为一系列 5x8 卡片。他们希望卡片的正面和背面具有相同的页码(因此当您打印出来时,第一个...

回答 1 投票 0

从带有表列的 Apache FOP 生成 PDF 时出现异常

我的 .fo 文件中的以下代码行抛出一条消息: “行中的列号或单元格数超出了为表指定的 fo:table-columns 数。”当会议...

回答 1 投票 0

我可以获得 .net Framework 4.5.1 的最新版本的 xsl-fo 渲染器是什么

我正在从事 .Net Framework 4.5.1 项目。该项目由一个 PDF 生成器组成,它将 Fonet Xsl-FO 部署到 PDF 渲染引擎版本 1.0.0。我发现它是2011年发布的,更多...

回答 1 投票 0

如何设置占据页面其余部分的动态块容器大小

由于严重缺乏示例,我一直在努力使用 xls-fo。 我想生成一个动态发票,其总计位于页面底部。 我一直在尝试使用 height=&q...

回答 1 投票 0

如何设置javax.xml.transform.TransformerFactory系统属性

我正在使用 javax.xml.transform.Transform 将 XML 文件转换为 PDF。这本身工作得很好,但项目的某些部分正在使用 Xalan,它实现了自己的 TransformerFactory,并且

回答 3 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.