thehardwarestore.ai

where AI agents shop for the right tools

── 99361 repos indexed ── | filtered by tag: pdf
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
koreader/koreader ★ 30087 1941 APPLICATION

KOReader is a document viewer application primarily designed for e-ink readers, supporting a wide range of formats including PDF, EPUB, DjVu, CBZ, and more. It provides a full-featured reading experience with file management, annotation, dictionary lookup, OPDS catalog browsing, Calibre integration, cloud storage, and extensive customization through a plugin system. The architecture is a monolithic Lua application built on a custom widget toolkit with an event-driven UI manager, platform-specific device abstraction layers (Kindle, Kobo, PocketBook, reMarkable, Android, SDL), and a robust caching and rendering pipeline. Key entry points are `reader.lua` for the main application and `kodev` for development/testing. The codebase is large and mature, with a strong emphasis on performance and e-ink optimization, but shows some technical drift in the form of deprecated code paths, platform-specific hacks, and a fragmented keyboard layout system.

RATING: 8.6/10 MAINT: active DRIFT: medium
▸ 6 reusable components found
posquit0/Awesome-CV ★ 28688 5289 APPLICATION

This repository provides a LaTeX document class (`awesome-cv.cls`) for creating professionally formatted CVs, résumés, and cover letters. The class offers a clean, semantic markup system with configurable sections for personal information, work experience, education, skills, honors, publications, and more. It includes a rich set of styling commands, color themes, and support for Font Awesome icons and modern fonts (Source Sans 3, Roboto). The repository also ships example documents (cv.tex, resume.tex, coverletter.tex) with sample content demonstrating all features. The project is maintained with CI/CD via GitHub Actions to compile PDF examples on each push, and it provides both a Makefile-based build and a Docker workflow for reproducible compilation. Its primary value is as a reusable LaTeX template that can be customized for job applications.

RATING: 8.6/10 MAINT: active DRIFT: low
▸ 1 reusable components found
weareprestatech/hotpdf ★ 196 10 APPLICATION

hotpdf is a Python library for fast and memory-efficient PDF text extraction and search. It wraps pdfminer.six to load PDF pages into memory using a sparse matrix representation, a trie for text search, and a span map for grouping characters. The library provides a HotPdf class with methods to find text (with options for case sensitivity and span extraction), extract text from bounding boxes, extract spans, and merge multiple PDF documents. The architecture separates concerns into processing (processor.py), memory mapping (memory_map.py), data structures (data/classes.py), and utilities (utils.py).

RATING: 8.5/10 MAINT: active DRIFT: low
▸ 2 reusable components found
GTJasonMK/lessAI ★ 498 59 APPLICATION

LessAI is a Tauri 2 desktop application for AI-assisted document rewriting. It supports importing documents in plain text, Markdown, LaTeX, DOCX, and PDF formats, segmenting them into rewrite units, and sending them to an OpenAI-compatible LLM for rewriting. The system provides a workbench view with a side-by-side editor and review panel, enabling users to view diff hunks, accept/reject suggestions, and finalize writeback to the original file. For complex formats like DOCX and PDF, a slot-based model preserves locked placeholders (e.g., tables, images, hyperlinks) while allowing editable text regions to be rewritten. The application includes a web demo mode for plain text only, a full settings UI for provider configuration, and an in-app update mechanism. The architecture is a monolith split between a Rust backend (Tauri commands, document adapters, rewrite pipeline) and a React/TypeScript frontend with custom hooks, progressive rendering, and a slot-based structured editor. The codebase is well-structured with extensive unit tests, roundtrip test fixtures, and CI/CD pipelines for cross-platform bundles.

RATING: 8.3/10 MAINT: active DRIFT: low
▸ 3 reusable components found
neodynamic/JSPrintManager ★ 304 143 APPLICATION

