Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
104 commits
Select commit Hold shift + click to select a range
8674f3e
doc and rules folder commit
Darvinbond Mar 10, 2026
c185596
Merge vk/ae14-create-pdf-viewe into fix/enhancement
Mar 10, 2026
098f93d
Merge vk/b286-create-web-worke into fix/enhancement
Mar 10, 2026
2227b84
Merge vk/a009-implement-canvas into fix/enhancement
Mar 10, 2026
351e12a
Merge vk/c0cc-build-coordinate into fix/enhancement
Mar 10, 2026
447675a
Merge vk/09fe-implement-svg-re into fix/enhancement
Mar 10, 2026
2ec2b68
Merge vk/b54f-create-dom-text into fix/enhancement
Mar 10, 2026
4365bf0
Merge vk/6ecb-build-search-eng into fix/enhancement
Mar 10, 2026
00727c8
Merge vk/9113-implement-visual into fix/enhancement
Mar 10, 2026
6f14deb
Merge vk/4de8-create-virtual-s into fix/enhancement
Mar 10, 2026
8d555d1
Merge vk/6206-implement-dom-re into fix/enhancement
Mar 10, 2026
9e4abef
Merge vk/239a-port-libpdf-pars into fix/enhancement
Mar 10, 2026
8b5f52c
Merge vk/0299-implement-enhanc into fix/enhancement
Mar 10, 2026
febaf19
Merge vk/c101-implement-authen into fix/enhancement
Mar 11, 2026
37b37ea
Merge vk/8ec1-create-event-sys into fix/enhancement
Mar 11, 2026
e01c532
Merge vk/3ab3-build-resource-l into fix/enhancement
Mar 11, 2026
e4a6d75
Merge vk/0158-implement-zoom-a into fix/enhancement
Mar 11, 2026
b500a2c
Merge vk/5a4d-build-toolbar-an into fix/enhancement
Mar 11, 2026
7e0e177
Merge vk/f3c3-create-comprehen into fix/enhancement
Mar 11, 2026
f9e7dee
Merge vk/3533-build-demo-appli into fix/enhancement
Mar 11, 2026
8baf7a3
Merge vk/d084-fix-duplicate-au into fix/enhancement
Mar 11, 2026
c59f51b
debug dublicate import
Mar 11, 2026
17c843c
Merge vk/26fb-add-missing-fron into fix/enhancement
Mar 11, 2026
e8f690f
Merge vk/26fb-add-missing-fron into fix/enhancement
Mar 11, 2026
3eb4c39
Merge vk/4b77-fix-viewportmana into fix/enhancement
Mar 11, 2026
8e7ccce
Merge vk/4b77-fix-viewportmana into fix/enhancement
Mar 11, 2026
ce02595
Merge vk/4b77-fix-viewportmana into fix/enhancement
Mar 11, 2026
c77679a
Merge vk/4b77-fix-viewportmana into fix/enhancement
Mar 11, 2026
8519480
Merge vk/4b77-fix-viewportmana into fix/enhancement
Mar 11, 2026
40f4096
Merge vk/1c8e-fix-blank-page-r into fix/enhancement
Mar 11, 2026
b8d8881
Merge vk/1c8e-fix-blank-page-r into fix/enhancement
Mar 11, 2026
bc83df5
Merge vk/1c8e-fix-blank-page-r into fix/enhancement
Mar 11, 2026
b2954b7
Merge vk/1c8e-fix-blank-page-r into fix/enhancement
Mar 11, 2026
05857e1
Merge vk/1c8e-fix-blank-page-r into fix/enhancement
Mar 11, 2026
8bfd635
Merge vk/4706-fix-rendering into fix/enhancement
Mar 11, 2026
7673524
Merge vk/a6e4-fix-rendering into fix/enhancement
Mar 11, 2026
2ca088e
Merge vk/4706-fix-rendering into fix/enhancement
Mar 11, 2026
2cf98a3
Merge vk/4706-fix-rendering into fix/enhancement
Mar 11, 2026
d6ef28e
Merge vk/4706-fix-rendering into fix/enhancement
Mar 11, 2026
5196fe2
Merge vk/133c-rendering-types into fix/enhancement
Mar 11, 2026
d1e1627
Merge vk/b33b-rendering-types into fix/enhancement
Mar 11, 2026
0d42010
Merge vk/133c-rendering-types into fix/enhancement
Mar 11, 2026
2901f12
Merge vk/133c-rendering-types into fix/enhancement
Mar 11, 2026
2344196
Merge vk/8b5d-overlappoing-cha into fix/enhancement
Mar 11, 2026
80a2e37
Merge vk/8b5d-overlappoing-cha into fix/enhancement
Mar 11, 2026
4109156
Merge vk/494b-overlappoing-cha into fix/enhancement
Mar 11, 2026
2788fe5
changes
Mar 11, 2026
451d75d
changes
Mar 11, 2026
871e9f0
changes
Mar 11, 2026
935bb4b
Merge vk/8b5d-overlappoing-cha into fix/enhancement
Mar 11, 2026
d9967a1
Merge vk/f7d4-replace-with-pdf into fix/enhancement
Mar 11, 2026
be4dd14
Merge vk/f7d4-replace-with-pdf into fix/enhancement
Mar 11, 2026
ed0e1cf
Merge vk/f7d4-replace-with-pdf into fix/enhancement
Mar 11, 2026
153f026
Merge vk/f7d4-replace-with-pdf into fix/enhancement
Mar 11, 2026
a584a2e
Merge vk/f7d4-replace-with-pdf into fix/enhancement
Mar 11, 2026
ce05544
Merge vk/f7d4-replace-with-pdf into fix/enhancement
Mar 11, 2026
573595e
Merge vk/f7d4-replace-with-pdf into fix/enhancement
Mar 11, 2026
0dacb6b
Merge vk/f7d4-replace-with-pdf into fix/enhancement
Mar 11, 2026
b7461f3
Merge vk/f7d4-replace-with-pdf into fix/enhancement
Mar 11, 2026
1c0d031
Merge vk/f7d4-replace-with-pdf into fix/enhancement
Mar 11, 2026
c7409db
Merge vk/f7d4-replace-with-pdf into fix/enhancement
Mar 11, 2026
3aafe6f
Merge vk/f7d4-replace-with-pdf into fix/enhancement
Mar 11, 2026
47f511c
Merge vk/f7d4-replace-with-pdf into fix/enhancement
Mar 11, 2026
83b91cb
Merge vk/f7d4-replace-with-pdf into fix/enhancement
Mar 11, 2026
66072f7
Merge vk/f7d4-replace-with-pdf into fix/enhancement
Mar 11, 2026
b7b5c2e
Merge vk/f7d4-replace-with-pdf into fix/enhancement
Mar 11, 2026
65af89f
Merge vk/f7d4-replace-with-pdf into fix/enhancement
Mar 11, 2026
bdea021
Merge vk/f7d4-replace-with-pdf into fix/enhancement
Mar 11, 2026
95250f0
Merge vk/f7d4-replace-with-pdf into fix/enhancement
Mar 11, 2026
d8f46ee
Merge vk/f7d4-replace-with-pdf into fix/enhancement
Mar 11, 2026
0c8a562
Merge vk/f7d4-replace-with-pdf into fix/enhancement
Mar 11, 2026
da3d9b3
Merge vk/f7d4-replace-with-pdf into fix/enhancement
Mar 11, 2026
b5cb4e4
Merge vk/f7d4-replace-with-pdf into fix/enhancement
Mar 11, 2026
0b2acf0
Merge vk/f7d4-replace-with-pdf into fix/enhancement
Mar 11, 2026
4fb5baf
Merge vk/f7d4-replace-with-pdf into fix/enhancement
Mar 11, 2026
5bf1c9c
Merge vk/f7d4-replace-with-pdf into fix/enhancement
Mar 11, 2026
cbba385
Merge vk/f7d4-replace-with-pdf into fix/enhancement
Mar 11, 2026
226bdb5
Merge vk/f7d4-replace-with-pdf into fix/enhancement
Mar 11, 2026
b671f08
Merge vk/f7d4-replace-with-pdf into fix/enhancement
Mar 11, 2026
27c3990
Merge vk/f7d4-replace-with-pdf into fix/enhancement
Mar 11, 2026
251d50b
Merge vk/f7d4-replace-with-pdf into fix/enhancement
Mar 11, 2026
b15b56c
Merge vk/f7d4-replace-with-pdf into fix/enhancement
Mar 11, 2026
ecaf1f0
Merge vk/f7d4-replace-with-pdf into fix/enhancement
Mar 11, 2026
7cfc867
Merge vk/f7d4-replace-with-pdf into fix/enhancement
Mar 11, 2026
8a06ce0
Merge vk/f7d4-replace-with-pdf into fix/enhancement
Mar 11, 2026
73a1b94
Merge vk/f7d4-replace-with-pdf into fix/enhancement
Mar 11, 2026
94b9425
Merge vk/f7d4-replace-with-pdf into fix/enhancement
Mar 11, 2026
33ca7c7
Merge vk/f7d4-replace-with-pdf into fix/enhancement
Mar 11, 2026
2c81fe6
Merge vk/56e1-remove-all-debug into fix/enhancement
Mar 12, 2026
14bf132
Merge vk/d6c1-demo2-from-scrat into fix/enhancement
Mar 13, 2026
b8cae57
Merge vk/d6c1-demo2-from-scrat into fix/enhancement
Mar 13, 2026
c2274d5
Merge vk/d6c1-demo2-from-scrat into fix/enhancement
Mar 13, 2026
e4a796f
Merge vk/d6c1-demo2-from-scrat into fix/enhancement
Mar 13, 2026
906b7ef
Merge vk/d6c1-demo2-from-scrat into fix/enhancement
Mar 13, 2026
fdbda62
Merge vk/767b-implement-boundi into fix/enhancement
Mar 16, 2026
777f2f6
Merge vk/21db-implement-text-s into fix/enhancement
Mar 16, 2026
ab76b99
Merge vk/6a37-implement-core-t into fix/enhancement
Mar 16, 2026
6263efe
Merge vk/ef91-implement-coordi into fix/enhancement
Mar 16, 2026
934e212
Merge vk/8933-integrate-boundi into fix/enhancement
Mar 16, 2026
80dc401
Merge vk/8983-create-react-com into fix/enhancement
Mar 16, 2026
1a15988
changes
Mar 16, 2026
e0ec278
Merge branch 'main' into fix/enhancement
dvvebond Mar 16, 2026
58946b8
changes
Mar 16, 2026
3218f6e
changes
Mar 16, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3,112 changes: 3,112 additions & 0 deletions .raid/debug_564ac3ff-9ce6-451b-83a8-ab68d91f9ac1.log

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions .raid/debug_cbd3e182-c697-4a75-90dc-43f9b04bad06.log
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
[2026-03-11T09:54:34+01:00] DEBUG: Fixed duplicate AuthenticationError export - renamed to AuthHandlerAuthenticationError (auth-handler.ts:76) and ResourceLoaderAuthenticationError (resource-loader.ts:41)
22 changes: 22 additions & 0 deletions .raid/debug_d060f192-221b-4546-b090-6db17f1bebb7.log
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
2026-03-11T10:16:53+01:00 Debug setup complete - ViewportManager fix applied to demo.ts

