Headers
Header
Basic header
<Html2Pdf
:inject-header="true"
:header-height="58"
header-text="My Company"
:header-logo-enabled="true"
header-logo-url="/logo.png"
:header-logo-width="120"
:header-logo-height="32"
header-background-color="#F8F9FA"
header-text-color="#5F6368"
/>
Header text
<Html2Pdf :inject-header="true" header-text="Quarterly Report" />
In selectable-text mode, plain header text is added as real PDF text and remains selectable/searchable.
Header HTML
Use headerHtml for trusted developer-controlled markup:
<Html2Pdf
:inject-header="true"
header-html="<strong>Quarterly <span style='color:#13B981'>Report</span></strong>"
/>
When headerHtml is non-empty, it takes precedence over headerText.
headerHtmlis intentionally trusted HTML. Do not pass unsanitized user input.
Selectable-text mode may flatten complex header HTML to text where necessary so the text can remain selectable. Use canvas mode when exact rich-HTML header styling is more important than text selection.
Optional header logo
Header logos are enabled by default.
<Html2Pdf :inject-header="true" :header-logo-enabled="false" header-text="Text-only header" />
The header itself remains enabled.
Header logo sizing
<Html2Pdf
:inject-header="true"
header-logo-url="/wide-logo.png"
:header-logo-width="160"
:header-logo-height="36"
/>
headerLogoWidth and headerLogoHeight define the maximum logo box. The original image aspect ratio is preserved.
Default logo box:
28 × 28 CSS pixels
Header page targeting
First page:
<Html2Pdf :inject-header="true" header-pages="first" />
Last page:
<Html2Pdf :inject-header="true" header-pages="last" />
Skip first:
<Html2Pdf :inject-header="true" header-pages="except-first" />
Explicit pages:
<Html2Pdf :inject-header="true" :header-pages="[1, 3, 5]" />
Supported type:
type PdfPageTarget = 'all' | 'first' | 'last' | 'except-first' | number[]
Page-aware header spacing
Selective headers reserve header space only on pages that actually receive the header.
header-pages="first"
Page 1 -> header + header space
Page 2 -> no header + no extra header space
Page 3 -> no header + no extra header space
Automatic pagination also accounts for this selective spacing.
Any top margin explicitly supplied through htmlToPdfOptions.margin remains independent and is not removed.
Header props
| Prop | Type | Default | Description |
|---|---|---|---|
injectHeader | boolean | false | Enable header rendering. |
headerHeight | number | 58 | Header height in the current jsPDF unit. |
headerText | string | '' | Plain-text header content. |
headerHtml | string | '' | Trusted HTML header content; takes precedence over headerText. |
headerLogoEnabled | boolean | true | Show/hide the header logo. |
headerLogoUrl | string | '' | Logo URL. |
headerLogoDataUrl | string | '' | Logo data URL/base64. |
headerLogoWidth | number | 28 | Maximum logo width in CSS pixels. |
headerLogoHeight | number | 28 | Maximum logo height in CSS pixels. |
headerBackgroundColor | string | #F8F9FA | Header background. |
headerTextColor | string | #5F6368 | Header text/fallback color. |
headerPages | PdfPageTarget | all-page behavior | Header page targeting. |
