PDF知识讲座[3]——如何生成pdf文件?

bobob 2005-09-09 03:23:16
由于pdf的特殊文件结构,注定pdf的生成是一件很麻烦的事情。目前最常用的就是adobe公司提供的sdk了,但是由于其依赖与adobe的环境,所以使用起来不是很方便。在这里我给大家介绍另外一种方法——使用pdflib生成pdf。

pdflib也提供了一组sdk,但和adobe的sdk相比,pdflib很小,但功能却一点也不弱。所以对于开发者来说,pdflib是一个明智的选择。你可以从下面的网址得到到它:
http://www.pdflib.com/products/pdflib/download/index.html。如果你没有得到序列号,那么生成的pdf将会加上水印,其他功能和商业版一样。
另外你还可以从下面网址得到pdflib-lite版:
http://www.pdflib.com/products/pdflib/download-source.html
pdflib-lite使用协议:
http://www.pdflib.com/purchase/license-lite.html
和pdflib相比,pdflib-lite最大的特点就是你可以拥有完全的源代码,但功能不如pdflib全面,比如支持的字体要比pdflib少很多。但是,如果你对pdf文件本身很了解的话,你完全可以在pdflib-lite的基础上再做发挥,这就要看你的c语言功底如何了。如果要用做商业产品,请仔细阅读授权协议!

下载pdflib压缩包(大约6m)后,在pdflib文件夹下有pdflib.dll,pdflib.lib,pdflib.h,pdflib.reg。对于我们来说,只要有前3个文件就可以了。
下面是一个生成pdf的完整代码:

#include <stdio.h>
#include <stdlib.h>

#include "pdflib.h"

int
main(void)
{
PDF *p;
int font;

/* create a new PDFlib object */
if ((p = PDF_new()) == (PDF *) 0)
{
printf("Couldn't create PDFlib object (out of memory)!\n");
return(2);
}

PDF_TRY(p) {
if (PDF_begin_document(p, "hello.pdf", 0, "") == -1) {
printf("Error: %s\n", PDF_get_errmsg(p));
return(2);
}

/* This line is required to avoid problems on Japanese systems */
PDF_set_parameter(p, "hypertextencoding", "host");

PDF_set_info(p, "Creator", "hello.c");
PDF_set_info(p, "Author", "Thomas Merz");
PDF_set_info(p, "Title", "Hello, world (C)!");

PDF_begin_page_ext(p, a4_width, a4_height, "");

/* Change "host" encoding to "winansi" or whatever you need! */
font = PDF_load_font(p, "Helvetica-Bold", 0, "host", "");

PDF_setfont(p, font, 24);
PDF_set_text_pos(p, 50, 700);
PDF_show(p, "Hello, world!");
PDF_continue_text(p, "(says C)");
PDF_end_page_ext(p, "");

PDF_end_document(p, "");
}

PDF_CATCH(p) {
printf("PDFlib exception occurred in hello sample:\n");
printf("[%d] %s: %s\n",
PDF_get_errnum(p), PDF_get_apiname(p), PDF_get_errmsg(p));
PDF_delete(p);
return(2);
}

PDF_delete(p);

return 0;
}
到现在,一个hello.pdf的pdf文件就生成了,你完全可以自己发挥,做出很复杂的pdf文件,这就看你的想象力了:)不过在发挥的时候要注意,pdf的坐标和我们通常理解的坐标是不一样的,屏幕坐标的原点在左上角,pdf文件的原点在左下脚。

《待续》
...全文
461 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
aqbeyond 2005-11-08
  • 打赏
  • 举报
回复
9+5+
lovebobob 2005-09-10
  • 打赏
  • 举报
回复
这么高深!!呵呵
支持
bobob 2005-09-09
  • 打赏
  • 举报
回复
错!java都可以调用
几乎支持目前所有主流语言
bobob 2005-09-09
  • 打赏
  • 举报
回复
本节已完,下次有机会说说pdf对中文的支持
大熊猫侯佩 2005-09-09
  • 打赏
  • 举报
回复
GOOD,不过该 sdk 好像是用 c++ 封装的,那么其他语言好像就不能调用了?
vcmute 2005-09-09
  • 打赏
  • 举报
