
Caly is a lightweight, open-source PDF reader designed for Windows, offering a clean and efficient reading experience. With support for multiple tabs, smooth scrolling, fast navigation, and powerful search, it makes handling PDF documents easy and intuitive. Caly also includes features like text selection, zoom, page rotation, thumbnails, and bookmarks to improve productivity. Its minimal memory footprint ensures fast performance, even with large files. Whether you're reading documents, reviewing content, or managing multiple PDFs at once, Caly provides a modern, responsive interface tailored for everyday use — no installation needed. It's a solid pick if you want a simple, hassle-free PDF reader for Windows.
Key Features
- Tabbed Interface – Open and manage multiple PDF documents in separate tabs with ease.
- Lightning-Fast Navigation – Smooth and responsive page scrolling ensures fast browsing.
- Text Selection & Copy/Paste – Select any text and copy it directly to the clipboard.
- Powerful Search – Instantly find specific words or phrases within any open PDF.
- Thumbnail View – Visually browse document pages with a convenient thumbnail sidebar.
- Bookmark Support – Access and navigate bookmarked sections quickly and efficiently.
- Zoom In/Out – Adjust your view with flexible zoom controls.
- Rotate Pages – Rotate individual pages or the entire document as needed.
- Minimalist UI – Focus on your content with a clean, distraction-free interface.
Caly Pdf Reader 0.3.0.0 changelog:
The latest version of Caly Pdf Reader is available, in two flavours
- Slim: Single file, no installation required. Available for Windows / Linux x64. Get the corresponding zip file.
- Installer: Available for Windows / Linux x64 and arm64. Get the corresponding exe/rpm/deb file.
New features
- Added support for printing documents on Windows, Linux, and macOS.
- Introduced a tiled rasterisation system to improve rendering behavior.
- Added support for embedded PDF files and improved the embedded files tab.
- Added keyboard shortcuts for going to a specific page (Ctrl+G) and for zooming in and out (Ctrl++ / Ctrl+-).
- Added optional UI debug elements in settings, plus a ShowPdfLogs setting that is disabled by default.
- Improved text search UX, bookmark handling, and interactive link display in the bottom bar.
- Added page timeouts for rendering and text-layer generation.
Bug fixes
- Fixed a bookmarks tab regression, including only showing the tab when bookmarks exist and resolving a null-binding issue.
- Fixed visible page jumps when rotating pages.
- Fixed unwanted shifting when zooming out.
- Fixed blank thumbnails and several thumbnail visibility, positioning, and sizing issues.
- Fixed crashes and race conditions when opening files, URLs, and documents, with safer async handling and better failure notifications.
- Fixed disposal and cancellation issues, including leaked resources, disposed token access, and unobserved task exceptions.
- Fixed text-layer issues for annotation-only pages, whitespace handling, type 3 font bounding boxes, and text extraction via /ActualText.
- Fixed Linux printing issues related to PrintColorMode.
- Fixed a window-state bug where the app could revert to minimum size after starting maximized and exiting maximize.
- Fixed CropBox and MediaBox handling.
- Fixed copy behavior that could insert extra spaces.
- UX and behavior improvements
- Improved page navigation with PageUp, PageDown, Home, and End.
- Improved scrolling behavior for documents with pages of different widths.
- Added save and restore of scroll offset when switching tabs.
- Moved left navigation bar visibility and size from document level to app level.
- Improved bookmark highlighting while scrolling through a document.
- Improved flyout behavior for annotations and interactive elements.
- Improved error handling so failed browser, file, or document opens show notifications instead of causing broader app failures.
What's Changed
- Update PdfPig and PdfPig.Rendering.Skia by @BobLd in #105
- Fix bookmarks tab regression and only show if not empty and fix null binding issue by @BobLd in #106
- Disposable on exit by @BobLd in #107
- Add IsAlive property to IRef (0fee13f) by @BobLd in #104
- Increase bottom bar height by @BobLd in #108
- Fix visible pages jump bug on page rotation by @BobLd in #110
- Misc tidy up and bug fixes in PageItemsControl by @BobLd in #111
- Misc tidy up and bug fixes in ThumbnailItemsControl by @BobLd in #112
- Handle pdf embedded files by @BobLd in #113
- Refactor document properties by @BobLd in #114
- Refactor document bookmarks by @BobLd in #115
- Handle text search result and bookmark offset in page by @BobLd in #116
- Show notification on failed OpenBrowser and avoid full app crash by @BobLd in #117
- Improve embedded files tab by @BobLd in #118
- Sanitise file name and handle space in file path by @BobLd in #119
- Update PdfPig and PdfPig.Rendering.Skia by @BobLd in #120
- Misc Task bug fixes and improvements by @BobLd in #121
- Update PdfPig NuGet package by @BobLd in #122
- Update PdfPig submodule by @BobLd in #123
- Make IPdfTextElement implement IBoundingBox by @BobLd in #124
- Fix pages being accessed when not yet loaded by @BobLd in #125
- Do not iterate pages that do not exist yet by @BobLd in #126
- Bug/blank thumbnails 2 by @BobLd in #127
- Revert "Simplify PageItemsControl and deduplicate PostUpdatePagesVisibility" by @BobLd in #128
- Deduplicate PostUpdatePagesVisibility in PageItemsControl by @BobLd in #129
- Deduplicate PostUpdatePagesVisibility() in PageItemsControl by @BobLd in #130
- Refactor page and thumbnail size by @BobLd in #131
- Prevent access to Token from disposed CancellationTokenSource by @BobLd in #132
- Prevent 'Task's exception(s) were not observed' by returning null on binded task results by @BobLd in #133
- Implement Ctrl+G shortcut to go to specific page by @BobLd in #134
- Update several NuGet packages by @BobLd in #135
- Implement Ctrl+'+' and Ctrl+'-' shortcuts to zoom in and out of document by @BobLd in #136
- Make openning files, urls and directory safer by @BobLd in #137
- Fix context flying not closing when created above an annotation by @BobLd in #138
- Allow container nodes for bookmarks by @BobLd in #139
- Show interactive link in bottom bar and get interactive match in PdfTextLayerHelper and misc by @BobLd in #141
- Update PdfPig and PdfPig.Rendering.Skia by @BobLd in #142
- Remove subscriptions to TabDragStarted and TabDragCompleted in PageItemsControl by @BobLd in #143
- Update PdfPig and PdfPig.Rendering.Skia to add Free Form Gouraud shading support by @BobLd in #144
- Update PdfPig.Rendering.Skia and fix bug with DCT filter by @BobLd in #145
- Improve OpenUri() method by @BobLd in #146
- Show corrupted document icon when page loading fails by @BobLd in #147
- Update NuGet packages by @BobLd in #148
- Move thumbnail page number and restore ListBoxItem behaviour by @BobLd in #149
- Update Tabalonia to add horizontal tab scrolling by @BobLd in #150
- Update PdfPig.Rendering.Skia by @BobLd in #151
- Add notifications when file or document uri cannot be openned and use LocalPath to open file. Ensure files and uris are not opened in UI thread by @BobLd in #152
- Add CLAUDE.md by @BobLd in #153
- Ignore ObjectDisposedException in PdfPageService.CancelAndClear by @BobLd in #155
- Improve document and page view models dispose by @BobLd in #157
- Fix text layer with only annotations and no text by @BobLd in #158
- Fix out of range exception in OpenUriAsync by @BobLd in #159
- Avoid over subscription by ensuring pageItem events are properly unsubscribed before subscribing by @BobLd in #161
- Update to Avalonia 12 by @BobLd in #162
- Increase TabsControl RightThumbWidth to account for Avalonia 12 new title bar buttons by @BobLd in #163
- Further Avalonia 12 updates by @BobLd in #164
- Add optional UI debug elements in settings by @BobLd in #165
- Update package dependencies to latest versions by @BobLd in #167
- Update PdfPig.Rendering.Skia by @BobLd in #168
- Update PdfPig.Rendering.Skia by @BobLd in #169
- Update TreeDataGrid NuGet package by @BobLd in #170
- Set TreeDataGrid AutoScrollHorizontally to false by @BobLd in #171
- Set GitHub Sponsors by @BobLd in #172
- Fix unwanted shift when zooming out by @BobLd in #173
- Set X11 EnableDrawnDecorations to true by @BobLd in #174
- Get correct adjusted visible area in thumbnail by @BobLd in #175
- Tidy up logs, improve debug rendering in PageInteractiveLayerControl and remove duplicates in text search by @BobLd in #176
- Save and restore scroll offset on tab switch by @BobLd in #177
- Allow negative Y offset compared to top of page by @BobLd in #178
- Better handle scolling pages with different widths and misc bug fixes by @BobLd in #179
- Remove redundant named mutex when openning a file by @BobLd in #180
- Update external submodules by @BobLd in #181
- Update PdfPig and PdfPig.Rendering.Skia by @BobLd in #182
- Update external submodule by @BobLd in #183
- Update PdfPig.Rendering.Skia and Avalonia by @BobLd in #184
- Add page time out for rendering and text layer by @BobLd in #185
- Update PdfPig.Rendering.Skia and submodules by @BobLd in #186
- Update PdfPig.Rendering.Skia and submodules by @BobLd in #187
- Improve active document after close by @BobLd in #188
- Improve word letters positions by @BobLd in #189
- Improve type 3 font bounding box in text layer by @BobLd in #190
- Update PdfPig by @BobLd in #191
- Update PdfPig and PdfPig.Rendering.Skia by @BobLd in #192
- Update PdfPig and PdfPig.Rendering.Skia by @BobLd in #193
- Implement a tiled rasterisation system by @BobLd in #166
- Add support for printing document (Windows/Linux/MacOS) by @BobLd in #154
- Set PrintDialogWindow WindowDecorations to BorderOnly by @BobLd in #194
- Add AOT config for linux-x64 by @BobLd in #195
- Update SharpIppNext and tidy up printing directories by @BobLd in #196
- Ensure IsPageRendering is set on UI thread and fix picture leak because not being disposed if request cancelled by @BobLd in #197
- Fix pictures leaking by not being properly disposed by @BobLd in #198
- Fix race conditions in HandleSelectedDocumentChangedMessage() by @BobLd in #199
- Update Avalonia, PdfPig.Rendering.Skia and SkiaSharp by @BobLd in #200
- Use marked-content /ActualText when extracting text by @BobLd in #201
- Update PdfPig and PdfPig.Rendering.Skia by @BobLd in #202
- Update PdfPig and PdfPig.Rendering.Skia by @BobLd in #203
- Improve page navigation with pageUp / PageDown / Home / End by @BobLd in #204
- Improve text layer: Do not ignore white space, improve type 3 font bbox by @BobLd in #206
- Remove TODOs from DocumentPropertiesControl by @BobLd in #207
- Ensure the page's progress ring is always visible when it is loading by @BobLd in #208
- Add ShowPdfLogs to CalySettings and disable by default by @BobLd in #209
- Fix bug when app starts with window maximised and reverts to minimum size on maximise exit by @BobLd in #210
- Improve text search UX by @BobLd in #211
- Move left navigation bar visibility and size to app level, instead of document level by @BobLd in #212
- Fix linux printing issue due to PrintColorMode implicit string operator by @BobLd in #213
- Update highligted bookmark when scrolling through documentation by @BobLd in #214
- Update TreeDataGrid, PdfPig and CsWin32 NuGet packages and set Bookmarks data grid to auto scroll by @BobLd in #215
- Update PdfPig.Rendering.Skia by @BobLd in #216
- Set Flyout background colour based on annotation by @BobLd in #217
- Update PdfPig.Rendering.Skia by @BobLd in #218
- Fix CropBox and MediaBox by @BobLd in #219
- Do not add extra spaces if text already contains space when copying by @BobLd in #221
- Update Avalonia, SharpIppNext and CsWin32 by @BobLd in #222
- Update PdfPig and related packages by @BobLd in #223
- Update NuGet packages and bump version by @BobLd in #224
- Update TreeDataGrid NuGet package and fix issue with autoscroll by @BobLd in #225
- Update icons and parcel files by @BobLd in #226
Download: Caly Pdf Reader 0.3.0.0 | Portable | ~30.0 MB (Open Source)
Links: Caly Pdf Home Page | Screenshot | ARM64
Get alerted to all of our Software updates on Twitter at @NeowinSoftware
0 Comments
Load the comments and join the conversation!
Read the comments, ask the editors questions, show respect and join the conversation.