前言

今天大姚给大家分享一款 .NET 开源免费、轻量快速、跨平台的 PDF 阅读器:Caly。

项目介绍

Caly 是一款 .NET 开源免费(MIT license)、轻量快速、跨平台的 PDF 阅读器,工具性能和效率是其核心设计理念。Caly 利用 Avalonia UI、SkiaSharp 和 PdfPig 的强大功能,可在 Windows、macOS 和 Linux 上无缝运行。

注意:当前项目目前处于 alpha 阶段。

跨平台兼容性

Caly 目前已经测试了 Windows、Linux 和 Android 版本。虽然 Android 版本可以运行,但尚未针对该平台进行优化。未来计划提供更好的移动支持,包括 iOS。

主要功能

  • 极简用户界面:享受干净、无干扰的阅读体验。
  • 标签页界面:轻松管理多个 PDF 文档,每个文档在不同的标签页中打开。
  • 极速导航:流畅地浏览页面,享受快速的翻页体验。
  • 文本选择与复制/粘贴:从 PDF 文档中选择、复制并粘贴文本到剪贴板。
  • 强大搜索功能:使用内置搜索功能快速定位文档中的特定文本。支持 Ctrl+F 快捷键。
  • 缩略图视图:通过直观的缩略图侧边栏获取所有页面的视觉概览。
  • 书签支持:通过书签快速访问重要部分。
  • 缩放功能:支持文档的放大和缩小。可以按住 Ctrl 键同时使用滚轮,或者使用顶部菜单中的“缩放”按钮。
  • 页面旋转:旋转文档的所有或单个页面。可以鼠标右键点击并选择旋转选项之一,或使用顶部菜单中的“旋转”按钮。

项目源代码

Windows运行效果

项目源码地址

更多项目实用功能和特性欢迎前往项目开源地址查看,别忘了给项目一个Star支持。

优秀项目和框架精选

该项目已收录到C#/.NET/.NET Core优秀项目和框架精选中,关注优秀项目和框架精选能让你及时了解C#、.NET和.NET Core领域的最新动态和最佳实践,提高开发工作效率和质量。坑已挖,欢迎大家踊跃提交PR推荐或自荐(让优秀的项目和框架不被埋没)。

一款基于 .NET 开源免费、轻量快速、跨平台的 PDF 阅读器的更多相关文章

  1. 免费,小巧好用的pdf阅读器以及护眼模式颜色代码

    免费,迷你,小巧pdf阅读器 https://www.sumatrapdfreader.org/downloadafter 网络上流行的眼神RGB值和颜色代码 绿色豆沙可以有效减轻长时间使用电脑的眼睛 ...

  2. WPF中查看PDF文件 - 基于开源的MoonPdfPanel (无需安装任何PDF阅读器)问题汇总

    致敬Yang-Fei—有一个简单的用法示例: http://www.cnblogs.com/yang-fei/p/4885570.html. 写MoonPdfPanel的哥们关于这个开源软件的实现介绍 ...

  3. PintJS – 轻量,并发的 GruntJS 运行器

    PintJS 是一个小型.异步的 GruntJS 运行器,试图解决大规模构建流程中的一些问题. 典型的Gruntfile 会包括 jsHint,jasmine,LESS,handlebars, ugl ...

  4. 使用C#开发pdf阅读器初探(基于WPF,没有使用开源库)

    前言 pdf是最流行的版式格式文件标准,已成为国际标准.pdf相关的开源软件非常多,也基本能满足日常需要了.相关商业软件更是林林总总,几乎应有尽有!似乎没必要自己再独立自主开发!但,本人基于以下考虑, ...

  5. Linux下一款可以使用命令行的pdf阅读器

    Zathura是linux下一款用命令行控制打pdf阅读器,并且基本打使用方法和vim很相似.对于喜欢键盘操作的用户来说的确是一个不错的选择. ubuntu下的安装命令: sudo apt-get i ...

  6. 九款免费轻量的 AutoCAD 的开源替代品推荐

    随着各行各业的发展,CAD已经广泛应用于工业.服装.建筑以及电子产业等设计领域.AutoCAD 是一种流行的商业CAD软件,虽然很强大,但并不是免费的.因此本文推荐了几种免费重量轻的CAD工具/软件, ...

  7. vue-swiper 基于Vue2.0开发 轻量、高性能轮播插件

    vue-swiper 基于 Vue2.0 开发,基本满足大部分功能 轻量.高性能轮播插件.目前支持 无缝衔接自动轮播.无限轮播.手势轮播 没有引入第三方库,原生 js 封装,打包之后只有 8.2KB ...

  8. 开源免费且稳定实用的.NET PDF打印组件itextSharp(.NET组件介绍之八)

    在这个.NET组件的介绍系列中,受到了很多园友的支持,一些园友(如:数据之巅. [秦时明月]等等这些大神 )也给我提出了对应的建议,我正在努力去改正,有不足之处还望大家多多包涵.在传播一些简单的知识的 ...

  9. 基于.netcore 开发的轻量Rpc框架

    Rpc原理详解 博客上已经有人解释的很详细了,我就不在解释了.传送门 项目简介 项目是依赖于.net core2.0版本,内部都是依靠IOC来实现的,方便做自定义扩展.底层的通信是采用socket,s ...

  10. 基于 Node.js 的轻量「持续集成」工具 CIZE

    CIZE 是什么? CIZE 是一个「持续集成」工具,希望能让开发人员更快捷的搭建一个完整.可靠.便捷的 CI 服务. 甚至可以像 Gulp 或 Grunt 一样,仅仅通过一个 cizefile.js ...

