javascript - CSS 分页媒体总页数减去封面页

标签 javascript pdf-generation css-paged-media

使用分页媒体 CSS 将 HTML 转换为 PDF 时,我需要将不包括封面页(正面和背面)的总页数放在页脚中。

下面的 CSS 适合计算所有页面。

content: "Page " counter(page) " of " counter(pages);

但是我需要的是:

content: "Page " counter(page) " of " counter(pages) - 2;

根据 W3.org 的说法,“页面”计数器无法被操纵 (1)并且 calc() 函数不支持使用计数器 (2) .

使用自定义计数器将不起作用,因为它返回当前计数器值而不是最终计数器值。所以我会得到 第 1 页(共 1 页)、第 2 页(共 2 页)、第 3 页(共 3 页)...

作为一种解决方法,我使用了带有以下 JavaScript 的表单字段:

var x = this.getField('pageTotal'); 
if (x.readonly == false){
    x.value = this.numPages - 2;
    x.readonly = true; 
}

有更好的选择吗?

编辑:无需 CSS 且不需要表单字段即可完成的一种替代方法是执行“双重发布”。即

  1. 发布文档一次。
  2. 获取总页数并减去 2。
  3. 重新发布,将页数作为参数传递。

最佳答案

关于https://www.princexml.com/forum/topic/504/reset-the-pages-plural-counter的讨论采用另一种方法,使用类似 target-counter(url(#end), page) 的内容而不是“页数”来获取总页数。

使用counter-reset: page 1;在第一个真实页面上,然后添加 <div id="end"> </div>在最后一个真实页面上。

content: "Page " counter(page) " of " target-counter(url(#end), page); 应该返回您想要的值,不包括后盖。

关于javascript - CSS 分页媒体总页数减去封面页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67936136/

相关文章:

javascript - 将 html 表格行打断到下一行以转换为 pdf

html - (HTML + CCS3 为分页媒体生成的内容)到 PDF?

javascript - 将 HTML 元素分隔成具有适当间距的列(JQuery 和 CSS)

javascript - react : How to hide a component by clicking on it?

javascript - 我如何获得 num 的值?

java - 在 Java 中用于程序化 PDF 生成的 iText 是否有可靠的替代品?

javascript - 他们如何使用这个 angular/jqLit​​e find() 方法通过属性名称和值来选择元素? ng-conf 2015

java - 如何使用 PDFReactor 生成不透明的 PDF?

java - 如何使用 I-Text 为 CODE 128 A 插入 FNC1 符号标识符?

html - 底部页面上的孤儿 CSS : How avoid headers (h1, h2...)?