标签: apache-fop

我在哪里可以找到关于XSL-FO(格式化/编辑对象)的好教程,一个提供给fop并获得PDF的东西?

在我工作过的公司,我和我的同事们,在XSL-FO之上实施了一个量身定制的文档分发系统.

我的任务是让脚本提供文档并配置CUPS打印服务器和传真服务器,所以我没有时间在XSL-FO上弄脏手.

我正在考虑在那里制作一些区域,但我需要一些模板来测试.

我在哪里可以找到关于XSL-FO的一些好的教程,因为我已经掌握了fop过程?

xml pdf xsl-fo apache-fop

11
推荐指数
1
解决办法
1万
查看次数

XSL-FO fop.长文本流入相邻的单元格/块,遮挡了那里的东西

任何人都可以建议我一个长话(如序列号)包裹的方法吗?我试过一些商业软件,没有这样的问题.它是一个fop bug还是可能有解决方案?

我不能在文档中每个单词的每个字符后插入零长度空格.这个解决方案听起来很疯狂.

pdf-generation xsl-fo apache-fop

11
推荐指数
3
解决办法
3万
查看次数

如何保持带有标题的表,但允许在XSL-FO中使用FOP在表体内部进行分页

我正在使用Apache FOP和XSL-FO样式表生成PDF.在PDF中,我输出属于表的标题(html equiv h1),因此应始终保持在一起.但是,我的表格也可能包含很多数据,因此它们不一定适合一页.

所需的结果是一个规则集,允许标题与表保持一致,如果可能的话,在一个页面上都适合,但如果表数据太长而不适合一页,则会插入分页符表格同时仍将标题元素保留在与表格开头相同的页面上.

我现在的解决方案确实将标题和表保持在一起,但如果所有内容都不适合一个页面,我会得到表数据的内容溢出错误.我希望页面中断内部:避免设置在表元素上会对此有所帮助,但显然不是......建议?

示例xsl(为了便于阅读而缩短):

<!-- add test table with header that should stay on same page -->
<fo:block font-size="20pt" font-weight="bold">Table header</fo:block>

<fo:table keep-with-previous.within-page="always"
      page-break-inside="avoid" 
      table-layout="fixed" border-width="1mm" border-style="solid">
  <fo:table-column column-width="auto" />
  <fo:table-column column-width="30mm" />

  <fo:table-header text-align="center" background-color="silver">
    <fo:table-row>
      <fo:table-cell padding="1mm" border-width="1mm" border-style="solid">
    <fo:block>First name</fo:block>
      </fo:table-cell>
      <fo:table-cell padding="1mm" border-width="1mm" border-style="solid">
    <fo:block>Last name</fo:block>
      </fo:table-cell>
    </fo:table-row>
  </fo:table-header>
  <fo:table-body>
    <!-- the table-rows can be repeated N times, spanning several pages -->
    <fo:table-row >
      <fo:table-cell padding="1mm" border-width="1mm" border-style="solid">
    <fo:block>ab</fo:block>
      </fo:table-cell>
      <fo:table-cell padding="1mm" border-width="1mm" …
Run Code Online (Sandbox Code Playgroud)

xsl-fo apache-fop

11
推荐指数
1
解决办法
2万
查看次数

XSL-FO动态表列宽

就目前而言,我有大约12列,所有列都是完全相同的宽度.问题是某些列不需要太多空间.如何让列符合其内容?列需要是动态宽度.

我试过了

<fo:table table-layout="auto">
Run Code Online (Sandbox Code Playgroud)

<fo:table-column column-width="proportional-column-width(1)" column-number="1"/>
<fo:table-column column-width="proportional-column-width(1)" column-number="2"/>
<fo:table-column column-width="proportional-column-width(1)" column-number="3"/>
Run Code Online (Sandbox Code Playgroud)

似乎没有什么可以做到的.

pdf-generation xsl-fo multiple-columns apache-fop

11
推荐指数
1
解决办法
2万
查看次数

如何在两个(内联)元素之间插入空格?

上下文

我正在创建一个XSL-FO文档,将我的XML文本转换为PDF.

在XSL-FO中,我有两个连续的内联元素,我想在它们之间有一个空格:

<fo:block>
    <xsl:number/> <xsl:value-of select="@title"/>
</fo:block>
Run Code Online (Sandbox Code Playgroud)

预期结果将是:

1简介

相反,我得到了

1简介

似乎XML不考虑这个空白区域.

尝试

我尝试了几种可能的解决方案,没有成功:

<fo:block>
    <xsl:number/><fo:inline white-space="pre">  </fo:inline><xsl:value-of select="@title"/>
</fo:block>
Run Code Online (Sandbox Code Playgroud)

要么

<fo:block>
    <xsl:number/><fo:inline margin-left="0.5cm"><xsl:value-of select="@title"/></fo:inline>
</fo:block>
Run Code Online (Sandbox Code Playgroud)

这些想法都没有产生可接受的结果.

问题:

如何在两个(内联)元素之间包含空格?

xslt xsl-fo apache-fop

11
推荐指数
1
解决办法
1万
查看次数

在.NET应用程序中使用ApacheFOP v1.0

有没有人成功地将Apache FOP v1.0库编译成.NET DLL?我正在使用http://onjava.com/pub/a/onjava/2004/08/18/ikvm.html上的IKVM语法; 但是,编译的DLL似乎不完整.例如,我无法将FopFactory对象实例化为:

using org.apache.fop.apps;

namespace Utils
{
     public class PdfRender
     {
          public void Render()
          {
            FOUserAgent foUserAgent = fop.getUserAgent();
            FopFactory fopFactory = FopFactory.newInstance();
          }
     }
}
Run Code Online (Sandbox Code Playgroud)

.net ikvm apache-fop

