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

***

因為是商業項目,我不便更詳細討論這個話題

 

祝各位有需要的朋友們好運

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM