haru free pdf类库下载地址:

http://download.csdn.net/detail/u011642774/9616781

解压后我们要用到三个东西:
libhpdf.dll
libhpdf.lib
include整个文件夹

解压后复制libhpdf.dll到项目的release和debug目录下;
libhpdf.lib和include文件夹直接复制到源文件目录下;

在xxxDlg.cpp里添加下面两句:

#include "include/hpdf.h"
#pragma comment(lib, "libhpdf.lib")

典型的编程流程:见压缩包中的how_to_use.html文件:

大致分为5个步骤:见下面程序的1~5

BOOL CxxxSystemDlg::GeneratePDF(…… )
{//1.初始化文档对象HPDF_Doc pdf;pdf=HPDF_New(error_handler,NULL);if(!pdf){AfxMessageBox("错误:创建PDF失败!");return FALSE;}if(setjmp(env) ){HPDF_Free(pdf);AfxMessageBox("错误:生成PDF过程中遇见错误!");return FALSE;}//2.设置文档对象///set compression mode HPDF_SetCompressionMode(pdf,HPDF_COMP_ALL);//set page mode to use outlinesHPDF_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);///显示字符串方法1CTime 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);///显示字符串方法2HPDF_Page_EndText (page);///将graphics mode 改为:HPDF_GMODE_PAGE_DESCRIPTION///必须有HPDF_Page_BeginText (page);HPDF_Page_EndText (page);否则保存PDF失败。///3.2 画线////画线4步骤:设置、起点、LineTo、Strokeint 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_DESCRIPIONHPDF_Page_Stroke (page);//4.Save PDF/////字符数组拼接字符串的方法:///char fname[256]; strcpy (fname, argv[0]); strcat (fname, ".pdf");///文件夹必须是之前创建好的,如果文件夹不存在,不会自动创建///路径不存在就创建,PathFileExists检验路径是否有效,有效返回trueif (!PathFileExists("D:\\MacTestResult\\")){//当天保存目录_mkdir("D:\\MacTestResult\\");}CString Save_path;Save_path="D:\\MacTestResult\\"+time1+"xxx.pdf";///HPDF_SaveToFile(pdf,Save_path);//5.CleanupHPDF_Free(pdf);/return TRUE;
}

使用过程中有如下注意:

1.Graphics mode :不同的方法需要不同的mode,通过相关函数改变mode。

2.坐标原点为屏幕左下角

3.颜色通过(r,g,b)调节,有效值0~1.
更加详尽的使用方法见压缩包中doc文件夹中的内容及相关例程。

MFC--利用Haru库生成PDF文件相关推荐

  1. python读取pdf文档书签 bookmark_Python利用PyPDF2库获取PDF文件总页码实例

    Python中可以利用PyPDF2库来获取该pdf文件的总页码,可以根据下面的方法一步步进行下去: 1.首先,要安装PyPDF2库,利用以下命令即可: pip install PyPDF2 2.接着, ...

  2. python读取扫描形成的pdf_Python利用PyPDF2库获取PDF文件总页码实例

    Python中可以利用PyPDF2库来获取该pdf文件的总页码,可以根据下面的方法一步步进行下去: 1.首先,要安装PyPDF2库,利用以下命令即可: pip install PyPDF2 2.接着, ...

  3. html与css入门经典doc,HTML+CSS入门 flying-saucer如何利用HTML来生成PDF文件

    本篇教程介绍了HTML+CSS入门 flying-saucer如何利用HTML来生成PDF文件,希望阅读本篇文章以后大家有所收获,帮助大家HTML+CSS入门. < 1.导入maven依赖 9. ...

  4. Python利用PyPDF2库获取PDF文件总页码

    Python中可以利用PyPDF2库来获取该pdf文件的总页码,可以根据下面的方法一步步进行下去: 1.首先,要安装PyPDF2库,利用以下命令即可: pip install PyPDF2 2.接着, ...

  5. 利用PDF模版生成PDF文件

    文章目录 前言 一.注备好PDF模版 二.代码示例 1.依赖 2.代码示例 总结 前言 如何利用PDF模版填充数据,生成我们想要的PDF文件呢? 一.准备好PDF模版 1.注备好需要生成的PDF文件 ...

  6. php输出PDF的文件流_怎么用PHP在HTML中生成PDF文件

    译文:使用PHP在html中生成PDF 译者:dwqs 利用PHP编码生成PDF文件是一个非常耗时的工作.在早期,开发者使用PHP并借助FPDF来生成PDF文件.但是如今,已经有很多函数库可以使用了, ...

  7. php html小项目,使用PHP把HTML生成PDF文件的几个开源项目介绍

    这篇文章主要介绍了使用PHP把HTML生成PDF文件的几个开源项目介绍,本文罗列了FPDF.DomPDF.TCPDF等项目的特点,需要的朋友可以参考下 利用PHP编码生成PDF文件是一个非常耗时的工作 ...

  8. freemarker 模板生成pdf文件并下载

    利用freemarker 模板生成pdf文件,通过浏览器直接下载或生成文件到指定目录 1.pom.xml文件 <!--引入Freemarker的依赖--> <dependency&g ...

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

    MFC使用Haru free pdf lib生成pdf文件 我们先创建一个项目MFCPDFDemo,在上面添加一个编辑框和一个按钮: haru free pdf类库下载地址 这里直接下载dll,如果想 ...

最新文章

  1. 第四课:算法效率的度量和存储空间需求
  2. gridstack 宽度改变_Model Y在Model 3有哪些改变?
  3. 2012 人民搜索 实习生招聘 笔试题
  4. “不正经”NIPS大会指北:嘻哈歌手、感人长队,以及最佳论文
  5. scratch创意小游戏_为何很多孩子都迷恋创意scratch?
  6. 计算机相关专业的自我评价,计算机相关专业的学生自我评价
  7. 张量(tensor)的理解
  8. linux tcl expect 安装(转)
  9. 世界是数字的读后感:
  10. if...else 应用(猜幸运数字)
  11. centos Apache、php、mysql默认安装路径
  12. 3月28日 simulink学习(一)
  13. C#-gdi绘图,双缓冲绘图,Paint事件的触发
  14. 电商详情页的一般实现
  15. 乖离性暗机器人_乖离性百万亚瑟王超弩级暗机器人复刻攻略分享
  16. 打开本地安全策略的方式
  17. 已解决:网易邮箱smtphz.qiye.163.com在阿里云环境发不出邮件的问题
  18. UltraEdit+Masm--打造自己的汇编IDE
  19. 米的换算单位和公式_米的单位换算公式大全二年级(简便易记的单位米换算方法)...
  20. 9 * 9 数独求解

热门文章

  1. 正则表达式—HTML中的匹配
  2. horizon层层注册
  3. 这些java基础编程练习题你都会了吗?
  4. ENVI水体提取流程实践与问题
  5. 如何在电脑使用计算机,Windows To Go 如何在电脑上使用?
  6. 前端程序员到底应该学什么?怎么学?从哪开始学?
  7. 基于微信小程序的图书销售商城系统源码
  8. 官僚、傲慢、冷漠的腾讯开放平台
  9. Github学生包的申请
  10. php入门-文件操作(文件包含、文件上传、文件管理)