Skip to main content
Skip table of contents

pdfHTML: Support for generating cross references for TOC creation with target-counter, target-counters CSS properties

Background:

The target-counter and target-counter CSS Level 3 properties retrieve counter values and display information from the destinations of link elements within HTML. For building a table of contents, these properties are especially relevant and useful. In the following example, we demonstrate the inclusion of support for these properties within pdfHTML's version 3.0.3 release.

Example:

In the following example, we use the following HTML code to build a basic table of contents which routes a user to pages 1, 2, and 3 respectively. We use target-counter to gather the page of each destination within the table of contents, and display that page number to the left of each link.


HTML code:

target-counter HTML + CSS Example

XML
<!DOCTYPE html>
<html>
    <head>
        <style>
            .preface::before {
                content: target-counter(url('#id1'), page) ' ';
            }


            .introduction::before {
                content: target-counter(url('#id2'), page) ' ';
            }

            .chapterone::before {
                content: target-counter(url('#id3'), page) ' ';
            }
        </style>
    </head>

    <body style="font-size: 30px; font-family: Arial;">
        <nav>
            <p class="preface"><a href="#id1">Preface</a></p>
            <p class="introduction"><a href="#id2">Introduction</a></p>
            <p class="chapterone"><a href="#id3">Chapter One</a></p>
        </nav>

        <p id="id1">Preface. This is on page: <a class="preface"></a> </p>

        <P style="page-break-before: always">

        <p id="id2">Introduction. This is on page: <a class="introduction"></a></p>

        <P style="page-break-before: always">

        <p id="id3">Page number. This is on page: <a class="chapterone"></a></p>

    </body>
</html>


This HTML, when used with a viewer that allows for CSS 3, renders to look something like the following screenshot:

We use pdfHTML to then convert our above HTML into a valid PDF document as follows:

Resources:

Then, when we are finished, we are left with the attached output PDF (see below):

out.pdf



JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.