1、网上下载资料,存在百度网盘备份

2、新建MFC对话框,添加一个按钮(点击按钮,生成pdf),运行产生debug版本。

3、文件中的libhpdf.dll拷贝到debug目录下。

4、文件中的libhpdf.lib和include文件夹拷贝到源码目录下。

5、在XXXdlg.cpp下加14/15行。

【MFC笔记】生成PDF文件和操作

 

6、在按钮消息内加如下代码

void CMFCApplication3Dlg::OnBnClickedButton1()
{    

HPDF_Error_Handler error_handler = NULL;
 //1.初始化文档对象////////////////////////////////////////////////////////////////////////////////
    HPDF_Doc pdf;
    pdf = HPDF_New(error_handler, NULL);
    if (!pdf)
    {
        AfxMessageBox("错误:创建PDF失败!");
     }
//2.设置文档对象/////////////////////////////////////////////////////////////////////////////////
     HPDF_SetCompressionMode(pdf, HPDF_COMP_ALL);
    HPDF_SetPageMode(pdf, HPDF_PAGE_MODE_USE_OUTLINE);

    //3.创建Page对象////////////////////////////////////////////////////////////////////////////////
    HPDF_Page page;
    page = HPDF_AddPage(pdf);
    HPDF_Page_SetSize(page, HPDF_PAGE_SIZE_A4, HPDF_PAGE_PORTRAIT);
    ///HPDF_PAGE_SIZE_A4  595*841(in pixel)
    ///HPDF_PAGE_LANDSCAPE A4倒方向 ;HPDF_PAGE_PORTRAIT 正向方向

    ///3.1输出字符串//////////////////////////////////////////////
    CString str_Showtxt;
    HPDF_Page_BeginText(page);
    ///使用条件:当前graphics mode为HPDF_GMODE_PAGE_DESCRIPTION,函数将当前模式改为HPDF_GMODE_TEXT_OBJECT
    ///开始text对象,设置当前text的位置到点(0,0)
    HPDF_Font font;
    /* get default font */
    HPDF_UseCNSFonts(pdf);
    HPDF_UseCNSEncodings(pdf);
    font = HPDF_GetFont(pdf, "SimSun", "GB-EUC-H");///SimSun宋体、SimHei黑体

    ///显示报告标题
    HPDF_Page_SetFontAndSize(page, font, 24);//注:字体显示的起始位置指字体左下角的位置
    HPDF_Page_MoveTextPos(page, HPDF_Page_GetWidth(page) / 4, HPDF_Page_GetHeight(page) - 60);
    /////使用条件:graphics mode of the page is in HPDF_GMODE_TEXT_OBJECT
    /////当前位置(x1,y1),HPDF_Page_MoveTextPos (page, x ,y)移动后的位置(x1+x,y1+y)
    str_Showtxt = "xxx检测结果";
    HPDF_Page_ShowText(page, str_Showtxt);///显示字符串方法1

    CTime Curtime;
    Curtime = CTime::GetCurrentTime();
    CString strCurT, time1, time2;
    time1 = Curtime.Format("%Y-%m-%d,");
    time2 = Curtime.Format("%H:%M:%S");
    strCurT = time1 + time2;
    ///显示测试时间
    HPDF_Page_SetFontAndSize(page, font, 12);
    HPDF_Page_TextOut(page, HPDF_Page_GetWidth(page) * 3 / 4, HPDF_Page_GetHeight(page) - 80, strCurT);///显示字符串方法2

    HPDF_Page_EndText(page);
    ///将graphics mode 改为:HPDF_GMODE_PAGE_DESCRIPTION
    ///必须有HPDF_Page_BeginText (page);HPDF_Page_EndText (page);否则保存PDF失败。


    ///3.2 画线/////////////////////////////////////////////////
    ///画线4步骤:设置、起点、LineTo、Stroke
    int i = 0;
    ///*3.2.1 Draw horizontal lines. */
    ///设置线宽
    HPDF_Page_SetLineWidth(page, 0.5);
    //起点
    HPDF_Page_MoveTo(page, 50, HPDF_Page_GetHeight(page) - 90);//横线1
                                                               //画线
    HPDF_Page_LineTo(page, HPDF_Page_GetWidth(page) - 50, HPDF_Page_GetHeight(page) - 90);

    ///* 3.2.2 Draw vertical lines. */
    HPDF_Page_MoveTo(page, 50, HPDF_Page_GetHeight(page) - 90);//第一根竖线
    HPDF_Page_LineTo(page, 50, HPDF_Page_GetHeight(page) - 495);

    ///画线结束
    ///change the graphics to HPDF_GMODE_PAGE_DESCRIPION
    HPDF_Page_Stroke(page);

    //4.Save PDF//////////////////////////////////////////////////////////////////////////////////////
    ///字符数组拼接字符串的方法:///char fname[256]; strcpy (fname, argv[0]); strcat (fname, ".pdf");
    ///文件夹必须是之前创建好的,如果文件夹不存在,不会自动创建
    ///路径不存在就创建,PathFileExists检验路径是否有效,有效返回true
    //if (!PathFileExists("D:\\MacTestResult\\"))
    //{//当天保存目录
    //    _mkdir("D:\\MacTestResult\\");
    //}
    CString Save_path;
    Save_path = "D:\\MacTestResult\\" + time1 + "xxx.pdf";
    ///
    HPDF_SaveToFile(pdf, Save_path);

    //5.Cleanup////////////////////////////////////////////////////////////////////////////////////////

    HPDF_Free(pdf);

}

7、属性改成多字符集

运行,在D盘新建一个文件夹D:\\MacTestResult。

编译生成,点击按钮,在D:\\MacTestResult生成一个PDF文件

 

【自己的部分】

 

相关文章:

  • 2021-12-16
  • 2021-11-18
  • 2021-12-23
  • 2022-01-14
  • 2021-10-13
  • 2021-06-13
猜你喜欢
  • 2021-11-29
  • 2022-12-23
  • 2022-02-06
  • 2021-12-07
  • 2021-12-15
相关资源
相似解决方案