运行 header 嵌套生成的内容

Running header with nested generated content

这是一个关于分页媒体的问题。 我想混合 string-set 和 运行 元素。它适用于 PrinceXML 但不适用于 PDFReactor。我的问题是,这在 PDFReactor 中可行吗?

HTML

<p class="head">
    <span class="first">Repeatable title</span>
    <span class="divider">|</span>
    <span class="last"></span>
</p>

CSS

p.head {
    position: running(heading);
    font-size: 8pt;
    margin: 0;
    padding: 0;
}

@page {
    size: A4;

    @top-left {
        content: element(heading);
    }
}

到目前为止一切都很顺利。但是当我尝试从 H1 定义 string-set 并尝试将其写入 span.last 时,这是行不通的。

h1 {
    string-set: doctitle content();
}

p.head span.last {
    content: string(doctitle);
}

PDFreactor 也可以做到这一点。只是语法有点不同。 PDFreactor 不支持带有命名字符串的 string-set 属性 的 content() 函数。相反,它使用 self 值,其工作方式类似于 content()content(text)(请参阅 http://www.pdfreactor.com/product/doc_html/index.html#NamedStrings

还有第二个问题。您正在 span 元素本身上设置 content 属性 。通常在 CSS 中,使用 content 属性 创建生成的内容实际上只允许用于页边距框和伪元素,例如 ::before::after。这也是浏览器支持它的方式。不确定为什么这在 Prince 中有效。

所以基本上你只需要对你的风格做 2 次小调整 sheet 就可以在 PDFreactor 中工作:

h1 {
    string-set: doctitle self;
}

p.head span.last::before {
    content: string(doctitle);
}