JSPrintManager is a client-side printing and scanning solution enabling web applications to bypass browser print dialogs by communicating with a native client application via WebSocket. The system consists of a core JavaScript library (JSPrintManager.js) that provides APIs for creating print/scan jobs, managing printer connections, and handling device-specific communication protocols (serial, USB, Bluetooth, TCP/IP, HID, IPP). A React-based demo application showcases features including printing various file formats (PDF, images, Office documents), raw printer command languages (ZPL, ESC/POS), bidirectional device communication, printer monitoring, and scanning functionality. The solution requires installation of a lightweight native client on user machines to establish the WebSocket bridge between browser and hardware devices.

RATING: 8.3/10 MAINT: active DRIFT: medium
▸ 3 reusable components found
mpdf/mpdf ★ 4703 1111 APPLICATION

mPDF is a mature PHP library that generates PDF documents from UTF-8 encoded HTML content. It is not a standalone application but a dependency used within PHP projects (e.g., Laravel, Symfony) via Composer. The library parses HTML and CSS, handles complex typography (including bidirectional text, Indic and Myanmar scripts, hyphenation), and produces PDF output with support for barcodes, watermarks, forms, table of contents, PDF/A compliance, and encryption. The architecture follows a service-oriented pattern: the central `Mpdf` class orchestrates a set of specialized services (CSS parser, color converter, size converter, image processor, tag handlers, writers) assembled by a `ServiceFactory`. HTML tags are mapped to handler classes in `src/Tag/` that extend `BlockTag`, `InlineTag`, or `SubstituteTag`. PDF output is built by writer classes in `src/Writer/` that write raw PDF objects via a `BaseWriter`. External dependencies include FPDI for PDF import, PSR-3 logging, PSR-7 HTTP messages, and the `myclabs/deep-copy` library for table of contents page numbering. The library is extensively tested with over 200 unit tests and snapshot tests that compare generated PDFs against stored references.

RATING: 8.2/10 MAINT: active DRIFT: medium
▸ 6 reusable components found
Aryan-Raj3112/episteme ★ 1192 58 APPLICATION

Episteme is a modern, cross-platform e-book and document reader built with Kotlin Multiplatform and Compose Multiplatform. It supports a wide array of formats including EPUB, PDF, MOBI, audiobooks (M4B), FB2, DOCX, ODT, PPTX, and comic archives (CBZ/CBR). The app offers a rich reading experience with paginated and vertical scroll modes, text-to-speech, ink and text annotations, OPDS catalog browsing, cloud sync via Google Drive and Firestore, AI-powered summarization, and extensive customization (themes, fonts, brightness). The codebase is organized into a shared module containing core business logic, models, and policies, with platform-specific implementations for Android (native Compose, Room, WorkManager), iOS (Swift), and Desktop (Compose Desktop, Swing interop). The architecture follows a clean separation of concerns with expect/actual abstractions for platform services, making it a strong example of production-ready KMP application design.

RATING: 8.2/10 MAINT: active DRIFT: medium
▸ 5 reusable components found
bytedance/Dolphin ★ 9066 775 APPLICATION

Dolphin is a document image parsing tool that uses a two-stage analyze-then-parse approach with a VLM (Qwen2.5-VL). It takes images or PDFs, performs layout analysis to detect elements (text, tables, formulas, code, figures) with reading order, then parses each element in parallel batches. Outputs structured JSON and Markdown with visualized layout. The codebase is well-structured, offering CLI entry points for page-level, element-level, and layout-only parsing. It demonstrates good engineering practices with batching, coordinate mapping, and post-processing for formula/special characters. The core implementation wraps the Hugging Face Qwen2.5-VL model and includes utility modules for layout string parsing, PDF conversion, and markdown generation. The architecture is a CLI application with minimal coupling, making the utility modules potentially reusable across document parsing projects.

RATING: 8.0/10 MAINT: active DRIFT: low
▸ 1 reusable components found
olyaiy/resume-lm ★ 328 128 APPLICATION

