Skip to content

Desired capability pageNumber automatic counting in the footer adjusted by an offset value #286

@rietta

Description

@rietta

This is a placeholder for an issue that I am having. Upon discovery of a solution, I plan to introduce a pull request to add this to the documentation so that future developers who want to do similarly will have a go-to solution with Grover.

I have been struggling for a day to render a PDF with page numbering that starts at an offset. The idea is that there will be a series of PDFs generated separately and then combined into a single file as a final step. My Ruby code will keep a running total of the pages already rendered and pass the start number into a the call to render a particular sub document.

This used to work with wicked_pdf with a page_offset parameter.

At the moment, footers with a span with the pageNumber class are rendering

<div style="font-size: 20pt !important!; font-weight: bold;">
    <p>
        Page <span class="pageNumber">[PAGE]</span>
    </p>
</div>

This results in:

  • Page 1
  • Page 2
  • Page 3

but that number resets for each separate subdocument.

Though at the moment all attempts at styling it are being ignored. The resulting page number is a microdot no more than 1pt or less in size. Probably too small to even print. That I am setting to the side for now though.

I am attempting to inject some JavaScript into the print page layout with:

<% if @page_offset.present? %>
    <script language="JavaScript">
      window.addEventListener("DOMContentLoaded", (event) => {
          const pageNumberSpans = document.querySelectorAll(".pageNumber");
          pageNumberSpans.forEach((span) => {
              let pageNumber = parseInt(span.textContent);
              let adjustedPageNumber = pageNumber + <%= @page_offset.to_i %>;
              span.textContent = adjustedPageNumber;
          });
      });
    </script>
  <% end %>

But so far while no error is being output this is not working. The page numbers stay the same unchanged.

I will keep at this and will document here the found solution. I really think this is worthy of being added to the project's documentation as a need that will arise for others besides me.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions