Using set-content
This lesson demonstrates the usage of the set-content property and named strings.
Example taken from https://raw.githack.com/vivliostyle/vivliostyle.js/master/packages/core/test/files/named-strings/string-set-content.html
Repository files
PDF files
| Converter | Status | PDF Preview | 
|---|---|---|
| PDFreactor | 
                                
                                     | 
                            |
| PrinceXML | 
                                
                                     | 
                            |
| Antennahouse | 
                                
                                     | 
                            |
| Weasyprint | 
                                
                                     | 
                            |
| PagedJS | 
                                
                                     | 
                            |
| Typeset.sh | 
                                
                                     | 
                            |
| Vivliostyle | 
                                
                                     | 
                            |
| BFO | 
                                
                                     | 
                            
                                
                                 
                                     
                                        improper behavior
                                     
                                
                             | 
                        
HTML input
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>Named strings - string() function</title>
    <link rel="stylesheet" href="styles.css">
  </head>
  <body>
    <h1>Test</h1>
    <p>The top-center page header output must be "Chapter 1: Test~"</p>
    <p>The top-right page header output must be "First Letter: T"</p>
    <h1>More test</h1>
    <p>The top-center page header output must be "Chapter 2: More test~"</p>
    <p>The top-right page header output must be "First Letter: M"</p>
  </body>
</html>
                Stylesheet
body {
    counter-reset: chapter;
}
h1 {
    counter-increment: chapter;
    string-set: header content(before) ": " content(text) content(after), FirstLetter content(first-letter);
    break-before: page;;
}
h1::before {
    content: "Chapter " counter(chapter);
    display: block;
}
h1::after {
    content: "~";
}
@page {
    size: A4;
    @top-center {
        content: string(header);
    }
    @top-right {
        content: "First Letter: " string(FirstLetter);
    }
    @bottom-center {
        content: "- " counter(page) " -";
    }
}