MFC--利用Haru库生成PDF文件
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文件相关推荐
- python读取pdf文档书签 bookmark_Python利用PyPDF2库获取PDF文件总页码实例
Python中可以利用PyPDF2库来获取该pdf文件的总页码,可以根据下面的方法一步步进行下去: 1.首先,要安装PyPDF2库,利用以下命令即可: pip install PyPDF2 2.接着, ...
- python读取扫描形成的pdf_Python利用PyPDF2库获取PDF文件总页码实例
Python中可以利用PyPDF2库来获取该pdf文件的总页码,可以根据下面的方法一步步进行下去: 1.首先,要安装PyPDF2库,利用以下命令即可: pip install PyPDF2 2.接着, ...
- html与css入门经典doc,HTML+CSS入门 flying-saucer如何利用HTML来生成PDF文件
本篇教程介绍了HTML+CSS入门 flying-saucer如何利用HTML来生成PDF文件,希望阅读本篇文章以后大家有所收获,帮助大家HTML+CSS入门. < 1.导入maven依赖 9. ...
- Python利用PyPDF2库获取PDF文件总页码
Python中可以利用PyPDF2库来获取该pdf文件的总页码,可以根据下面的方法一步步进行下去: 1.首先,要安装PyPDF2库,利用以下命令即可: pip install PyPDF2 2.接着, ...
- 利用PDF模版生成PDF文件
文章目录 前言 一.注备好PDF模版 二.代码示例 1.依赖 2.代码示例 总结 前言 如何利用PDF模版填充数据,生成我们想要的PDF文件呢? 一.准备好PDF模版 1.注备好需要生成的PDF文件 ...
- php输出PDF的文件流_怎么用PHP在HTML中生成PDF文件
译文:使用PHP在html中生成PDF 译者:dwqs 利用PHP编码生成PDF文件是一个非常耗时的工作.在早期,开发者使用PHP并借助FPDF来生成PDF文件.但是如今,已经有很多函数库可以使用了, ...
- php html小项目,使用PHP把HTML生成PDF文件的几个开源项目介绍
这篇文章主要介绍了使用PHP把HTML生成PDF文件的几个开源项目介绍,本文罗列了FPDF.DomPDF.TCPDF等项目的特点,需要的朋友可以参考下 利用PHP编码生成PDF文件是一个非常耗时的工作 ...
- freemarker 模板生成pdf文件并下载
利用freemarker 模板生成pdf文件,通过浏览器直接下载或生成文件到指定目录 1.pom.xml文件 <!--引入Freemarker的依赖--> <dependency&g ...
- MFC使用Haru free pdf lib生成pdf文件
MFC使用Haru free pdf lib生成pdf文件 我们先创建一个项目MFCPDFDemo,在上面添加一个编辑框和一个按钮: haru free pdf类库下载地址 这里直接下载dll,如果想 ...
最新文章
- 第四课:算法效率的度量和存储空间需求
- gridstack 宽度改变_Model Y在Model 3有哪些改变?
- 2012 人民搜索 实习生招聘 笔试题
- “不正经”NIPS大会指北:嘻哈歌手、感人长队,以及最佳论文
- scratch创意小游戏_为何很多孩子都迷恋创意scratch?
- 计算机相关专业的自我评价,计算机相关专业的学生自我评价
- 张量(tensor)的理解
- linux tcl expect 安装(转)
- 世界是数字的读后感:
- if...else 应用(猜幸运数字)
- centos Apache、php、mysql默认安装路径
- 3月28日 simulink学习(一)
- C#-gdi绘图,双缓冲绘图,Paint事件的触发
- 电商详情页的一般实现
- 乖离性暗机器人_乖离性百万亚瑟王超弩级暗机器人复刻攻略分享
- 打开本地安全策略的方式
- 已解决:网易邮箱smtphz.qiye.163.com在阿里云环境发不出邮件的问题
- UltraEdit+Masm--打造自己的汇编IDE
- 米的换算单位和公式_米的单位换算公式大全二年级(简便易记的单位米换算方法)...
- 9 * 9 数独求解