10
推荐指数
2
解决办法
9660
查看次数

XSL中的内联图像数据:FO/Apache FOP

我有MIME多部分数据,我想使用XSL转换为PDF:FO.我很高兴使用Apache James 阅读MIME,我掌握了Mime中的嵌入式图像数据或HTML中的内嵌图像.我努力SO搜索"[XSL-FO]内嵌图形""[XSL] + HTML + MIME +图像",发现不知何故对面precurser什么我上来的.另外谷歌的"转换HTML MIME到XSL:FO"尚无定论.

我想要做的是拥有一个元素(或一组元素),在XSL:FO转换的PDF输出中呈现图形(JPG/PNG/GIF - 全部或部分).图形数据应作为Base64(或其他)编码数据包含 .fo文件中.我发现了如何指向外部图形,但没有关于嵌入式图形数据.

那会怎么样?

pdf xslt mime xsl-fo apache-fop

10
推荐指数
1
解决办法
1万
查看次数

FOP XSL-FO锚定在外部目的地

使用XSL-FO(Fop),我成功创建了外部PDF的链接:

<fo:basic-link show-destination="new">
<xsl:attribute name="external-destination">foo.pdf</xsl:attribute>
</fo:basic-link>
Run Code Online (Sandbox Code Playgroud)

但是现在,我想在这个外部PDF中找到一个锚点.所以我试着建立这样的东西:

<fo:basic-link show-destination="new">
<xsl:attribute name="external-destination">foo.pdf#anchorId</xsl:attribute>
</fo:basic-link>
Run Code Online (Sandbox Code Playgroud)

不幸的是,当我点击生成的链接时,我收到一个错误.它试图打开文件foo.pdf%23anchorId.

在我的.fo文件中,#的链接是正确的,但在PDF转换过程中,这个#被误解释了.

你有想法解决这个问题吗?

谢谢,

约翰

anchor xsl-fo apache-fop

10
推荐指数
1
解决办法
1万
查看次数

嵌入式HTML的PDF报告

我们有一个基于Java的系统,该系统从数据库中读取数据,合并与预设的各数据字段XSL-FO标签和结果转换为PDFApache FOP.

XSL-FO格式中它看起来像这样:

<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE Html [
<!ENTITY nbsp  "&#160;"> 
    <!-- all other entities -->
]>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
    <xsl:output method="xml" indent="yes" />
    <xsl:template match="/">

        <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:svg="http://www.w3.org/2000/svg" font-family="..." font-size="...">
            <fo:layout-master-set>          
                <fo:simple-page-master master-name="Letter Page" page-width="8.500in" page-height="11.000in">

                    <!-- appropriate settings -->

                </fo:simple-page-master>
            </fo:layout-master-set>
            <fo:page-sequence master-reference="Letter Page">

                <!-- some static content -->

            <fo:flow flow-name="xsl-region-body">
                    <fo:block>
                        <fo:table ...>
                            <fo:table-column ... />
                            <fo:table-body>
                                <fo:table-row>
                                    <fo:table-cell ...>
                                        <fo:block text-align="...">
                                            <fo:inline font-size="..." font-weight="...">
                                                <!-- …
Run Code Online (Sandbox Code Playgroud)

html java xslt xsl-fo apache-fop

10
推荐指数
1
解决办法
1134
查看次数

在单元格上方呈现的表格单元格中的旋转文本不在内

我有以下模板来生成一个定义的表:

<xsl:template name="CreateTable">
    <fo:block>
        <fo:table border-style="solid" table-layout="fixed">
            <fo:table-body>
                <fo:table-row>
                    <xsl:for-each select="Table/Head/Cell">
                        <fo:table-cell border-style="solid">
                            <fo:block><xsl:value-of select="." /></fo:block>
                        </fo:table-cell>
                    </xsl:for-each>
                </fo:table-row>
                <xsl:for-each select="Table/Row">
                    <fo:table-row>
                        <xsl:for-each select="Cell">
                            <fo:table-cell  border-style="solid">
                                <fo:block><xsl:value-of select="."/></fo:block>
                            </fo:table-cell>
                        </xsl:for-each>
                    </fo:table-row>
                </xsl:for-each>
            </fo:table-body>
        </fo:table>
    </fo:block>
    <fo:block margin-top="10pt"/>
</xsl:template>
Run Code Online (Sandbox Code Playgroud)

现在我想将第一行中的文本旋转90度,以便从下往上阅读.

我想出的最佳解决方案是:

  • 设置reference-orientation="0"<fo:table>:

    <fo:table border-style="solid" table-layout="fixed" reference-orientation="0">
    
    Run Code Online (Sandbox Code Playgroud)
  • 包围<fo:block>...</fo:block><fo:table-cell>具有<fo:block-container>被旋转90度:

    <fo:table-cell border-style="solid">
        <fo:block-container reference-orientation="90">
            <fo:block><xsl:value-of select="." /></fo:block>
        </fo:block-container>
    </fo:table-cell>
    
    Run Code Online (Sandbox Code Playgroud)

文本是旋转的,但第一行的高度实际为0,文本显示在表格上方,覆盖了前一个文本:

旋转文本覆盖以前的文本

为第一行的单元格定义特定高度时,文本仍在表格之前,而不在第一行内:

旋转文本覆盖前一个文本并清空第一行

如何在第一行的单元格中定位文本,并根据行中最长的文本自动计算行的高度?

xsl-fo apache-fop

10
推荐指数
1
解决办法
547
查看次数

标签 统计

apache-fop ×10

xsl-fo ×9

xslt ×3

pdf ×2

pdf-generation ×2

.net ×1

anchor ×1

html ×1

ikvm ×1

java ×1

mime ×1

multiple-columns ×1

xml ×1