CSS 分页媒体总页数减去封面
CSS paged media total number of pages minus cover pages
使用分页媒体 CSS 将 HTML 转换为 PDF,我需要在页脚中放置不包括封面(正面和背面)的总页数。
以下 CSS 可以计算 所有 页。
content: "Page " counter(page) " of " counter(pages);
但我需要的是:
content: "Page " counter(page) " of " counter(pages) - 2;
根据 W3.org,无法操纵 'pages' 计数器 (1) and the calc() function does not support the use of counters (2)。
使用自定义计数器将不起作用,因为它 returns 当前计数器值而不是最终计数器值。所以我会得到
第 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 且不需要表单字段的另一种方法是执行 'double publish'。即
- 发布文档一次。
- 得到总页数减去2
- 重新发布将页数作为参数传递。
关于 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);
应该 return 包含您想要的值,不包括封底。
使用分页媒体 CSS 将 HTML 转换为 PDF,我需要在页脚中放置不包括封面(正面和背面)的总页数。
以下 CSS 可以计算 所有 页。
content: "Page " counter(page) " of " counter(pages);
但我需要的是:
content: "Page " counter(page) " of " counter(pages) - 2;
根据 W3.org,无法操纵 'pages' 计数器 (1) and the calc() function does not support the use of counters (2)。
使用自定义计数器将不起作用,因为它 returns 当前计数器值而不是最终计数器值。所以我会得到 第 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 且不需要表单字段的另一种方法是执行 'double publish'。即
- 发布文档一次。
- 得到总页数减去2
- 重新发布将页数作为参数传递。
关于 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);
应该 return 包含您想要的值,不包括封底。