react-vector-pdf 0.5.1 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -16,8 +16,8 @@
16
16
  - **Advanced Components**:
17
17
  - **PdfTable**: Supports auto-wrapping, **row spans**, **col spans**, **vertical alignment**, custom cell styling, **striped rows**, and **intelligent page breaking** (keeps spanned rows together).
18
18
  - **PdfImage**: Renders images from URLs with options for flow or absolute positioning. Automatically handles page breaks in flow mode.
19
- - **PdfList**: Bullet and numbered lists with auto-wrapping.
20
- - **PdfView**: Container components with support for borders, background colors, and granular **padding/margin** (e.g., `paddingTop`, `marginBottom`).
19
+ - **PdfList**: Bullet and numbered lists with auto-wrapping and **orphan protection**.
20
+ - **PdfView**: Advanced container with **perfect multi-page spanning**, support for borders, background colors (rendered strictly behind content), and granular **persistent padding** (padding is maintained across page breaks).
21
21
  - **Global Document Options**:
22
22
  - **Formatting**: A4, Letter, custom sizes, portrait/landscape orientation, distinct margins, base fonts.
23
23
  - **Headers & Footers**: Custom render functions with full control.
package/dist/index.d.ts CHANGED
@@ -135,7 +135,13 @@ export declare class PdfRenderer {
135
135
  private cursorX;
136
136
  private cursorY;
137
137
  private contentWidth;
138
- private margin;
138
+ private reservedBottomHeight;
139
+ margin: {
140
+ top: number;
141
+ right: number;
142
+ bottom: number;
143
+ left: number;
144
+ };
139
145
  private defaultFont;
140
146
  private defaultColor;
141
147
  private defaultLineHeight;
@@ -144,8 +150,13 @@ export declare class PdfRenderer {
144
150
  private pendingTasks;
145
151
  private opQueue;
146
152
  private generation;
153
+ private recordingStack;
147
154
  private recurringItems;
148
155
  constructor(opts?: PDFOptions);
156
+ startRecording(): void;
157
+ stopRecording(): (() => void)[];
158
+ playback(ops: Array<() => void>): void;
159
+ private drawOp;
149
160
  get instance(): jsPDF;
150
161
  get width(): number;
151
162
  get height(): number;
@@ -161,6 +172,11 @@ export declare class PdfRenderer {
161
172
  size: number;
162
173
  };
163
174
  get baseLineHeight(): number;
175
+ setReservedHeight(h: number): void;
176
+ private indentStack;
177
+ private currentIndent;
178
+ pushIndent(left: number, right: number): void;
179
+ popIndent(): void;
164
180
  resetFlowCursor(): void;
165
181
  reset(): void;
166
182
  setHeaderFooter(header?: (pdf: jsPDF, pageNum: number, pageCount: number, renderer: PdfRenderer) => void, footer?: (pdf: jsPDF, pageNum: number, pageCount: number, renderer: PdfRenderer) => void): void;
@@ -215,6 +231,16 @@ export declare class PdfRenderer {
215
231
  }): void;
216
232
  save(filename: string): void;
217
233
  getBlobUrl(): URL;
234
+ /**
235
+ * Injects a filled rectangle at the beginning of the page stream.
236
+ * This ensures the background is drawn BEHIND all other content on the page.
237
+ */
238
+ injectFill(pageNum: number, rect: {
239
+ x: number;
240
+ y: number;
241
+ w: number;
242
+ h: number;
243
+ }, color: string): void;
218
244
  }
219
245
 
220
246
  export declare const PdfTable: default_2.FC<PdfTableProps>;