MFC使用Haru free pdf lib生成pdf文件


MFC使用Haru free pdf lib生成pdf文件

我們先創建一個項目MFCPDFDemo,在上面添加一個編輯框和一個按鈕:

haru free pdf類庫下載地址

這里直接下載dll,如果想以靜態庫的方式使用,得下載源碼自己編譯。
然后把這個dll添加到項目中,怎么添加就不說了吧,還是說一下吧,萬一有新手看不懂呢。
解壓后我們要用到三個東西:
libhpdf.dll
libhpdf.lib
include整個文件夾
解壓后復制libhpdf.dll到項目的release和debug目錄下;
libhpdf.lib和include文件夾直接復制到源文件目錄下;

在MFCPDFDemoDlg.cpp里添加下面兩句:

#include "include/hpdf.h"

#pragma comment(lib, "libhpdf.lib")

 在按鈕的處理函數里添加代碼如下:

void CMFCPDFDemoDlg::OnBnClickedBtnSave()
{
    UpdateData(TRUE);

    const char *page_title = "這個標題居中顯示";

    HPDF_Doc  pdf;
    HPDF_Font font;
    HPDF_Page page;
    char fname[256];

    strcpy (fname, "E:\\");
    strcat (fname, CT2A(m_strPath));
    strcat (fname, ".pdf");

    pdf = HPDF_New (nullptr, nullptr);
    if (!pdf)
    {
        MessageBox(_T("error: cannot create PdfDoc object\n"));
        return;
    }

    /* set compression mode */
    HPDF_SetCompressionMode (pdf, HPDF_COMP_ALL);
    HPDF_STATUS status;
    HPDF_UseCNSFonts(pdf);
    HPDF_UseCNSEncodings(pdf);
    /* create default-font */
    font = HPDF_GetFont (pdf, "SimSun", "GB-EUC-H");

    /* add a new page object. */
    page = HPDF_AddPage (pdf);

    status = HPDF_Page_SetFontAndSize (page, font, 24);
    float tw = HPDF_Page_TextWidth (page, page_title);
    status = HPDF_Page_BeginText (page);
    status = HPDF_Page_TextOut (page, (HPDF_Page_GetWidth(page) - tw) / 2,
        HPDF_Page_GetHeight (page) - 50, page_title);
    status = HPDF_Page_EndText (page);

    /* save the document to a file */
    HPDF_SaveToFile (pdf, fname);

    /* clean up */
    HPDF_Free (pdf);
}

添加完代碼后編譯程序,如果提示strcpy不安全就添加編譯選項:

注意,添加的選項是/D _CRT_SECURE_NO_WARNINGS

之后編譯運行,輸入test,點擊保存pdf:

之后在E:下就可以找到test.pdf文件,打開如下:

全文完!


免責聲明!

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



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