你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

MCU生成简单PDF文档  

[复制链接]
anobodykey 发布时间:2017-6-17 23:03
阅读主题, 点击返回1楼
4 收藏 22 评论152 发布时间:2017-6-17 23:03
152个回答
goodgsq1 回答时间:2019-2-28 09:35:20
真是牛人啊!
gxg001 回答时间:2019-3-14 22:35:23
楼主你好,请问r如何修改字体颜色和PDF页面尺寸?谢谢!
zushm 回答时间:2019-3-15 21:40:12
不错的库文件, 合泰有款单片机集成了pdf库。也很牛逼。
zttx 回答时间:2019-3-16 21:30:45
厉害,学习中。。。
gxg001 回答时间:2019-3-20 21:58:12
我的怎么不行呢?为啥生成的pdf都是空白的?
  1. int main(void)
  2. {         
  3.         u32 total,free;
  4.         u8 t=0;       
  5.         u8 res=0;
  6.     FIL        fil;
  7.         UINT a,b,c,d, e;
  8.         BYTE buf[1024];
  9.          FRESULT resu;
  10.          FILINFO finfo;         
  11.          
  12.     FRESULT error;
  13.    
  14.         LPDF_Doc pdf;
  15.         LPDF_Page page[300];
  16.     LPDF_Image image;
  17.     LPDF_UINT16 width = 0,height = 0, i = 0,j = 0,m=0;  

  18.         delay_init();                     //延时函数初始化          
  19.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级
  20.         uart_init(115200);                 //串口初始化为115200
  21.         usmart_dev.init(72);                //初始化USMART               
  22.         LED_Init();                                          //初始化与LED连接的硬件接口
  23.         KEY_Init();                                        //初始化按键
  24.         LCD_Init();                                           //初始化LCD   
  25. //        SPI_Flash_Init();                                //初始化W25Q128
  26.         mem_init(SRAMIN);                    //初始化内部内存池
  27.         POINT_COLOR=RED;                        //设置字体为红色
  28.         LCD_ShowString(30,50,200,16,16,"WarShip STM32");       
  29.         LCD_ShowString(30,70,200,16,16,"FATFS TEST");       
  30.         LCD_ShowString(30,90,200,16,16,"ATOM@ALIENTEK");
  31.         LCD_ShowString(30,110,200,16,16,"2015/1/20");
  32.         LCD_ShowString(30,130,200,16,16,"Use USMART for test");
  33.         while(SD_Initialize())//检测不到SD卡
  34.         {
  35.                 printf("SD Card Error!\r\n");
  36.                 delay_ms(500);                                       
  37.                 printf("Please Check!\r\n ");
  38.                 delay_ms(500);
  39.                 LED0=!LED0;//DS0闪烁
  40.         }
  41.         exfuns_init();                                                        //为fatfs相关变量申请内存                                 
  42.           f_mount(fs[0],"0:",0);                                         //挂载SD卡
  43. //         res=f_mount(fs[1],"1:",1);                                 //挂载FLASH.       
  44. //        if(res==0X0D)//FLASH磁盘,FAT文件系统错误,重新格式化FLASH
  45. //        {
  46. //                LCD_ShowString(30,150,200,16,16,"Flash Disk Formatting...");        //格式化FLASH
  47. //                res=f_mkfs("1:",1,4096);//格式化FLASH,1,盘符;1,不需要引导区,8个扇区为1个簇
  48. //                if(res==0)
  49. //                {
  50. //                        f_setlabel((const TCHAR *)"1:ALIENTEK");        //设置Flash磁盘的名字为:ALIENTEK
  51. //                        LCD_ShowString(30,150,200,16,16,"Flash Disk Format Finish");        //格式化完成
  52. //                }else LCD_ShowString(30,150,200,16,16,"Flash Disk Format Error ");        //格式化失败
  53. //                delay_ms(1000);
  54. //        }                                                                                                            
  55.         LCD_Fill(30,150,240,150+16,WHITE);                //清除显示                          
  56.         while(exf_getfree("0",&total,&free))        //得到SD卡的总容量和剩余容量
  57.         {
  58.                 LCD_ShowString(30,150,200,16,16,"SD Card Fatfs Error!");
  59.                 delay_ms(200);
  60.                 LCD_Fill(30,150,240,150+16,WHITE);        //清除显示                          
  61.                 delay_ms(200);
  62.                 LED1=!LED1;//DS0闪烁
  63.         }                                       
  64.   
  65.    
  66.     #if (_FS_RPATH >= 2U)
  67.     error = f_chdrive((char const *)&driverNumberBuffer[0U]);
  68.     if (error)
  69.     {
  70.         PRINTF("Change drive failed.\r\n");
  71.         return -1;
  72.     }
  73. #endif
  74.    
  75.     pdf = LPDF_New();
  76. //   for(j = 0; j < 70; j++)
  77.     {
  78.                 page[j] = LPDF_AddPage(pdf);
  79.                 width = LPDF_Page_GetWidth(page[j]);
  80.                 height = LPDF_Page_GetHeight(page[j]);
  81.         //    LPDF_Page_SetRGBFill(page[0], 1.0, 0.0, 0.0);      // 红色
  82.                 LPDF_Page_SetRGBFill(page[j], 0.0, 0.0, 0.0);      // 黑色      
  83.                 LPDF_Page_BeginText(page[j]);
  84.                
  85.                 LPDF_Page_MoveTextPos(page[j], 20, height-10);   
  86.                 LPDF_Page_SetFontAndSize(page[j],"SimSun",6);
  87.                 LPDF_Page_ShowText(page[j], "日期       时间    温度℃   湿度%");     
  88.                
  89.                 LPDF_Page_MoveTextPos(page[j], -10, -8);
  90.                
  91.                 for(i = 0; i < 35;i++)
  92.                 {
  93.                         LPDF_Page_SetFontAndSize(page[j], font_list[8], 8);
  94.                         LPDF_Page_ShowText(page[j], "2019/3/18   20:56     13.9       44");
  95.                         LPDF_Page_MoveTextPos(page[j], 0, -8);
  96.                 }
  97.                 LPDF_Page_EndText(page[j]);

  98.                 LPDF_Page_SetLineWidth(page[j],0.5);
  99.                 LPDF_Page_MoveTo(page[j], width-205, height-5);
  100.                 LPDF_Page_LineTo(page[j], width-85, height-5);
  101.                 LPDF_Page_LineTo(page[j], width-85, height-292);
  102.                 LPDF_Page_LineTo(page[j], width-205, height-292);
  103.                 LPDF_Page_LineTo(page[j], width-205, height-5);
  104.                
  105.                 LPDF_Page_MoveTo(page[j], width-165, height-5);
  106.                 LPDF_Page_LineTo(page[j], width-165, height-292);
  107.                
  108.                 LPDF_Page_MoveTo(page[j], width-140, height-5);
  109.                 LPDF_Page_LineTo(page[j], width-140, height-292);
  110.                
  111.                 LPDF_Page_MoveTo(page[j], width-115, height-5);
  112.                 LPDF_Page_LineTo(page[j], width-115, height-292);
  113.                
  114.                 for(m = 0; m < 35;m++)
  115.                 {
  116.                         LPDF_Page_MoveTo(page[j], width-205, height-(12+m*8));
  117.                         LPDF_Page_LineTo(page[j], width-85, height-(12+m*8));
  118.                 }
  119.                 LPDF_Page_Stroke(page[j]);

  120.                 LPDF_Page_SaveContext(page[j]);
  121.     }   
  122.        
  123.     LPDF_SaveToFile(pdf, "Data.pdf");

  124.         printf("OVER...\n");

  125.         while(1)
  126.         {
  127.                 t++;
  128.                 delay_ms(200);                                           
  129.                 LED0=!LED0;
  130.         }
  131. }
