wmjordan / PDFPatcher

PDF补丁丁——PDF工具箱,可以编辑书签、剪裁旋转页面、解除限制、提取或合并文档,探查文档结构,提取图片、转成图片等等
https://pdfpatcher.cnblogs.com/
9.23k stars 1.26k forks source link
pdf pdf-converter pdf-document-processor pdf-generation

PDF 补丁丁(PDFPatcher)

感谢您关注 PDF 补丁丁,请在使用软件或源代码前阅读本说明和授权协议。本软件及源代码采用 AGPL+“良心授权”协议——用户每次使用本软件后如有所获益,应行一善事;如使用源代码开发了新的软件并获得收益,应将收益中不低于千分之一的金额捐赠给社会的弱势群体

功能简介

PDF 补丁丁是一个 PDF 处理工具。它具有以下功能:

授权协议

《PDF 补丁丁》软件(以下简称本软件)受著作权法及国际条约条款和其它知识产权法及条约的保护。 本软件对于最终用户免费。由于本软件使用了带有 AGPL 条款的第三方开源组件,因此,本软件及其源代码的使用协议也基于 AGPL。另外还带有如下附加条件。在遵守本软件的前提条件下,你可以在遵循本协议的基础上自由的使用和传播它,你一旦安装、复制或使用本软件,则表示您已经同意本协议条款。如果你不同意本协议,请不要安装使用本软件,也不应利用其源代码。

附加条件: 每一个使用本软件的用户,如果本软件帮助了您,每使用本软件后,您应当做 1 件善事。善事无分大小,有心则行。例如:

  1. 如果您的父母在身边,你可以为您的父母做一顿美味的饭菜,或者为他们按摩、洗脚;如果他们身处远方,你可以向他们发起通话,问候他们的健康和生活。
  2. 在大雨滂沱的时候,如果您有雨伞,可与同路的人共享;在烈日当空的时节,如果您看到环卫工人太阳下工作,您可以为他们买一瓶水送给他们;在拥挤的公共交通工具上,或在公共场合排队等候之际,如果您有座位,可以让给老人、孕妇或提着重物的人就坐。
  3. 您可以用您擅长的技能,为身边的人排难解困;您可以将您的知识,分享给其他人,让他们有所获益;您可以向比您困难的人捐资赠物。
  4. 如果您觉得这个软件真的好用,请将它的使用方法介绍给别人,让别人也通过使用本软件而得到好处;或者将其它您觉得好用的软件介绍给别人。

如果您无法做到使用本软件后做 1 件善事,请记在心中。在有机会的时候,多行善积德。本用户协议之遵循与否,全在于您的良心。是为“良心授权”。

相关定义:

  1. 软件:软件是指《PDF 补丁丁》软件以及它的更新、产品手册,以及在线文档等相关载体。
  2. 限制:你可以使用本软件的源代码开发应用程序(自由、共享或商用),也可以任意方式分发数量不限的本软件的完整拷贝,但前提是: ① 你分发软件时必须提供本软件的完整版本,未经许可不得对软件乃至它的安装程序做任何修改; ② 你分发软件时不能更改本授权协议; ③ 你如果在商业性宣传活动、产品中附加本软件,应当获得著作权人的书面许可; ④ 你如果利用本软件的源代码编写了其它软件,并且产生了销售收入,应当将该软件销售收入不低于千分之一的金额捐献给社会上的弱势群体。
  3. 支持:软件会由于用户的需求而不断更新,著作权人将提供包括用户手册、电子邮件等各种相关信息支持,但软件不确保支持内容和功能不发生变更。
  4. 终止:当你不同意或者违背本协议的时候,协议将自动终止,你必须立即删除本软件产品。
  5. 版权:本软件及源代码受著作权法及国际条约条款和其它知识产权法及条约的保护。
  6. 免责:对于本软件安装、复制、使用中导致的任何损失,本软件及著作权人不负责任。

常用的 PDF 开源组件简介

PDF 文档的规范(ISO 32000-1:2008 《Document management — Portable document format — Part 1:PDF 1.7》)可从网上找到,一般来说,它是 PDF 处理程序开发者的必读文献。

PDF 文档格式中涉及印刷领域的多项技术,并有其独特的文档结构,还使用了多种数据压缩算法。要从零开始编写 PDF 文档的处理程序,对于一般人而言,通常是困难而不太现实的。PDF 补丁丁使用 .NET Framework 开发,主要采用 iText 和 MuPDF 这两个开放源代码的组件库来处理 PDF 文档。

前者是 .NET 组件,与 PDF 主程序具有较好的互操作性,并且在解析、生成和修改 PDF 文档,以及嵌入 TTF 字体子集这些功能上,优胜于后者。

后者采用 C 语言开发并编译,与前者相比,其最大的优点是具有渲染 PDF 文档为位图的功能。MuPDF 编译出来的动态组件库可在作者另一个开放源代码库 SharpMuPDF 下载。PDF 补丁丁通过 P/Invoke 技术调用该组件库的功能。

除了 PDF 开源组件之外,程序还使用了其它优秀开源组件。例如 ObjectListView 这个强大的列表控件、FreeImage 来读取和解码各种类型的点阵图像文件、Cyotek 的 ImageBox 用于显示渲染好的 PDF 文档页面、TabControlExtra 用于构建选项卡式文档界面、HTMLRenderer 用于显示 HTML 网页界面等等。

源代码的结构

运行环境

联系作者

除第三方组件外,本软件的源代码完全开放:

https://github.com/wmjordan/PDFPatcher

https://gitee.com/wmjordan/pdfpatcher

建议通过开放源代码网站通过提交 issue 的方式提交您的建议或需求。因日常工作繁忙,暂不提供加 QQ 或微信咨询的服务,敬请谅解。

在邮件或消息中,请注明你的版本号,附上截图和附件,详细说明你遇到的问题。

如遇到需要提供附件的情况,请把它搞小一点。一般情况下,最好不要发送超过 10M 的附件。