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

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

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

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

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

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

 

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文件

 

【自己的部分】

 

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MFC是Microsoft Foundation Classes的缩写,是一种用于开发Windows桌面应用程序的框架。要在MFC中显示PDF文件,可以使用Adobe Acrobat Reader的COM组件。 首先,需要在项目中引入Adobe Acrobat Reader的COM组件。可以通过右键单击项目名称,选择“添加” -> “引用”,然后在COM选项卡中搜索并选择“Adobe Acrobat 7.0 Browser Control Type Library”(或更高版本)。 接下来,在需要显示PDF文件的对话框或窗口类中,添加一个控件来承载PDF文件。可以选择一个或多个控件,例如静态文本框、Picture控件等。在需要显示PDF的位置,添加一个控件。 在对话框或窗口类的成员函数中,使用以下代码来加载和显示PDF文件: ```cpp // 声明变量 CAxWindow pdfControl; // PDF控件名称 CRect rect; // 控件矩形位置和大小 // 获取控件位置和大小 GetDlgItem(IDC_PDF_CONTROL)->GetClientRect(&rect); // 创建PDF控件 pdfControl.CreateControl(CLSID_AcroPDF.PDF, NULL, WS_CHILD | WS_VISIBLE, rect, this, IDC_PDF_CONTROL); // 打开PDF文件 pdfControl.QueryControl()->put_Src(L"C:\\path\\to\\your\\file.pdf"); ``` 以上代码中,首先声明了一个名为`pdfControl`的CAxWindow对象来承载PDF文件。然后,通过GetDlgItem函数获取控件的位置和大小。接下来,使用CreateControl函数创建PDF控件,并通过put_Src函数加载指定路径的PDF文件。 最后,将控件的ID设置为IDC_PDF_CONTROL(可以根据实际情况修改)。在对应的对话框资源文件中,添加一个静态文本框或Picture控件,并将其ID设置为IDC_PDF_CONTROL。 通过上述方法,可以在MFC应用程序中显示PDF文件。请确保系统中已安装Adobe Acrobat Reader,并根据实际路径修改代码中的文件路径。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值