码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2015-03-11 23:09:17      阅读:3173      评论:0      收藏:0      [点我收藏+]

标签:

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文件,打开如下:

技术分享

全文完!

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

标签:

原文地址:http://www.cnblogs.com/hnlzj/p/4331190.html

(0)
(4)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!