0

我正在评估 PDFreactor 以从 HTML 和 CSS 生成 PDF。

但是我遇到了一个问题 - 我需要为文档部分的第一页、第二页和第三页设置不同的页面背景图像。似乎可能的唯一方法(查看PDFreactor 手册)是明确给出固定的文档页码,而不是相对于文档部分的数字。

分页媒体模块的 CSS 生成内容建议我使用这种表示法;

CSS:

@page:-nth(1 of PPSid1117) {
    background: url("http://example.com/bg1-section1.png") no-repeat center center;
}
@page:-nth(2 of PPSid1117) {
    background: url("http://example.com/bg2-section1.png") no-repeat center center;
}
@page:-nth(3 of PPSid1117) {
    background: url("http://example.com/bg3-section1.png") no-repeat center center;
}

#PPSid1117 {
    page: PPSid1117;
}

HTML:

<div id="PPSid1117">Up comes 10 pages of lorem ipsum, the first three pages having different backgrounds... etc etc ...end of section.</div>

但它根本不起作用——它会引发解析错误;

Parse error in resource "main_css.php?doc=50"
Encountered '1' at position 11 in rule '@page:-nth(1 of PPSid1117)

顺便说一句,-ro-nth 不会抛出错误,但仍然不起作用 - 即。

@page:-ro-nth(1 of PPSid1117) {
    background: url("http://example.com/bg1-section1.png") no-repeat center center;
}

此代码将它放在该部分的每个左侧页面上(因此它证明命名页面选择器在基本级别上工作)但根本不是我想要的。

@page PPSid1117:left {
    background: url("http://example.com/bg1-section1.png") no-repeat center center;
}

这可行,但这意味着我必须对页码进行硬编码。不是我想做的...

@page:-ro-nth(4) {
    background: url("http://example.com/bg1-section1.png") no-repeat center center;
}

这会将其放在文档的第 1 页,而不是该部分的第 1 页。

@page PPSid1117:-ro-nth(1) {
    background: url("http://example.com/bg1-section1.png") no-repeat center center;
}

这就是我在 Prince XML 中想要的。

#PPSid1117 {
    page: PPSid1117;
    prince-page-group: start;
}

@page PPSid1117:nth(1) {
    background: url("http://example.com/bg1-section1.png") no-repeat center center;
}

有没有人有任何有用的建议?谢谢。

4

1 回答 1

-1

如果你想为第一页、第二页和第三页设置背景,就像定义一样简单

@page :nth(1) {
    background: url(path/to/img) 0 0 no-repeat;
}

@page :nth(2) {
    background: url(path/to/img) 0 0 no-repeat;
}

@page :nth(3) {
    background: url(path/to/img) 0 0 no-repeat;
}

这绝对适用于 PrinceXML,如果 PDFReactor 适用于 W3C 规范,它也应该适用。

于 2016-03-01T08:20:25.370 回答