From bba68e66ff0395302935ca0f3dfd8664846a72ef Mon Sep 17 00:00:00 2001 From: Kasey Schlaudt Date: Wed, 20 May 2026 17:04:55 -0500 Subject: [PATCH 1/2] fix(pdf): stop logo from overlapping donor block on EOY receipts The header positioned the donor block based on text-line advance, so a 64pt logo extended past the "ISSUED TO" / "ISSUED" rows. Shrink the default logo slot to 48pt, constrain the org-name and receipt-label text widths to the column right of the logo, and explicitly advance doc.y past the logo bottom before the donor block. Add a sample receipt (PNG preview + downloadable PDF) to the README so the layout is visible at a glance. Co-Authored-By: Claude Opus 4.7 (1M context) --- README.md | 15 ++++++++-- examples/gen-sample-receipt.mjs | 49 ++++++++++++++++++++++++++++++++ examples/sample-receipt.pdf | Bin 0 -> 5596 bytes examples/sample-receipt.png | Bin 0 -> 112374 bytes src/report/formats/pdf.ts | 15 +++++++--- 5 files changed, 73 insertions(+), 6 deletions(-) create mode 100644 examples/gen-sample-receipt.mjs create mode 100644 examples/sample-receipt.pdf create mode 100644 examples/sample-receipt.png diff --git a/README.md b/README.md index e08a4bb..4f127a8 100644 --- a/README.md +++ b/README.md @@ -23,6 +23,7 @@ Read-only by design — `zfy` cannot modify your Zeffy data, because the officia - [Quick start (5 minutes)](#quick-start-5-minutes) - [CLI commands](#cli-commands) - [End-of-year report](#end-of-year-report) + - [What the PDF receipts look like](#what-the-pdf-receipts-look-like) - [Logo spec for `--logo`](#logo-spec-for---logo) - [Optional: use from Claude or other AI agents (MCP)](#optional-use-from-claude-or-other-ai-agents-mcp) - [SDK usage](#sdk-usage) @@ -165,7 +166,7 @@ zfy report eoy --year 2025 --format md --out eoy-2025.md --top 50 # One PDF receipt per donor (with optional logo) zfy report eoy --year 2025 --format pdf --out ./receipts/ \ --org "Friends of the Library" \ - --logo ./logo.png --logo-size 64 \ + --logo ./logo.png --logo-size 48 \ --timezone America/Los_Angeles ``` @@ -180,11 +181,21 @@ zfy report eoy --year 2025 --format pdf --out ./receipts/ \ | `--top ` | Markdown: limit donor table. | | `--org ` | PDF: organization name in the header. | | `--logo ` | PDF: square PNG/JPEG mark — see spec below. | -| `--logo-size ` | PDF: edge length of the logo slot in [PDF points](https://en.wikipedia.org/wiki/Point_(typography)) (default 64; 72 pt ≈ 1 inch). | +| `--logo-size ` | PDF: edge length of the logo slot in [PDF points](https://en.wikipedia.org/wiki/Point_(typography)) (default 48; 72 pt ≈ 1 inch). | | `--receipt-text ` | PDF: override the default tax-receipt boilerplate. | Run `zfy report eoy --help` for the complete list. +#### What the PDF receipts look like + +

+ + Sample EOY donation receipt rendered by zfy + +
+ Download the sample PDF · regenerate with pnpm build && node examples/gen-sample-receipt.mjs +

+ ### Logo spec for `--logo` The PDF renderer reserves a small square slot for an org mark. Logos must meet these constraints — otherwise zfy prints a warning to stderr and falls back to text-only (no crash, batch keeps running): diff --git a/examples/gen-sample-receipt.mjs b/examples/gen-sample-receipt.mjs new file mode 100644 index 0000000..41a4579 --- /dev/null +++ b/examples/gen-sample-receipt.mjs @@ -0,0 +1,49 @@ +// Generates a sample EOY receipt PDF using the real renderer. +// Run: node examples/gen-sample-receipt.mjs [outPath] +import path from "node:path"; +import { fileURLToPath } from "node:url"; +import { writeFile } from "node:fs/promises"; +import { renderDonorPdf } from "../dist/sdk/index.js"; + +const __dirname = path.dirname(fileURLToPath(import.meta.url)); +const out = process.argv[2] ?? path.join(__dirname, "sample-receipt.pdf"); + +const donor = { + contact_id: "ct_demo", + name: "Jordan Rivera", + email: "jordan.rivera@example.org", + address: { + line1: "1428 Maple Street", + line2: "Apt 3B", + city: "Portland", + state: "OR", + postal_code: "97214", + country: "United States", + }, + total_amount: 1450, + donation_count: 6, + payments: [ + { id: "p1", date: "2025-01-15T00:00:00.000Z", amount: 250, campaign: "Winter Appeal" }, + { id: "p2", date: "2025-03-02T00:00:00.000Z", amount: 100, campaign: "General Fund" }, + { id: "p3", date: "2025-05-20T00:00:00.000Z", amount: 500, campaign: "Library Renovation" }, + { id: "p4", date: "2025-08-11T00:00:00.000Z", amount: 100, campaign: "General Fund" }, + { id: "p5", date: "2025-10-04T00:00:00.000Z", amount: 250, campaign: "Fall Membership Drive" }, + { id: "p6", date: "2025-12-22T00:00:00.000Z", amount: 250, campaign: "Year-End Match" }, + ], +}; + +const report = { + year: 2025, + timezone: "America/Los_Angeles", + currency: "USD", + generated_at: "2026-01-15T17:00:00.000Z", + totals: { total_amount: 1450, donor_count: 1, donation_count: 6 }, + donors: [donor], +}; + +const buf = await renderDonorPdf(donor, report, { + orgName: "Friends of the Library", + logoPath: path.join(__dirname, "sample-logo.png"), +}); +await writeFile(out, buf); +console.log(`Wrote ${out} (${buf.length} bytes)`); diff --git a/examples/sample-receipt.pdf b/examples/sample-receipt.pdf new file mode 100644 index 0000000000000000000000000000000000000000..94a2b88af96b24fedc4cb603bc1d34f9ea1c703a GIT binary patch literal 5596 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 literal 0 HcmV?d00001 diff --git a/examples/sample-receipt.png b/examples/sample-receipt.png new file mode 100644 index 0000000000000000000000000000000000000000..56737b3e54dab3c56e1c7c807f97184ef75222d9 GIT binary patch literal 112374 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 literal 0 HcmV?d00001 diff --git a/src/report/formats/pdf.ts b/src/report/formats/pdf.ts index 8039c56..6cbf70a 100644 --- a/src/report/formats/pdf.ts +++ b/src/report/formats/pdf.ts @@ -19,7 +19,7 @@ export interface PdfOptions { const LOGO_MAX_BYTES = 2 * 1024 * 1024; const LOGO_MIN_PIXELS = 64; const LOGO_ASPECT_TOLERANCE = 0.1; // ±10% off 1:1 is still accepted as "square" -const DEFAULT_LOGO_SIZE = 64; +const DEFAULT_LOGO_SIZE = 48; export type LogoValidation = | { ok: true; width: number; height: number; format: "png" | "jpeg" } @@ -177,6 +177,7 @@ export function renderDonorPdf( const headerY = doc.y; const logoSize = opts.logoSize ?? DEFAULT_LOGO_SIZE; + const logoGutter = opts.logoPath ? logoSize + 14 : 0; if (opts.logoPath) { try { doc.image(opts.logoPath, left, headerY, { fit: [logoSize, logoSize] }); @@ -185,21 +186,27 @@ export function renderDonorPdf( } } + const textX = left + logoGutter; + const textWidth = usable - logoGutter; doc .font("Helvetica-Bold") .fontSize(20) .fillColor("black") - .text(orgName, left + (opts.logoPath ? logoSize + 14 : 0), headerY + 4, { - width: usable, + .text(orgName, textX, headerY + 4, { + width: textWidth, }); doc .font("Helvetica") .fontSize(9) .fillColor(MUTED) - .text(`OFFICIAL DONATION RECEIPT · ${report.year}`, { + .text(`OFFICIAL DONATION RECEIPT · ${report.year}`, textX, doc.y, { + width: textWidth, characterSpacing: 1.2, }); + // Make sure the next section starts below the logo, not on top of it. + doc.x = left; + doc.y = Math.max(doc.y, headerY + logoSize); doc.moveDown(1.5); doc.fillColor("black"); From 6f1178bbf5e99459f8f9dae3dde2e2bae14628cf Mon Sep 17 00:00:00 2001 From: Kasey Schlaudt Date: Thu, 21 May 2026 13:26:32 -0500 Subject: [PATCH 2/2] fix(pdf): address Copilot review on PR #2 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Align `PdfOptions.logoSize` JSDoc and `--logo-size` CLI help with the new 48pt default (was still documenting 64pt). - Switch README sample-receipt links to absolute github.com URLs so they resolve from the npm package page, which doesn't ship the `examples/` directory. - Note the `pnpm build` prerequisite in the gen-sample-receipt script header — it imports from `dist/`. Co-Authored-By: Claude Opus 4.7 (1M context) --- README.md | 6 +++--- examples/gen-sample-receipt.mjs | 3 ++- src/cli/report.ts | 2 +- src/report/formats/pdf.ts | 2 +- 4 files changed, 7 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 4f127a8..ebeb9aa 100644 --- a/README.md +++ b/README.md @@ -189,11 +189,11 @@ Run `zfy report eoy --help` for the complete list. #### What the PDF receipts look like

- - Sample EOY donation receipt rendered by zfy + + Sample EOY donation receipt rendered by zfy
- Download the sample PDF · regenerate with pnpm build && node examples/gen-sample-receipt.mjs + Download the sample PDF · regenerate with pnpm build && node examples/gen-sample-receipt.mjs

### Logo spec for `--logo` diff --git a/examples/gen-sample-receipt.mjs b/examples/gen-sample-receipt.mjs index 41a4579..28574d9 100644 --- a/examples/gen-sample-receipt.mjs +++ b/examples/gen-sample-receipt.mjs @@ -1,5 +1,6 @@ // Generates a sample EOY receipt PDF using the real renderer. -// Run: node examples/gen-sample-receipt.mjs [outPath] +// Requires the package to be built first (imports from ../dist/sdk). +// Run: pnpm build && node examples/gen-sample-receipt.mjs [outPath] import path from "node:path"; import { fileURLToPath } from "node:url"; import { writeFile } from "node:fs/promises"; diff --git a/src/cli/report.ts b/src/cli/report.ts index 1f434e3..fe257b8 100644 --- a/src/cli/report.ts +++ b/src/cli/report.ts @@ -27,7 +27,7 @@ export function reportCommand(): Command { .option("--top ", "Markdown: limit donor table to top N", (v) => Number(v)) .option("--org ", "PDF: organization name for the header") .option("--logo ", "PDF: path to a square PNG/JPEG logo (~512×512, max 2 MB)") - .option("--logo-size ", "PDF: edge length of the square logo slot in points (default 64)", (v) => Number(v)) + .option("--logo-size ", "PDF: edge length of the square logo slot in points (default 48)", (v) => Number(v)) .option("--receipt-text ", "PDF: override receipt boilerplate") .action(async (opts: Record) => { const year = opts["year"] as number; diff --git a/src/report/formats/pdf.ts b/src/report/formats/pdf.ts index 6cbf70a..95a2538 100644 --- a/src/report/formats/pdf.ts +++ b/src/report/formats/pdf.ts @@ -10,7 +10,7 @@ export interface PdfOptions { receiptText?: string; /** Path to a square PNG or JPEG logo. See validateLogo() for the spec. */ logoPath?: string; - /** Edge length in pt for the square logo slot (default 64). */ + /** Edge length in pt for the square logo slot (default 48). */ logoSize?: number; /** Stream to write validation warnings to. Defaults to process.stderr. */ warnStream?: { write(s: string): void };