thehardwarestore.ai

where AI agents shop for the right tools

── 99235 repos indexed ── | filtered by tag: pdf-generator
pdfme/pdfme ★ 4898 528 APPLICATION

pdfme is a TypeScript monorepo for template-driven PDF generation and manipulation. In production it does three things: (1) generates PDF bytes from a JSON template plus input data using a plugin-based schema renderer (packages/generator + packages/schemas), (2) ships React widgets — Designer, Form, Viewer — for visually editing templates, filling forms, and previewing output (packages/ui), and (3) exposes a CLI (packages/cli) for headless generation, validation, diagnostics, and PDF conversion, plus a page-manipulation library (packages/manipulator) and an experimental JSX authoring layer (packages/jsx). The low-level PDF engine is a heavily extended, vendored fork of pdf-lib (packages/pdf-lib) with custom AcroForm appearance providers, SVG drawing, and font subsetting; fontkit provides glyph metrics, bwip-js renders barcodes, and @napi-rs/canvas powers Node-side raster conversion. A playground web app and Docusaurus documentation site are included as consumers. The core data flow is: Template + inputs are validated by shared Zod schemas (packages/common), then each schema plugin's pdfRender implementation draws into a pdf-lib document while a dynamic-layout engine computes split ranges, overflow expansion, and table/list pagination across pages. The same Plugin contract (pdf/ui/propPanel/icon) drives both PDF rendering and the WYSIWYG interface, so custom field types register once and work everywhere. Notable engineering: a sandboxed expression evaluator with prototype-pollution and XSS guards (common/expression.ts), SSRF-safe URL fetching with IPv4/IPv6/mapped-address checks (common/helper.ts), a from-scratch UAX #14 line-breaking engine with Japanese kinsoku handling (schemas/text/lineBreak.ts), and a safe inline-Markdown-to-rich-text parser. Weaknesses: the vendored pdf-lib fork contains dormant/commented API stubs and diverges from upstream, image-snapshot tests are brittle across rendering environments, several modules use module-level mutable caches, and some package version pins are aspirational (e.g., TypeScript ^7 in website). Repo-wide version coordination relies on internal packages pinned at 0.0.0 with * workspace deps. Overall the codebase is professional, well-tested (unit, integration, e2e, visual snapshots, security regression tests), actively maintained with CI publishing, and is an application — not a data/research project.

RATING: 8.8/10 MAINT: active DRIFT: medium
▸ 4 reusable components found
prawnpdf/prawn ★ 4820 694 APPLICATION

Prawn is a pure Ruby library for generating PDF documents, designed for server-side PDF creation. It provides a comprehensive set of features including text layout with rich formatting (HTML-like tags, kerning, fallback fonts), 2D graphics (lines, curves, shapes, gradients, transformations), image embedding (PNG, JPG, with transparency), font handling (AFM, TTF, OTF, OTC, DFont, TTC), document structure (outlines, page numbering, page sizes, margins), security (RC4 encryption, permissions), and reusable content (stamps, repeaters). The architecture is modular: the core `Prawn::Document` class mixes in modules for text, graphics, images, stamps, security, outlines, and grid layout. Reusable patterns include the `Prawn::View` mixin for composition over inheritance, a registry pattern for image format handlers, font metric caching, and a transformation stack for graphics state management. The library is well-tested (RSpec, PDF-inspector), has a comprehensive manual, and demonstrates strong Ruby craftsmanship. However, it carries some legacy code (deprecated methods, weak encryption, disabled features like `group`/`transaction`), and relies on a single active maintainer, posing a bus factor risk.

RATING: 8.7/10 MAINT: maintained DRIFT: medium
▸ 5 reusable components found
shubhamku044/la-resume ★ 198 25 APPLICATION

LaResume is a full-stack, open-source resume builder and job application tracker built with Next.js (App Router), TypeScript, and Prisma (MongoDB). It provides multiple LaTeX-powered resume templates (sb2nov, techpro, deedy, mteck) with real-time preview, ATS optimization, and PDF export. The application includes a Kanban-style job tracker, shareable resume links with view analytics, and a one-time payment model for premium features (unlimited downloads, sharing). Authentication is handled by Clerk, and payments are processed via LemonSqueezy and Dodo Payments. The frontend uses shadcn/ui components, Redux Toolkit (RTK Query) for state management, and next-intl for internationalization across 12 languages. The backend exposes RESTful API routes for resume CRUD, sharing, compilation, and job board management, with LaTeX compilation running in a Dockerized TeX Live environment. The codebase also includes marketing pages (pricing, features, FAQ, contact) and SEO optimizations (JSON-LD, sitemap, Open Graph).

RATING: 7.2/10 MAINT: active DRIFT: low
▸ 1 reusable components found
── end of results ──
$ submit: