App-Calibre Book Management-Linux 安装 + PDF 创建/修改/签名的商业级 C++ 开源库
https://download.calibre-ebook.com/
- PoDoFo PDF 开源库:
apt install zlib1g-dev libssl-dev libidn-dev libuchardet-dev libjpeg-dev libtiff-dev libpng-dev libfreetype-dev libpango1.0-dev libfontconfig-dev libxft-dev libhyphen-dev libsqlite3-dev
pip install -U sip pyqt6 pyside6 shiboken6
apt install pkg-config uchardet python3-pkgconfig qmake6 python3-pyqt6.sip python3-pyqtbuild python3-sipbuild python3-stemmer libstemmer-dev libhunspell-dev libhunspell-dev libusb-dev libusb-1.0-0-dev libmtp-dev
python3 setup.py build
python3 setup.py install
Reviews From Customers:
PDF 的开源库,大多是Java,或C#的,但C++也有一个很不错的PDF开源库:PoDoFo, 我司的PDF签章产品,我就是用这个PoDoFo库来做的.
中文支持:
1 要向PDF中写文字信息,要有几个类涉入
1.1 PdfFont
1.2 PdfPainter
1.3 PdfEncodingFactory
2 支持中文的编码器只有 PdfEncodingFactory::GlobalIdentityEncodingInstance();
3 创建字体时要设置字体的编码器(中文编码器)
const PdfEncoding* pp = PdfEncodingFactory::GlobalIdentityEncodingInstance();
PoDoFo::PdfFont *font = document.CreateFont(pszFontName, false, false, false, pp);
4 PdfPainter设置字体和字体颜色
painter.SetFont(font);
painter.SetColor(r, g, b);
5 中文信息使用前要转码成UTF8格式才能正确写入
PdfString pdfstr((pdf_utf8*)siText);
painter.DrawMultiLineText(fImageLeft, fImageTop, fImageWidth, fImageHeight, pdfstr);
Finally:
如果用好,你已经在PDF文档里写入自己的中文信息
因为是商业项目,我不便更详细讨论这个话题
祝各位有需要的朋友们好运
App-Calibre Book Management-Linux 安装 + PDF 创建/修改/签名的商业级 C++ 开源库的更多相关文章
- linux安装mysql以及修改密码和重启mysql等相关命令
Linux/UNIX 上安装 MySQL Linux平台上推荐使用RPM包来安装Mysql,MySQL AB提供了以下RPM包的下载地址: MySQL - MySQL服务器.你需要该选项,除非你只想连 ...
- linux 安装mysql后修改密码出现问题
新安装的mysql 执行命令时候出现错误: 一 错误信息: ERROR 1045 (28000): Access denied for user 'mysql'@'localhost' (using ...
- Linux安装Oracle 11G过程(测试未写完)
一.简介 Oracle数据库在系统运维中的重要性不言而喻,通过熟悉Oracle的安装来加深对操作系统和数据库知识的了解.Linux安装Oracle前期修改linux内核参数很重要,其实就是linux下 ...
- 【RAC】 RAC For W2K8R2 安装--dbca创建数据库(七)
[RAC] RAC For W2K8R2 安装--dbca创建数据库(七) 一.1 BLOG文档结构图 一.2 前言部分 一.2.1 导读 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可 ...
- linux安装oracle11g
准备oracle安装文件 Oracle11gR2包含两个文件linux_11gR2_database_1of2.zip和linux_11gR2_database_2of2.zip,将这两个文件通过SS ...
- Symantec Backup Exec 2012 Agent For Linux安装
Backup Exec 2012 介绍 Backup Exec 2012 是一种为虚拟和物理环境提供保护的集成产品,能够简化备份和灾难恢复,并提供了无可匹敌的恢复功能.借助于强大的 Symantec ...
- Oracle 11.2.4.0 ACTIVE DATAGUARD 单实例安装(COPY创建备库)
Oracle 11.2.4.0 ADG 单实例安装(COPY创建备库) 规划: 主: OS: Linux Centos 6.5 X64 hostname:ORA11G-DG1 ipaddress:19 ...
- RedHat Linux 安装oracle11g
1.准备oracle安装文件Oracle11gR2包含两个文件linux_11gR2_database_1of2.zip和linux_11gR2_database_2of2.zip,将这两个文件通过S ...
- linux 安装oracle 11g
安装环境 Linux服务器:SuSe10 sp2 64位 Oracle服务器:Oracle11gR2 64位 系统要求 Linux安装Oracle系统要求 系统要求 说明 内存 必须高于1G的物理内存 ...
- C++框架_之Qt的开始部分_概述_安装_创建项目_快捷键等一系列注意细节
C++框架_之Qt的开始部分_概述_安装_创建项目_快捷键等一系列注意细节 1.Qt概述 1.1 什么是Qt Qt是一个跨平台的C++图形用户界面应用程序框架.它为应用程序开发者提供建立艺术级图形界面 ...
随机推荐
- C# 线程(二)——Thread学习
参照:C#多线程 - .NET开发菜鸟 - 博客园 (cnblogs.com) C# Thread 线程状态知识 - 大圣的笑 - 博客园 (cnblogs.com) 背景: 在.NET Framew ...
- 🧠 30 个 MCP 项目创意(附完整源码)
MCP(Model Context Protocol)是一种新兴的开放协议,旨在标准化应用程序如何向大型语言模型(LLMs)提供上下文和工具.它允许 AI 代理与实际工具和应用程序交互,从而实现复杂的 ...
- MCP SSE交互完整过程
有关MCP的介绍文章很多,本文不细说,做一个时序图将完整过程说清楚.MCP协议主要通过两种技术实现:标准输入输出(stdio)和服务器发送事件(SSE),stdio(标准输入输出)是MCP协议在本地或 ...
- MethodImpl优化性能
参数解释 MethodImplOptions.AggressiveInlining:请求编译器在可能的情况下对方法进行内联. MethodImpl:这是一个属性,允许开发者为方法指定特定的实现行为,比 ...
- SpringBoot项目中model层、Dao层、Mapper层、controller层、service层、entity层作用
1model(entity) model是模型的意思,与entity.domain.pojo类似,是存放实体的类,类中定义了多个类属性,并与数据库表的字段保持一致,一张表对应一个model类. 主要用 ...
- netcore微服务Polly 实现熔断与降级机制
Polly的基本使用 Polly是一种.NET弹性和瞬态故障处理库,允许我们以非常顺畅和线程安全的方式来执诸如行重试,断路,超时,故障恢复等策略. Polly针对对.NET 4.0,.NET 4.5和 ...
- gitea服务的搭建
gitea服务的搭建 gitea是一个轻量级的Git服务器,可以在Linux.Windows和MacOS等平台上运行.gitea提供了一个简洁的Web界面,方便用户管理代码仓库.团队协作和代码审查.g ...
- FPGA使用两个HC595驱动8位数码管
FPGA使用两个HC595驱动8位数码管 本文章给出使用FPGA3根线来驱动8位数码管的示例代码,输入为disp_data,共7*8=56位,输出输入如图所示. 硬件方面参数 该程序只能控制数码管的7 ...
- PHP桶排序:优化大数据集的高效算法解析与实践
本文由 ChatMoney团队出品 本文将介绍一种在 PHP 中实现的高效排序算法--桶排序.通过使用桶排序,可以快速地对大数据集进行排序,特别是在数据分布均匀的情况下.文章将简要介绍桶排序的原理,并 ...
- RabbitMQ中间件
RabbitMQ 配置环境 安装 erlang环境以及RabbitMQ RabbitMQ端口号: 5672 去官网下载 https://www.rabbitmq.com 然后重启RabbitMQ服务 ...