I am trying to add page numbers to my html print out and came across Counter Increment. I tried using it for my pages, but it is only showing Page 1 every time. Help would be appreciated.
P.S. I have already tried following other solutions similar to mine, but none work so far. My case is different because I am using it inside of a table header.
.page-number{
    text-align:center;
}
thead {
    display:table-header-group;
}
@media print{
     .page-number:before{
        counter-increment: page;
        content: "Page " counter(page);
     }
   }
@media screen{
    .page-number:before {
        counter-increment: page;
        content: "Page " counter(page);
        }
     }
<table class="SetupMainTable">
  <thead>
    <tr>
       <td colspan="4">Company Name</td>
       <td colspan="5" class="right" style="font-size:25px;">Daily Time Ticket</td> 
       <td colspan="1"><div class="page-number"></div></td>
    </tr>
  </thead>
</table>  
Eg:Example that print's same Page 1  on all pages
ctrl+p to testIt Should print incremental Page 1 Page 2 Page 3 number on all pages after pressing ctrl + p Print
Long story short:
Press Ctrl + P → Print current window → Add a footer in the bottom of the page(Current Window) like Page <counter> counter is a number starting from 1 .
So the Page will be like

PS: Counter shouldn't visible on the page 😀
So I was never able to get this to work for my case. I know other cases may work with above answers, but I could not get the Front-End alone to generate the dynamic page numbers.
I used help from my back-end, which is PHP in my case and used a plugin called wkhtmltopdf.
This solved my issue, https://stackoverflow.com/a/13496899/6000966.
I was able to remove the logic from the front-end and place it on the back-end and let it handle the dynamic page numbers.
I would advise if the HTML pages are using dynamic data from the back-end, something like this is the way to go.
Static pages on the other hand should work with the above answers.
I found that code in one Russian article. That code adds pagination to each page:
@page:right{
  @bottom-right {
    content: counter(page);
  }
}
@page:left{
  @bottom-left {
    content: counter(page);
  }
}
And code below can show number of page of their total like "Page 3 of 120".
@page:left{
  @bottom-left {
    content: "Page " counter(page) " of " counter(pages);
  }
}
                        Ciao,
not sure about your intended output but if you try this snippet I think it does what you are asking [i.e. incrementing the page number]. The code was readapted from this original sample
body {
  /* Set "my-sec-counter" to 0 */
  counter-reset: my-sec-counter;
}
h2::before {
  /* Increment "my-sec-counter" by 1 */
  counter-increment: my-sec-counter;
  content: "Section " counter(my-sec-counter) ". ";
}
#page-number::before {
  /* Increment "my-sec-counter" by 1 */
  counter-increment: my-sec-counter;
  content: "Page " counter(my-sec-counter) ". ";
}
<h2>HTML Tutorial</h2>
<h2>CSS Tutorial</h2>
<h2>JavaScript Tutorial</h2>
<h2>Bootstrap Tutorial</h2>
<h2>SQL Tutorial</h2>
<h2>PHP Tutorial</h2>
<tr>
  <td colspan="4">Company Name</td>
  <td colspan="5" class="right" style="font-size:25px;">Daily Time Ticket</td>
  <td colspan="1">
    <div id="page-number"></div>
  </td>
</tr>
<tr>
  <td colspan="4">Company Name</td>
  <td colspan="5" class="right" style="font-size:25px;">Daily Time Ticket</td>
  <td colspan="1">
    <div id="page-number"></div>
  </td>
</tr>
Hope it helps and have a good day,
Antonino
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With