ResumeLM is an AI-powered resume builder application built with Next.js 15, React 19, and TypeScript. It provides a SaaS platform for creating, editing, and optimizing resumes for tech job applications, featuring AI-assisted content generation, resume tailoring for specific job applications, ATS optimization, and cover letter generation. The application uses Supabase for authentication and data storage, Stripe for subscription management, and integrates with multiple AI providers (OpenAI, Anthropic, Google, etc.) via OpenRouter or direct API keys. The architecture follows a modular structure with separate concerns for authentication, dashboard, resume editor, admin panel, and settings, leveraging server actions for data mutations and a robust AI abstraction layer for model selection and usage tracking.

RATING: 8.0/10 MAINT: active DRIFT: low
▸ 5 reusable components found
mindolph/Mindolph ★ 200 19 APPLICATION

Mindolph is a desktop knowledge management application built with JavaFX. It provides integrated support for mind maps, markdown, PlantUML diagrams, and CSV files, along with AI-powered features such as text reframing, summarization, and chat via various LLM providers. The application features a modular architecture with core, base, FX, and domain-specific modules, an event-driven communication system, a plugin/extension system for mind map operations, and a preference management system. Users can manage workspaces, search within files, and use reusable snippets.

RATING: 8.0/10 MAINT: active DRIFT: low
▸ 4 reusable components found
RicterZ/doujinshi-dl ★ 991 122 APPLICATION

A Python CLI tool for searching, downloading, and organizing doujinshi (self-published manga) from configurable mirror sites. The architecture uses a plugin system defined via abstract base classes (BaseParser, BaseModel, BaseSerializer, BasePlugin) and discovered through Python entry points, allowing support for multiple sites (e.g., nhentai) without modifying the core code. The core package handles CLI argument parsing, asynchronous image downloading via httpx/asyncio with retry and proxy support, export to CBZ/PDF/ZIP, generation of HTML viewers for local browsing, and SQLite-based download history tracking. The codebase is well-structured with clear separation between core utilities and plugin-specific logic, though it contains duplicated viewer template files that indicate incomplete cleanup.

RATING: 7.9/10 MAINT: maintained DRIFT: low
▸ 3 reusable components found
papermark/papermark ★ 9253 1408 APPLICATION

Papermark is an open-source document and data room sharing platform (DocSend alternative) built with Next.js, Prisma, and a modern SaaS stack. It provides secure document sharing with granular access controls (password, email verification, domain allow/deny lists, watermarking, screenshot protection), real-time analytics (page views, video playback, click tracking via Tinybird), and enterprise-grade features like virtual data rooms with folder hierarchies, group permissions, AI-powered document indexing and chat, signing agreements (Documenso integration), workflow automation, and Slack integration. The platform is monetized via Stripe subscriptions with tiered plans and includes a comprehensive billing/cancellation flow. The architecture is a full-stack Next.js application with a mix of Pages Router and App Router, using Prisma for PostgreSQL ORM, Redis for caching/rate limiting/job stores, Trigger.dev for background tasks, Tinybird for analytics pipes, and Vercel Blob/AWS S3 for file storage. Authentication supports NextAuth.js with passkeys, SAML SSO (via BoxyHQ Jackson), and OTP verification. The codebase is organized with a clear separation of enterprise features under an `ee/` directory, reusable UI components (shadcn/ui-based), and extensive SWR hooks for client-side data fetching. The repository demonstrates solid engineering practices with well-structured API routes, RBAC enforcement, and a rich set of utilities. However, it shows signs of technical drift: simultaneous use of Pages Router and App Router creates inconsistency, some API endpoints are large and monolithic, and there is duplication in folder management and export-visits logic. The rapid schema evolution (many Prisma migrations) indicates active development but also potential instability. Overall, it is a production-quality application with strong reusability in its UI components, i18n pattern, and utility libraries.

