podofo 一点小分享
PDF 的开源库,大多是Java,或C#的,但C++也有一个很不错的PDF开源库:PoDoFo
我司的PDF签章产品中,我就是用这个PoDoFo库来做的底层
但是国外开源库对中文支持都是或多或少有点问题的,这不,今天发现签名annotation中要是写中文就成乱码了
如果你也做PDF的开发,不妨看看下面的内容
一。PODOFO库也是源于linux中开发而来
我们的签章产品是Windows下的,所以,我把这个开源以及依赖库都搬到Windows上来了,但是,依赖众多和库本身也问题不少,我在此不再详细介绍了
二。中文支持-相关方面
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文档里写入自己的中文信息了
***
因为是商业项目,我不便更详细讨论这个话题
祝各位有需要的朋友们好运
最新文章
- 《图形学》实验六:中点Bresenham算法画圆
- poj 2739 Sum of Consecutive Prime Numbers 解题报告
- SQL语句在OLAP的妙用(多维分析与指标计算)
- android模块化app开发-4为APP减负
- PHP 字符串常用方法
- HUNNU--湖师大--11410--Eligibility
- 批处理SQL语句
- RTTI-CLASS
- iOS 自定义各类bar的属性
- django之forms组件
- com.javax.servlet 慢慢看完慢慢学完
- [CF960G] Bandit Blues
- windows php7 安装 mongodb 扩展
- KiCad 5.1.0 正式版终于发布
- Thinkphp 关联模型
- android camera 摄像头预览画面变形
- [LeetCode] 261. Graph Valid Tree _ Medium tag: BFS
- wubi.exe的工作原理
- Springmvc的拦截器执行顺序及各方法作用
- 理解HTTP之Content-Type
热门文章
- [No000017B]改善C#程序的建议4:C#中标准Dispose模式的实现
- [No000012C]WPF(4/7)类型转换器和标记扩展[译]
- Xcode报错Expected selector for Objective-C and Expected method body
- xcode工程编译错误:";An instance 0xca90200 of class UITableView was deallocated while key value observers were still registered with it";
- [development][libhtp] libhtp 启用debug模式
- mysql学习【第1篇】:初识MySQL
- 图->;存储结构->;邻接多重表
- LeetCode 461 Hamming Distance 解题报告
- selenium+xpath在不同层级的写法
- beego的https和http同时启用