HI,我想使用FOP准备一个用于打印的XML文档(ps/pdf).是否可以将参数发送到FOP以进行xsl处理器中存在的条件格式化
XSL:
<xsl:param name="isDuplicate">no</xsl:param>
....
<xsl:if test="$isDuplicate='yes'">
<h2 align="center">Copy</h2>
</xsl:if>
....
Run Code Online (Sandbox Code Playgroud) 在SO的帮助下解析内嵌图像后,我需要整理内联附件.PDF可以包含附件,我发现:fo:declarations - pdf:embedded-file但它再次指向外部文件.如何附加属于MIME消息的文件(很可能是BASe64)?
我有一些问题需要在我的PDF中显示外部图形.我尝试使用各种路径,url()但似乎没有任何工作.这是我缺少的东西吗?
<fo:table-cell>
<fo:block>
<fo:external-graphic src="url(ss/naam.png)"></fo:external-graphic>
</fo:block>
</fo:table-cell>
Run Code Online (Sandbox Code Playgroud) 我想使用XSL-FO来编写PDF.但在我看来,Java和这些文档的组合之间并没有真正的集成,就像添加/编辑对象(如表,图像等)到文档然后要求生成相应的XML一样.这方面有什么进展我不知道吗?
我的 xslt 中有一个 sniplet,如:
<fo:block>
<fo:external-graphic src="data:image/png;base64, //base64 code//" />
</fo:block>
Run Code Online (Sandbox Code Playgroud)
为了不弄乱我的主样式表,我创建了另一个以 base64 图像作为参数的 xslt,例如:
<xsl:param name="logo">data:image/png;base64, //base64 code//</xsl:param>
Run Code Online (Sandbox Code Playgroud)
如果我将主样式表更改为:
.
.
<xsl:include href="image.xsl" />
.
.
<fo:block>
<fo:external-graphic>
<xsl:attribute name="src"><xsl:value-of select="$logo" /></xsl:attribute>
</fo:external-graphic>
</fo:block>
Run Code Online (Sandbox Code Playgroud)
1st 我得到一个堆大小错误,在使用 -Xmx4096m 后我得到一个解析错误.. 当我在主样式表中嵌入了 base64 图像时,我不需要 4gb 堆和我制作的 pdf 有图像.
使用 Apache FOP 1.1,抱歉我的英语,不是我的主要语言。
我的xml文件
<entries>
<entry ID="93" ENTRY_TYPE="Text1" ENTRYNM="First line:
Second line
third line
fourth line" ENTRY_DT="12-Jan-2004"/></entries>
Run Code Online (Sandbox Code Playgroud)
我的xsl-fo
<fo:block linefeed-treatment="preserve" white-space-treatment='preserve'
white-space-collapse='false'>
<xsl:value-of select="./entries/entry/@ENTRYNM"/>
</fo:block>
Run Code Online (Sandbox Code Playgroud)
我正在生成包含ENTRYNM的pdf,它应该保留下一行,如xml所示.
Like example:
First line:
Second line
third line
fourth line
Run Code Online (Sandbox Code Playgroud) 我想停止将生成的单词拆分为两行.现在我尝试使用wrap-option ="wrap"但没有任何效果.我希望有些人可以帮助我;)
我使用Saxon-HE,xslt 2.0
我的xml文件:
<root>
<out>
invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
<build>
<name>John</name>
<year>29</year>
<address>London</address>
<code>12345678902331234313123123123123123123</code>
</build>At vero eos et
</out>
</root>
Run Code Online (Sandbox Code Playgroud)
我的xslt文件:
<xsl:template match="out">
<fo:block>
<xsl:apply-templates/>
</fo:block>
</xsl:template>
<xsl:template match="build">
<fo:inline wrap-option="wrap" color="Red">
<xsl:value-of select="concat(./name,'-',./year,'-',./address,'+',./code)"/>
</fo:inline>
</xsl:template>
Run Code Online (Sandbox Code Playgroud)
我的预期输出如下:
Invidunt ut labore et dolore magna aliquyam erat,sed diam voluptua
John-29-London+11231231231...
Run Code Online (Sandbox Code Playgroud)
用我的解决方案输出:
Invidunt ut labore et dolore magna aliquyam erat,sed diam voluptua John-29
-London+123123..
Run Code Online (Sandbox Code Playgroud) 我使用过这些文档,我需要编辑现有代码以映射数据库中的字段.XSL文档已经具有模板和区域.我的目标是在模板的任何边缘出现之前添加封面.
代码如下所示:
<fo:layout-master-set>
<fo:simple-page-master master-name="Letter Page" page-width="8.3in" page-height="11.7in"
margin-top="0px" margin-bottom="0px" margin-right="0px" margin-left="0px">
<fo:region-body region-name="xsl-region-body"
padding-top="0px" padding-bottom="0px" padding-left="0px" padding-right="0px"
margin-top="4.250cm" margin-bottom="2.750cm" margin-left="1.8cm" margin-right="1.8cm"
border-style="none" border-width="0px" border-color="" background="" background-repeat="no-repeat" background-position-horizontal="0px" background-position-vertical="0px"
extent="0px" column-gap="0px" column-count="1" reference-orientation="0"/>
<fo:region-before region-name="xsl-region-before"
display-align="after" extent="3.8cm"
padding-top="0px" padding-bottom="0px" padding-left="0px" padding-right="0px"
border-style="none" border-width="0px" border-color="" background="" background-repeat="no-repeat" background-position-horizontal="0px" background-position-vertical="0px" reference-orientation="0"/>
<fo:region-after region-name="xsl-region-after"
display-align="before" extent="2.750cm"
padding-top="0px" padding-bottom="0px" padding-left="0px" padding-right="0px"
border-style="none" border-width="0px" border-color="" background="" background-repeat="no-repeat" background-position-horizontal="0px" background-position-vertical="0px" reference-orientation="0"/>
<fo:region-start region-name="xsl-region-start"
extent="1.8cm"
padding-top="0px" padding-bottom="0px" padding-left="0px" padding-right="0px"
border-style="none" border-width="0px" border-color="" background="" background-repeat="no-repeat" background-position-horizontal="0px" background-position-vertical="0px" reference-orientation="0"/> …Run Code Online (Sandbox Code Playgroud) 我正在以这种方式在 XSL FO文档中创建背景文本:
<svg:svg width="285" height="70">
<svg:g transform="rotate(-5)">
<svg:text x="10" y="60" style="font-family:Courier;font-size:40;font-weight:normal;stroke-width:0.5;fill:none;stroke:lightgray;stroke-opacity:0.75;">
Background Watermark Text
</svg:text>
</svg:g>
</svg:svg>
Run Code Online (Sandbox Code Playgroud)
有没有办法在页面背景中显示这个SVG?问题是导入外部图像作为水印工作正常,但我没有找到任何方法将此嵌入式 SVG 设置为背景图像...
XPTY0004:未为 xs:string 和 xs:integer 类型的操作数定义运算符“+”
输入:
<?xml version="1.0" encoding="UTF-8"?>
<LeveL Plan="1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<space2000>
<values>
<value jak="77" rak="12"</value>
<value jak="66" rak="345"></value>
<value jak="-50" rak="67"></value>
<value jak="-30" rak="-89">1</value>
</values>
</space2000>
</LeveL>
Run Code Online (Sandbox Code Playgroud)
我的尝试:
<xsl:stylesheet version="2.0"
xmlns:fn ="http://www.w3.org/2005/xpath-functions"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<xsl:template match="/">
<xsl:for-each select="(LeveL/space2000/values)">
<xsl:variable name="JJJ" select="(format-number(((value/@jak) div 2),'0'))"/>
<xsl:variable name="RRR" select="format-number(((value/@rak) div 2),'0')"/>
<xsl:text>
O
</xsl:text>
<xsl:text>LA</xsl:text>
<xsl:value-of select="$JJJ"></xsl:value-of>
<xsl:text> </xsl:text><xsl:text>LO</xsl:text>
<xsl:value-of select="$RRR"></xsl:value-of>
<xsl:text>
O
</xsl:text>
<xsl:choose>
<xsl:when test="( $JJJ > '0')">
<xsl:value-of select="A"/>
</xsl:when>
<xsl:when test="( $JJJ < '0')">
<xsl:value-of …Run Code Online (Sandbox Code Playgroud)