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文档里写入自己的中文信息了

***

因为是商业项目,我不便更详细讨论这个话题

祝各位有需要的朋友们好运

最新文章

  1. 《图形学》实验六:中点Bresenham算法画圆
  2. poj 2739 Sum of Consecutive Prime Numbers 解题报告
  3. SQL语句在OLAP的妙用(多维分析与指标计算)
  4. android模块化app开发-4为APP减负
  5. PHP 字符串常用方法
  6. HUNNU--湖师大--11410--Eligibility
  7. 批处理SQL语句
  8. RTTI-CLASS
  9. iOS 自定义各类bar的属性
  10. django之forms组件
  11. com.javax.servlet 慢慢看完慢慢学完
  12. [CF960G] Bandit Blues
  13. windows php7 安装 mongodb 扩展
  14. KiCad 5.1.0 正式版终于发布
  15. Thinkphp 关联模型
  16. android camera 摄像头预览画面变形
  17. [LeetCode] 261. Graph Valid Tree _ Medium tag: BFS
  18. wubi.exe的工作原理
  19. Springmvc的拦截器执行顺序及各方法作用
  20. 理解HTTP之Content-Type

热门文章

  1. [No000017B]改善C#程序的建议4:C#中标准Dispose模式的实现
  2. [No000012C]WPF(4/7)类型转换器和标记扩展[译]
  3. Xcode报错Expected selector for Objective-C and Expected method body
  4. xcode工程编译错误:"An instance 0xca90200 of class UITableView was deallocated while key value observers were still registered with it"
  5. [development][libhtp] libhtp 启用debug模式
  6. mysql学习【第1篇】:初识MySQL
  7. 图->存储结构->邻接多重表
  8. LeetCode 461 Hamming Distance 解题报告
  9. selenium+xpath在不同层级的写法
  10. beego的https和http同时启用