随机推荐

  1. SVN之“解决SVN清理失败问题”

    解决SVN清理失败,显示乱码问题 更新SVN时,提示要清理,但是清理失败,此时什么也操作不了,以下就是解决方案. 情况如图: 解决方案一: 下载splite3 新建一个临时文件夹,使用英文名字,将解压 ...

  2. 转|如何从 100 亿 URL 中找出相同的 URL

    题目描述 给定 a.b 两个文件,各存放 50 亿个 URL,每个 URL 各占 64B,内存限制是 4G.请找出 a.b 两个文件共同的 URL. 解答思路 每个 URL 占 64B,那么 50 亿 ...

  3. HTTP请求使用http、socks代理demo,包含有认证和无认证

    package cn.daenx.myadmin.email.utils; import cn.hutool.http.HttpRequest; import cn.hutool.http.HttpU ...

  4. AtCoder Beginner Contest 381-E

    AtCoder Beginner Contest 381-E Problem 一个长度为奇数.最中间的那个字符是 /.左边所有字符都是都是 1.右边所有字符都是 2 的字符串被称为11/22 字符串. ...

  5. NOIp2020复赛游记

    NOIp2020复赛游记 T1 他们用的都是拓扑排序,但是我用的是\(bfs\)+\(online\)标记\(\dots\dots\)样例当然能过,但是会被卡成暴力. 不过,他们有人用拓扑时,要么把入 ...

  6. git创建远程分支

    如果有个叫 serverfix 的分支需要和他人一起开发,有两种方式可以创建远程分支origin/serverfix 1.git push origin serverfix 2.git push or ...

  7. 使用Git修改文件名字的大小写

    问题背景 最近发现window对文件名的大小写不敏感,如果想把文件夹start,修改成Start,让git有变化. 应该怎么做呢,直接看黑框操作步骤 解决方案 第一步:将文件(夹)更改大小写 $ mv ...

  8. Session的妙用

    Session 就是浏览器从开启到关闭(或者是到Session过期)的整个过程 我们可以通过Session对象来拿到我们之前已经输入过的东西 默认设置Session过期的时间:这是真实业务的需求: & ...

  9. 亚太唯一!阿里云Serverless计算产品进入Forrester领导者象限

    近日,全球权威咨询机构Forrester发布Serverless开发平台评估报告<Forrester Wave: Serverless Development Platforms, Q2 202 ...

  10. html背景图片居中

    * { margin: 0; padding: 0 } .box { width: 100%; height: 1728px; border: 1px solid rgba(0, 128, 0, 1) ...