回复
《等续》
《PIC单片机实用教程——提高篇》 pdg 李学海 北京航天航空大学出版社 本书兼顾PIC全系列,共分9章,内容包括:基本概念、PIC16F877硬件概况、指令系统、汇编程序设计、集成开发环境、在线调试工具、定时器、中断逻辑以及应用系统性能优化。突出特点:通俗易懂、可读性强、系统全面、学练结合、学用并重、实例丰富、习题齐全、教者轻松、学者有趣。本教程全书共分2篇,即基础篇和提高篇,分2册出版,以适应不同课时和不同专业的需要,也为教师和读者增加了一种可选方案。 同时低分提供其他PIC相关资源 包括: 《PIC单片机入门与实战》 pdf 张明峰 北京航空航天大学出版社 本书从PIC中档系列单片机的结构介绍入手,系统阐述PIC单片机开发过程的最基本步骤;通过引入设计实例,深入浅出地介绍PIC单片机的各主要功能模块。书中介绍的代码实例将以汇编指令为主,最后专门介绍PIC单片机的C语言编程。读者对象主要是对PIC单片机感兴趣的初学者或准备用PIC单片机进行产品开发的工程师,对已经熟悉PIC单片机开发的工程师也可以作为设计时的参考。 《PIC单片机C语言编程指南》 pdf 包括详细的PICC函数库 《PIC单片机图解入门教程》 pdf 王伟民 清晰彩图 《PIC单片机实用教程-基础篇》 pdf 李学海 北京航天航空大学出版社 本书兼顾PIC全系列,共分9章,内容包括:基本概念、PIC16F877硬件概况、指令系统、汇编程序设计、集成开发环境、在线调试工具、定时器、中断逻辑以及应用系统性能优化。突出特点:通俗易懂、可读性强、系统全面、学练结合、学用并重、实例丰富、习题齐全、教者轻松、学者有趣。本教程全书共分2篇,即基础篇和提高篇,分2册出版,以适应不同课时和不同专业的需要,也为教师和读者增加了一种可选方案。 《PIC单片机实用教程——提高篇》 pdg 李学海 北京航天航空大学出版社 本书兼顾PIC全系列,共分9章,内容包括:基本概念、PIC16F877硬件概况、指令系统、汇编程序设计、集成开发环境、在线调试工具、定时器、中断逻辑以及应用系统性能优化。突出特点:通俗易懂、可读性强、系统全面、学练结合、学用并重、实例丰富、习题齐全、教者轻松、学者有趣。本教程全书共分2篇,即基础篇和提高篇,分2册出版,以适应不同课时和不同专业的需要,也为教师和读者增加了一种可选方案。 《PIC单片机轻松入门》 pdf 朱英彪 清华大学出版社 本书着重介绍了PIC单片机的基本原理,从硬件结构和软件指令入手,结合一系列基本的操作实验,提供给读者详细的实验内容、系统设计、程序编写以及程序说明。在另外一方面,本书采用经济的配备为背景来加以说明,使得读者仅需准备一些在电子市场就可买到的常用工具,就可全身心地投入到PIC单片机的学习过程中。 《PIC系列单片机原理和程序设计》 pdf 窦振中 北京航空航天大学出版社 本书介绍当前在十分繁荣的单片机世界中异军突起的一种单片机——Microchip公司的PIC系列单片机。这个系列单片机具有以下体现微控制器工业发展新趋势的特点:高速度、低工作电压、低功耗、I/O口直接驱动LED能力、低价位、小体积、指令简单易学易用等。内容包括:该系列主要芯片的系统结构和工作原理;片内各种丰富的部件和资源的使用方法;全系列芯片的指令系统和汇编语言程序设计技术及实例;提供了常用的运算子程序。本书内容全面而实用,语言逻辑性强,通俗流畅,易学易懂,适于作广大从事单片机开发与应用的工程技术人员的自学用书和大学相关专业研究生、本科、专科、中专各种单片机应用毕业设计的参考用书以及培训班的教材。 《PIC系列单片机应用设计与实例》 pdf 窦振中 北京航空航天大学出版社 本书作为《PIC系列单片机原理和程序设计》的姊妹篇,介绍当前单片机世界中异军突起的美国Microchip公司的PIC系列单片机的应用设计技术和应用实例。内容相当丰富,包括并行的各种串行存储器、接口电路、人机对话通道、中断系统、IC总线串行通信等系统扩展技术,应用系统开发及其常用工具、集成开发环境MPLAB软件包和十分有实用价值的典型应用实例。应用实例有交流数字电压表、电力周波表、闪光报警器、移动式客房控制器、不间断电源UPS控制器、均匀分布随机数程序、4阶IIR数字滤波器程序、快速傅里叶变换程序、即热式电热水器模糊逻辑温控器、汉字热敏微型打印机等。书中给出了大部分应用实例的硬件电路、程序流程图以及汇编语言源程序。这些内容是作者近几年业部分开发工作的实践总结,有一些就是实际批量生产产品的提练和推广。 本书内容丰富而实用,语言逻辑性强,通俗流畅,易学易懂;适于广大从事单片机开发和应用的工程技术人员自学,也可作大学相关专业研究生、本科、专科、中专各种单片机应用、毕业设计的

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