复制代码
mingriyoutianya 回答时间:2019-4-13 21:01:22
zushm 发表于 2019-3-15 21:40
不错的库文件, 合泰有款单片机集成了pdf库。也很牛逼。

请问合泰哪种型号单片机集成了pdf库
w2000abc 回答时间:2019-6-18 15:42:35
楼主功底真好!感谢分享!
不吃肉的羊 回答时间:2019-7-8 23:56:15
移植到STM32,HAL库,STM32F103R,W25Qxx
http://github.com/Jun1172/stm32_pdflib_msc_storage
byronsong 回答时间:2019-7-9 08:30:15
多谢分享
eeseuads 回答时间:2019-7-17 19:42:27
赞赞赞赞
菜鸟Y疯狂 回答时间:2019-8-22 09:52:25
先给楼主赞一个。再问下,楼主有试过在pdf中生成折线图吗?
浅唱浅唱 回答时间:2019-9-26 10:25:53
楼主您好,请教下插上USB为啥会出现无法格式化USB呢
浅唱浅唱 回答时间:2019-9-26 17:29:00
不吃肉的羊 发表于 2019-7-8 23:56
移植到STM32,HAL库,STM32F103R,W25Qxx
http://github.com/Jun1172/stm32_pdflib_msc_storage

您这可以吗?试着不行啊
linuxdaxia 回答时间:2019-9-26 19:02:01
666666
tanic 回答时间:2019-9-26 19:09:20
厉害了  收藏一波

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版