Caly Pdf Reader is a cross-platform pdf document reader application written in C# (net8.0 with AOT), only using Avalonia & SkiaSharp + PdfPig for the UI / pdf rendering part. It is released under GPL-3.0 license.
Important
The development is currently in alpha.
The aim is to develop a C# cross-platform open source pdf reader/viewer application. Below is a table of the current progress:
Task | Priority | Progress | Comment | TODO |
---|---|---|---|---|
View pdf document | High | Done | Performance to improve | |
Open many documents with tab system | High | Done | Use Tabalonia | Bugs to fix - see #11 |
Navigate and zoom document (go to page, zoom in/out, etc.) | High | Done | Performance to improve | |
Text selection | High | Done | Improve rendering by merging words into lines | |
Copy text selection to clipboard | High | Done | ||
Search text | High | Done | Improve word matching | |
Printing | High | Work in Progress | See branch. Way more complicated than expected without using System.Drawing . See https://github.com/Zelenov/SharpIpp dotnet/maui#9931 https://devblogs.microsoft.com/xamarin/native-printing-with-android/ |
|
Run JavaScript embedded in a PDF | Won't do | Not started | Use Jint | |
UI / UX | Low | Work in Progress | How the app feels | Need better colors, icons, transitions, etc. |
OCR | Low | Not started | Use RapidOCR onnx models, see RapidOcrNet | |
Table extraction | Low | Not started | Use tabula-sharp or camelot-sharp |
As of now, only the Windows, Linux and Android versions have been tested. Android version runs, but is not optimised for the platfotm. Better mobile support is planned, including iOS.
Feel free to contribute to the project! You can also help Caly Pdf Reader by contributing to:
Caly Pdf Reader uses submodules, you will need to run the following after cloning it:
git submodule update --init --recursive
Caly Pdf Reader is a net8.0 application with Native AOT (ahead of time compilation) enabled. To publish the application, run the following (example for Windows):
dotnet publish -r win-x64 -c Release -f net8.0