Components
Blocks
- Event Agenda
- Event Ticket
- Gift Certificate
- Invoice Classic
- Invoice Consultant
- Invoice Corporate
- Invoice Creative
- Invoice Minimal
- Invoice Modern
- Lesson Plan
- Medical Intake Form
- Meeting Minutes
- Packing Slip
- Press Release
- Report Financial
- Report Marketing
- Report Operations
- Report Security
- Shipping Label
- Work Order
Rendering PDF…
Installation
$ pnpm dlx shadcn@latest add @angular-pdfcn/forme/page-footerUsage
import { Component } from "@angular/core";
import { PdfPageFooter } from "@/components/pdf/page-footer/page-footer";
import { PdfText } from "@/components/pdf/text/text";
import {
FormeDocument,
FormePage,
FormeView,
} from "@/lib/pdf-primitives";
@Component({
imports: [FormeDocument, FormePage, FormeView, PdfPageFooter, PdfText],
template: `
<forme-document>
<forme-page [size]="{ height: 300, width: 595 }" [margin]="30">
<forme-view
[style]="{ display: 'flex', flexDirection: 'column', minHeight: 220 }"
>
<pdf-text [style]="textStyle"
>Invoice #1042 · Acme Corp · March 2026</pdf-text
>
<pdf-text [style]="textStyle"
>The footer remains visually separated from the document
body.</pdf-text
>
<forme-view [style]="{ flex: 1 }" />
<pdf-page-footer
leftText="© 2026 Acme Corp"
centerText="Confidential"
rightText="Page 1 of 1"
variant="simple"
/>
</forme-view>
</forme-page>
</forme-document>
`,
})
export class PageFooterDemo {
protected readonly textStyle = {
color: "#555555",
fontSize: 10,
lineHeight: 1.6,
marginBottom: 6,
};
}API Reference
PdfPageFooter
| Input | Type | Default |
|---|---|---|
leftText |
string | TemplateRef<unknown> |
- |
rightText |
string | TemplateRef<unknown> |
- |
centerText |
string | TemplateRef<unknown> |
- |
variant |
'simple' | 'centered' | 'branded' | 'minimal' | 'three-column' | 'detailed' |
'simple' |
background |
string |
- |
textColor |
string |
- |
marginTop |
number |
- |
address |
string |
- |
phone |
string |
- |
email |
string |
- |
website |
string |
- |
fixed |
boolean |
false |
sticky |
boolean |
false |
pagePadding |
number |
0 |
noWrap |
boolean |
true |