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文件
【自己的部分】