App-Calibre Book Management-Linux 安装 + PDF 创建/修改/签名的商业级 C++ 开源库

https://download.calibre-ebook.com/

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


因为是商业项目,我不便更详细讨论这个话题
祝各位有需要的朋友们好运

posted @ 2024-01-07 22:06  abaelhe  阅读(44)  评论(0)    收藏  举报