LPC54608生成PDF文件

主机环境:Win10 64bit

开发环境:MDK5.23

目标板:LPC54608

之前在NXP论坛里得到了一块LPC54608开发板,最吸引人的地方是带了一块屏,如下图:


这也是第一次接触NXP的开发板,之前一直都是用的ST的MCU,NXP的库跟ST的还是差别蛮大的,自我感觉ST的开发入手要快一些,而NXP的相对慢一些,入手开发板之后就看了库里面自带的一些基本驱动例程,只熟悉了一下基本外设的开发,之前有次在群里看到有人询问单片机生成PDF的问题,突然觉得有些兴趣所以就有了前面的libHaru学习笔记,libHaru库是一个十分不错的库,对于PDF的实现来说也是相当齐全的,在PC上使用是完全没有问题的,但在资源紧张的MCU上,还是有些困难的,因此就想找一下适用于MCU的生成PDF的库,结果不太理想,都是一些需要实现动态内存管理的平台才行,而且这些库都是把生成的数据放在了内存中,直到保存文件时才写入到文件中,这对于一般只有几十或者几百KB级别的单片机来说更不可能了,于是乎,萌发了自己动手写一个基本的能用于MCU的生成PDF文件的库,我称之为libpdf,其中的接口参考了libHaru,如下所示:


当然有些接口还没有实现,但基本的操作还是可以的,等以后再逐渐完善吧,pdflib是生成pdf文件的,因此要基于Fatfs来实现文件的操作,pdflib库只有两个文件,也相应的参考了pdfgen库,该库在后面有链接,

头文件如下:

#ifndef __PDFLIB_H__
#define __PDFLIB_H__

#include "ff.h"
/*----- standard C library functions -----------------------------------------*/

#define LPDF_FOPEN                  f_open
#define LPDF_FCLOSE                 f_close
#define LPDF_FREAD                  f_read
#define LPDF_FWRITE                 f_write
#define LPDF_FFLUSH                 f_sync
#define LPDF_FSEEK                  f_seek
#define LPDF_FTELL                  f_tell
#define LPDF_FEOF                   f_eof
#define LPDF_FERROR                 f_error
#define LPDF_RENAME                 f_rename
#define LPDF_REMOVE                 f_unlink
#define LPDF_MALLOC                 malloc
#define LPDF_FREE                   free
#define LPDF_FILE                   FIL
#define LPDF_TIME                   time
#define LPDF_PRINTF                 printf
#define LPDF_SPRINTF                sprintf
#define LPDF_FPRINTF                f_printf
#define LPDF_VOID                   void
#define LPDF_SIN                    sin
#define LPDF_COS                    cos

/*  native OS integer types */
typedef  signed int          LPDF_INT;
typedef  unsigned int        LPDF_UINT;


/*  32bit integer types
 */
typedef  signed int          LPDF_INT32;
typedef  unsigned int        LPDF_UINT32;


/*  16bit integer types
 */
typedef  signed short        LPDF_INT16;
typedef  unsigned short      LPDF_UINT16;


/*  8bit integer types
 */
typedef  signed char         LPDF_INT8;
typedef  unsigned char       LPDF_UINT8;


/*  8bit binary types
 */
typedef  unsigned char       LPDF_BYTE;


/*  float type (32bit IEEE754)
 */
typedef  float               LPDF_REAL;


/*  double type (64bit IEEE754)
 */
typedef  double              LPDF_DOUBLE;


/*  boolean type (0: False, !0: True)
 */
typedef  signed int          LPDF_BOOL;


/*  error-no type (32bit unsigned integer)
 */
typedef  unsigned long       LPDF_STATUS;

#define LPDF_OK                     0
#define LPDF_FAILED                 1

/*----- font state -----------------------------------------------------------*/
#define   LPDF_FONT_INVALID                 0x00FF
#define   LPDF_FONT_COURIER                 0x0000
#define   LPDF_FONT_COURIER_B               0x0001
#define   LPDF_FONT_COURIER_O               0x0002
#define   LPDF_FONT_COURIER_OB              0x0003
#define   LPDF_FONT_HELVETICA               0x0004
#define   LPDF_FONT_HELVETICA_B             0x0005
#define   LPDF_FONT_HELVETICA_O             0x0006
#define   LPDF_FONT_HELVETICA_BO            0x0007
#define   LPDF_FONT_TIMES_R                 0x0008
#define   LPDF_FONT_TIMES_B                 0x0009
#define   LPDF_FONT_TIMES_I                 0x000A
#define   LPDF_FONT_TIMES_BI                0x000B
#define   LPDF_FONT_SYMBOL                  0x000C
#define   LPDF_FONT_ZAP                     0x000D
/*----- Graphis mode ---------------------------------------------------------*/
#define   LPDF_GMODE_PAGE_DESCRIPTION       0x0001
#define   LPDF_GMODE_PATH_OBJECT            0x0002
#define   LPDF_GMODE_TEXT_OBJECT            0x0004
#define   LPDF_GMODE_CLIPPING_PATH          0x0008
#define   LPDF_GMODE_SHADING                0x0010
#define   LPDF_GMODE_INLINE_IMAGE       
  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值