zoukankan      html  css  js  c++  java
  • 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文档里写入自己的中文信息了

    ***

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

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

  • 相关阅读:
    shiro登录验证原理
    注解 java.lang.annotation.Inherited 介绍
    Spring Boot默认Initializer(1)——ConfigurationWarningsApplicationContextInitializer
    Java的static类
    Spring Boot中的initializers的作用分析
    2. Spring Boot项目启动原理初探
    1.Spring Boot入门及其jar包依赖模型分析
    关于正则式中的 |
    iOS :ViewDidAppear
    Xcode
  • 原文地址:https://www.cnblogs.com/woodzcl/p/7731614.html
Copyright © 2011-2022 走看看