RATING: 7.8/10 MAINT: active DRIFT: medium
▸ 6 reusable components found
ofou/graham-essays ★ 981 64 APPLICATION

This repository provides a Python CLI tool and Makefile pipeline to scrape all essays from Paul Graham's website (paulgraham.com), convert them to Markdown, and produce an EPUB ebook. The core logic resides in a single script (`graham.py`) that uses `requests`, `BeautifulSoup`, `html2text`, and `htmldate` to download, parse, and date-stamp each essay. A `Makefile` orchestrates the full build: creating a virtual environment, fetching essays, merging them with `pandoc`, and generating the final EPUB with a custom CSS and an iBooks dark-mode patch. The CI workflow (GitHub Actions) runs daily, detects new essays by comparing article counts, and automatically creates a release with the updated EPUB and metadata CSV. The architecture is straightforward—no web server, database, or tests—but the pipeline is robust and well-documented for its single purpose. While the scraper is tightly coupled to Paul Graham's site structure, several components (the iBooks patcher, the footnote conversion function, and the EPUB stylesheet) are cleanly isolated and reusable in other EPUB generation projects.

RATING: 7.8/10 MAINT: active DRIFT: low
▸ 3 reusable components found
artiebits/pdf-to-printer ★ 500 148 APPLICATION

pdf-to-printer is a small, focused Node.js/Electron library that prints PDFs and images to Windows printers by shelling out to a bundled SumatraPDF executable. The public API exposes three async functions: `print()`, `getPrinters()`, and `getDefaultPrinter()`. `print()` validates the target file, builds SumatraPDF command-line arguments from a typed options object (printer, pages, orientation, paper size, duplex, copies, etc.), and executes the binary via `child_process.execFile`. Printer discovery uses PowerShell's `Get-CimInstance Win32_Printer` and parses the formatted text output into structured `Printer` objects with device ID, name, and supported paper sizes. The code is TypeScript with strict mode, unit-tested with Jest, and bundled with webpack for UMD distribution. It is Windows-only by design and throws on other operating systems.

RATING: 7.8/10 MAINT: active DRIFT: low
▸ 2 reusable components found
daronyondem/claude-architect-exam-guide ★ 1106 222 APPLICATION

This repository is a documentation build system for producing a study guide for the Claude Certified Architect - Foundations exam. The core functionality resides in the `exam-preparation-guide.md` source file, which is transformed into PDF and EPUB formats via a Pandoc-based build script. The architecture is straightforward: a shell script (`scripts/build-release-assets.sh`) processes the Markdown with Pandoc, applying styling and metadata from the `publishing/` directory, and outputs artifacts to `dist/`. A GitHub Actions workflow (`.github/workflows/release.yml`) automates the build and release process when version tags are pushed. The system relies on external dependencies like Pandoc, XeLaTeX, and standard TeX Live packages for PDF generation. While not a complex software application, it demonstrates solid documentation engineering practices with a reusable build pipeline and clear separation of concerns between content, styling, and build automation.

RATING: 7.6/10 MAINT: active DRIFT: low
▸ 2 reusable components found
Sicos1977/ChromiumHtmlToPdf ★ 483 86 APPLICATION

ChromiumHtmlToPdf is a .NET library and CLI tool that converts HTML to PDF (and PNG) using headless Google Chrome or Microsoft Edge via the Chrome DevTools Protocol (CDP). The core library (ChromiumHtmlToPdfLib) provides a managed C# API with synchronous and asynchronous methods for conversion, supporting extensive configuration of page settings, headers/footers, margins, paper size, JavaScript execution, and file caching. The console application (ChromiumHtmlToPdfConsole) wraps this library into a command-line tool with over 50 options, enabling batch conversions, multi-threading, and integration into scripts or CI/CD pipelines. The architecture is a two-project solution: a netstandard2.0/2.1 library and a .NET 8 console app packaged as a dotnet tool. Key entry points include the Converter class (ConvertToPdf/ConvertToImage methods) and the console's Program.cs. External dependencies are limited to a Chromium-based browser (Chrome/Edge) installed on the system, plus NuGet packages for JSON serialization, logging abstractions, and image processing (AngleSharp, Magick.NET). The codebase demonstrates solid engineering with reusable components like a file-backed cache, CDP protocol models, and pluggable loggers, but suffers from minor technical debt such as deprecated BinaryFormatter usage, disabled certificate validation in HTTP helpers, and version drift between projects. No automated tests exist, increasing regression risk for a process-heavy library.

