flying saucer 修改报表格式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了flying saucer 修改报表格式相关的知识,希望对你有一定的参考价值。

我在用flying saucer 把html页面转成PDF,可是我不知道如何调整生成后的PDF页面的格式,比如PDF的宽,高,纸张类型,模坚板, 页面缩放等功能、哪位能给点提示,如何实现这些功能(当然也可以不用flying saucer,其它开发包也可以)

参考技术A 朋友,问题解决了吗? 我最近也在做关于把含有fusionchart报表的html页面转换为pdf和word,如果解决了,分享一下呗,我的qq是1151262684,发我邮箱吧!万分感谢!

使用Flying Saucer,如何在页脚的每个页面上生成包含页码和页面总数的pdf?

我花了更多的研究比我自己想要的更多,所以我将在这里发布一个全面的答案。似乎这样做的信息分散在许多不同的网站上,我想把它放在一个地方。 This answer可能是同一个东西,但我的眼睛茫然,因为它在Java字符串而不是在html模板中。这是问题:

我正在渲染PDF,我想在页面底部写一个页脚,上面写着“Page n of m”,其中“n”是您所在的页码,“m”是文档中的总页数。我怎么做?

答案

在你的html中,你需要把它放在body标签的某个地方:

<div id="footer">
    page <span id="pagenumber"></span> of <span id="pagecount"></span>
</div>

这应该是你的CSS /风格:

    #footer {
        position: running(footer);
        text-align: right;
    }

    @page {
        @bottom-right {
            content: element(footer);
        }
    }

    #pagenumber:before {
        content: counter(page);
    }

    #pagecount:before {
        content: counter(pages);
    }

你可以了解更多关于@bottom-right选项here的信息。

另一答案

您还可以尝试稍微简洁的方法:

@page {
  @bottom-right {
    content: "Page " counter(page) " of " counter(pages);
  }
}

您需要将其放在css / style中,并且不需要添加额外的页脚HTML元素。

另一答案

@John Mark的解决方案对我有用。在我的应用程序中,我需要在HTML中嵌入样式信息,所以我将它包装在<style>标签中并将其放在<head>之前的<title>中。也许这些信息对其他人有用。

另一答案

重要错误和解决方案!

对于Starters,使用下面的John Mark的解决方案是使其正常工作的正确方法:

@page {
  @bottom-right {
    content: "Page " counter(page) " of " counter(pages);
  }
}

但是,许多人可能遇到了以下问题:PDF已停止生成!

这可以通过更新你的飞行SAUCER版本来解决。

由于@page和@右下角的css代码,当我的PDF停止生成时,我正在运行9.1.4。

这是飞碟中的一个小故障,已在9.1.5版本中修复!

确保更新到9.1.5并使用John Mark的答案。

以上是关于flying saucer 修改报表格式的主要内容,如果未能解决你的问题,请参考以下文章

【又中又英】Flying Saucers

英语里 现在分词做定语flying saucer(飞碟现在分词做定语此处不是正在) running

让Flying saucer支持font定义

iTextRenderer(Flying Saucer) HTML转PDF

使用Flying Saucer在PDF标题后的巨大空白区域

使用Flying Saucer,如何在页脚的每个页面上生成包含页码和页面总数的pdf?