使用PDFLib生成PDF文档_第1页
使用PDFLib生成PDF文档_第2页
使用PDFLib生成PDF文档_第3页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、使用PDFLib生成PDF文档(C语言版)一使用指导1. 基本环境 打开、关闭、文档信息设定:新建PDFL让 对象,PDF_new()设定错误处理的方式,PDF_set_pdrdmeter(p, "errorpolicy", "return"), return标示当发生错误时直接从L让函数中返回。设定文档信息,PDF_set_value()新建一个 PDF 文件,PDF_begin_document ()新建一个页面,PDF_begin_page_ext ()关闭一个页面,PDF_end_page_ext ()关闭 PDF 文件,PDF_end_docu

2、ment ()释放 PDFLib 对象,PDF_delete()例外处理,PDF.TRY ()和 PDF.CATCH() 示例代码:#include <stdio. h>nclude "pdflib. h"int mdin(int drgc, char *argv)Example ();return 0;int Example(void)PDF *p;辻(p 二 PDF_new()二二(PDF *) 0) printf (/zCouldn,t create PDFlib object (out of memory) !/n/z);return (2);PDF.T

3、RY(p) /* This means we must check return values of load_font() etc */PDF_set_parameter(p, "errorpolicy", "returrT);if (PDF_begin_document(p, "d:/hello. pdf", 0,"”)二二-1) printf ("Error: %s/nz,, PDF_get_errmsg (p);return (2);/* This line is required to avoid problems

4、 on Japanese systems */ PDF_set_parameter(p, "hypertextencoding", "host");PDF_set_parameter(p, "fdkebold", "true");PDF_set_info(p, "Creator", "hello, c");PDF_set_info(p, "Author", "Thomas Merz");PDF_set_info(p, "Tit

5、le", "Hello, world (C)!");PDF_begin_page_ext(p, a4_width, a4_height, “");PDF_setcolor(p, "fill", "cmyk", 1, 0, 0, 0);PDF_rect (p, 250,250, 100, 50);PDF_fill(p);PDF_end_page_ext(p, “");PDF_end_document(p, “");PDF.CATCH(p) printf C'PDFlib exception

6、 occurred in sample:/n/z):printf C %d %s: %s/n,z,PDF_get_errnum(p), PDF_get_apiname(p), PDF_get_errmsg(p);PDF_delete(p);getchar ();return (2);PDF_delete(p);return 0;2. 文字输出 加载字体使用PDF_load_font ()函数。口前在Windows平台下,似乎只能加载可以安装到Windows系统中的字体。如果加载已经安装到系统中的字体(在C:/windows/fonts文件夹下),可以直接通过字体的名字加载,如:font = P

7、DF_load_font(p, "MS UI Gothic", 0, "host",;font = PDF_load_font(p, "MKZ2", 0, "unicode",;也可以通过制定字体文件加载字体,如:PDF_set_pdrdmeter(p, "FontOutline",z,MKZ2=C:/windows/fonts/ MKZ2. ttf");font= PDF_load_font(p, "MKZ2", 0, "unicode",;&

8、quot;host"和"unicode"是用于字体编码的方式,host日文系统下具体与代码页 cp932等相关,中文系统下与cp936相关。Unicode与PDF所规定的CMAP 文件相关,如:UniJIS-UCS2-H、EUC-H等的编码文件。因为字体已经安装 到了 Windows系统中,具体的字体编码方式,操作系统能够自动处理,无需我们显式的指定。加载字体是一件很耗费时间的工作,大概能占到整个处理的1/4左右。PDFLib已经作了些优化,当一个字体只要加载过一次,再次加载就会使用前面 产生的字体句柄,不再重新生成。PDFLib加载字体时默认是嵌入的,这样会增大

9、输出的PDF文件。好处是当文件被移动到其他系统上时,打开文件时不受字体的影响,否则,打开文件前需要先安 装字体。我们这次的项LI,生成的PDF文件需要用FTP转送到Solaris系统,并且要 送入打印机,所以必须以嵌入方式加载的字体。 设置字体使用PDF_setfont ()函数,如:PDF_setfont(p, font, 30);30指的是字号,也就是字体的高度。但这个和系统的缩放比例相关。如果设 字体前设定系统的缩放比例为2,实际输出的字体的高度为60个单位。PSEdit的字体的输出过程中,绝大部分采用的是变换系统坐标的方法来确定 字体的大小,所以编程中使用了 PDF_setfont(p, font, 1)的方式,即字体的大小为 当前系统的缩放比例的值相同。 文字输出PDFLib的文字处理,较PostScript而言,加强了功能,增加了大量文字及段落 等的处理。但本次PSEdit编程中,受于以询软件框架的限制,只使用了单字输岀的 功能PDF_info_text

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论