=== FIX APPLIED ===
Root cause: demo/demo.ts was calling createViewportManager() with incorrect parameters.
- Missing required 'scroller' parameter (VirtualScroller)
- Missing required 'renderer' parameter (BaseRenderer)
- Using non-existent 'maxConcurrent' instead of 'maxConcurrentRenders'
- Using non-existent 'prerenderAhead' parameter

Fix applied:
1. Added 'scroller: state.virtualScroller' parameter
2. Created renderer with createCanvasRenderer() and added 'renderer' parameter
3. Changed 'maxConcurrent' to 'maxConcurrentRenders'
4. Removed non-existent 'prerenderAhead' parameter
5. Fixed method calls: destroy() -> dispose(), invalidateAll() -> invalidateVisiblePages()
6. Fixed event listener: 'pageready' -> 'pageRendered'

Console logging instrumentation added with [DEBUG_INSTRUMENTATION] marker for browser testing.
2026-03-11T10:19:25+01:00 Fixed: state.virtualScroller.update() -> await state.viewportManager.initialize()
2026-03-11T10:25:36+01:00 Fixed: Added missing getPageRotation() method to createPageSource() in demo.ts
2026-03-11T10:28:34+01:00 Fixed pageRendered handler - now clones canvas since renderer reuses internal canvas
2026-03-11T10:35:50+01:00 Demo now creates visible page containers with placeholders. Renderer is a stub - actual PDF content rendering not yet implemented.
2 changes: 2 additions & 0 deletions .raid/debug_e9e64843-ab12-43f2-bd6b-fe12f31fdae8.log
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
[2026-03-11T10:02:02+01:00] DEBUG: Added frontend search exports to src/index.ts - createSearchEngine, SearchEngine, SearchResult, TextProvider now available from main entry point
[2026-03-11T10:02:32+01:00] DEBUG: Typecheck ran - frontend search exports fix verified. No import errors for createSearchEngine, SearchEngine, SearchResult, or TextProvider from '../src'. Remaining errors are DOM-related config issues unrelated to the export bug.
10 changes: 10 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -166,6 +166,16 @@ Real-world PDFs are messy. Export a document through three different tools and y
- **High-level**: `PDF`, `PDFPage`, `PDFForm` for common tasks
- **Low-level**: `PdfDict`, `PdfArray`, `PdfStream` for full control