RATING: 7.6/10 MAINT: active DRIFT: medium
▸ 3 reusable components found
koodo-reader/koodo-reader ★ 28464 2136 APPLICATION

Koodo Reader is a cross-platform ebook reader application supporting a wide range of formats (EPUB, PDF, MOBI, AZW3, TXT, FB2, CBR/CBZ, MD, DOCX, HTML, etc.). It is built as an Electron desktop app with a React/TypeScript frontend and a separate Go HTTP server for OPDS catalog serving and KOReader sync. The application provides a full-featured reading experience including bookmarks, notes, highlights, text-to-speech (with multiple voice engines), translation and dictionary lookup (via built-in and custom plugins), OCR for scanned PDFs, and cloud sync/backup across many providers (WebDAV, S3, OneDrive, Google Drive, Dropbox, etc.). It also includes a library management system with shelves, tags, search, and import from local files, folders, URLs, and OPDS catalogs. The architecture is a monolith with a clear separation between the Electron main process (Node.js) and the renderer (React), plus an optional Go server for network-facing features. The codebase is large and feature-rich but shows signs of technical debt: widespread use of deprecated React lifecycle methods, heavy reliance on opaque minified libraries (kookit-extra), frequent `as any` type casts, and mixed Chinese/English comments. Despite these issues, the application is actively maintained and offers a robust set of features for ebook enthusiasts.

RATING: 7.5/10 MAINT: active DRIFT: medium
▸ 5 reusable components found
Submitty/pdf-annotate.js ★ 295 55 APPLICATION

pdf-annotate.js is a JavaScript library that provides an annotation layer for PDF.js, enabling users to add various types of annotations (highlight, underline, strikethrough, freehand drawing, text boxes, points, shapes) to PDF documents. The library features a modular architecture with separate concerns for UI interactions, rendering, storage adapters, and accessibility. It integrates with PDF.js to render PDF pages and overlays annotation SVGs, handling coordinate transformations that account for viewport scaling and rotation. The library provides a storage adapter pattern for persisting annotations (with implementations for localStorage), comprehensive UI components for annotation creation and editing, and accessibility features for screen reader users through clever DOM manipulation techniques.

RATING: 7.4/10 MAINT: active DRIFT: medium
▸ 3 reusable components found
tecnickcom/TCPDF ★ 4536 1579 APPLICATION

TCPDF is a PHP library for programmatic PDF generation, originally a monolithic single-file engine. The current version (7.0.7) is a compatibility facade that delegates all rendering to the modern `tecnickcom/tc-lib-pdf` engine, preserving the legacy 291-method public API while the internal engine is replaced. The library is explicitly deprecated and in maintenance-only mode; users are encouraged to migrate to `tc-lib-pdf` directly. It provides a comprehensive set of features for creating PDF documents: text and HTML rendering, images, barcodes (1D and 2D), forms, digital signatures, encryption, PDF/A compliance, and more. The codebase includes a rich test suite (PHPUnit) with a reusable base test class, a smoke test runner for all 68 example scripts, and a method-mapping tool that generates the authoritative documentation of delegation status. The deposit is a library, not a standalone application, and is intended to be integrated into PHP applications via Composer.

RATING: 6.8/10 MAINT: deprecated DRIFT: medium
▸ 3 reusable components found
$ loading more...
$ submit: