[AT32F423] 【AT-START-F423测评】通过U盘导出PDF文件

[复制链接]
2555|8
 楼主| aple0807 发表于 2023-11-12 12:44 | 显示全部楼层 |阅读模式
AT32F423包含一个USB HOST外设,评估板也引出了USB主接口,正好可以用来导出数据到U盘。

首先添加USB驱动文件及FatFs文件系统,文件目录如下:
c1.png
PDF文件是一种富文本文件,实际上接近一种脚本文件,PDF阅读器作为解释器翻译脚本并显示其内容。

本测试程序演示了PDF文件的创建、页面管理、文本显示、曲线显示以及书签显示等内容。

  1. /*****************************************************************************
  2. * [url=home.php?mod=space&uid=247401]@brief[/url]   author_demo_api
  3. * @param   none
  4. * [url=home.php?mod=space&uid=266161]@return[/url]  none
  5. * [url=home.php?mod=space&uid=72445]@[/url] Pass/ Fail criteria: none
  6. *****************************************************************************/
  7. void pdf_author_demo(void)
  8. {
  9.         SPDF_Obj *pobj;
  10.         uint8_t *file_buff;

  11.         dbg_puts("pdf out start \n");
  12.        
  13.         pobj = malloc(sizeof(SPDF_Obj) * 120);
  14.         file_buff = malloc(1024 * 4);
  15.         otl_list = malloc(sizeof(SPDF_outline_obj_type) * 32);

  16.         spdf_init(&pdf_doc, pobj, 120);
  17.         spdf_disk_buff_set(&pdf_doc, file_buff, 1024 * 4);
  18.         spdf_disk_out_link(&pdf_doc, spdf_disk_out);
  19.         spdf_font_cns_open(&pdf_doc, 8);
  20.         pdf = spdf_create(&pdf_doc);
  21.         spdf_outline_init(&pdf_doc, otl_list, 32);

  22.         cnt = 1;
  23.         while (cnt--)
  24.         {
  25.                 spdf_text_demo();
  26.         }

  27.         spdf_char_form_tab_create();

  28.         spdf_chart_demo(0, 100, 100);
  29.         spdf_chart_demo(1, 100, 100);
  30.         spdf_chart_demo(2, 100, 100);
  31.         spdf_chart_demo(3, 100, 100);

  32.         spdf_save(pdf, "red.pdf");

  33.         free(file_buff);
  34.         free(pobj);
  35.        
  36.         dbg_puts("pdf out end \n");
  37. }

下载工程运行后,U盘接入板载主机接口,待串口打印如下内容后拔出U盘。
S4.png

U盘插电脑上可查看评估板导出的文件:
S3.png
文件内容如下:
s1.png

S2.png
附上工程源码:
AT32F423_EVAL.rar (9.76 MB, 下载次数: 69)
开发环境:IAR EW for Arm 9.40

forgot 发表于 2023-11-17 09:20 | 显示全部楼层
PDF文件的创建、页面管理、文本显示、曲线显示以及书签显示等内容,这些是通过FatFs文件系统设计的吗?
 楼主| aple0807 发表于 2023-11-19 09:04 | 显示全部楼层
forgot 发表于 2023-11-17 09:20
PDF文件的创建、页面管理、文本显示、曲线显示以及书签显示等内容,这些是通过FatFs文件系统设计的吗? ...

底层是FatFs,PDF是格式化文件,显示对象类似解释语言的代码
TopV 发表于 2023-11-30 15:08 | 显示全部楼层
学习了,点赞
hameyou 发表于 2024-2-23 15:44 | 显示全部楼层
不错,MCU创建PDF文件。
hejiang1777 发表于 2024-5-11 17:23 | 显示全部楼层
这么牛X吗,学习一下
hejiang1777 发表于 2024-5-11 17:41 | 显示全部楼层
亲,PDF的库是你自已写的吗?
gouguoccc 发表于 2024-5-11 18:11 来自手机 | 显示全部楼层
FatFS文件系统可以支持PDF文件了吗?
 楼主| aple0807 发表于 2024-5-11 21:46 | 显示全部楼层
hejiang1777 发表于 2024-5-11 17:41
亲,PDF的库是你自已写的吗?

写了一部分,实现一些简单的文字、线条显示
您需要登录后才可以回帖 登录 | 注册

本版积分规则

77

主题

326

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部