## Demo

Run the interactive PDF viewer demo to explore LibPDF's viewing capabilities:

```bash
bun run demo
```

See [demo/README.md](demo/README.md) for features and keyboard shortcuts.

## Documentation

Full documentation at [libpdf.dev](https://libpdf.dev)
Expand Down
110 changes: 92 additions & 18 deletions bun.lock

Large diffs are not rendered by default.

75 changes: 75 additions & 0 deletions demo/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
# LibPDF Viewer Demo

A comprehensive demonstration of the @libpdf/core PDF viewing capabilities.

## Features

- **PDF Loading**: Open PDF files via file picker or drag-and-drop
- **Page Navigation**: First, previous, next, last page controls with keyboard shortcuts
- **Zoom**: Preset zoom levels (50%-200%), fit-to-width, fit-to-page, and manual zoom
- **Rotation**: 90-degree clockwise and counter-clockwise rotation
- **Text Search**: Case-sensitive and whole-word search with result navigation
- **Text Selection**: Select and copy text from rendered pages
- **Virtual Scrolling**: Efficient rendering of large documents
- **Responsive Layout**: Works on desktop and mobile devices

## Running the Demo

### Using Bun (recommended)

```bash
# From the core directory
bun run demo
```

This starts a development server with hot reloading at `http://localhost:3000`.

### Using a Static Server

```bash
# Build and serve
bun run demo:serve
```

Then open `http://localhost:3000` in your browser.

## Keyboard Shortcuts

| Key | Action |
| --------------------------- | ---------------------- |
| `Left Arrow` / `Page Up` | Previous page |
| `Right Arrow` / `Page Down` | Next page |
| `Home` | First page |
| `End` | Last page |
| `Ctrl/Cmd + =` | Zoom in |
| `Ctrl/Cmd + -` | Zoom out |
| `Ctrl/Cmd + F` | Focus search |
| `Enter` | Next search result |
| `Shift + Enter` | Previous search result |

## Architecture

The demo integrates these @libpdf/core components:

- `PDF` - Document loading and parsing
- `VirtualScroller` - Efficient page virtualization
- `ViewportManager` - Visible page management
- `CanvasRenderer` - Canvas-based page rendering
- `TextLayerBuilder` - Text selection overlay
- `SearchEngine` - Full-text search

## Browser Support

- Chrome/Edge 90+
- Firefox 90+
- Safari 14+

## File Structure

```
demo/
index.html - Main HTML entry point
demo.ts - TypeScript application code
styles.css - Demo-specific styles
README.md - This file
```
Loading