#pdf #data #reports #output #json #kplc #outage

kplc-outage-parser

这是一个库,用于输出来自KPLC停电pdf的最新数据 @ https://kplc.co.ke/category/view/50/planned-power-interruptions

9个版本

0.2.6 2023年2月3日
0.2.5 2023年2月3日
0.1.0 2023年2月1日
0.1.0-alpha2022年7月3日

#1167 in 解析器实现

每月 35 次下载

MIT 许可证

700KB
365 代码行

🔌KPLC-OUTAGE-PARSER🔌

目的

将来自链接的KPLC停电报告从pdf转换为可消费的json输出。

主要策略

我们使用来自poppler-utilspdftotxt,它几乎可以在每个Linux发行版上找到,我们使用-layout标志使其保持布局,并输出一个类似于pdf的txt文件,即使在布局方面也很相似,这使得解析更容易。然后我们接下来解析txt文件。

以下是一个图像,显示了每个区域最终项的结构。整体结构是一系列区域。

用法

async{
	let link = "https://www.kplc.co.ke/img/full/Interruptions%20-%2026.01.2023.pdf";
    println!("Parsing data from {link}");
    let mut client = KPLCClient::new();
    let kplcdata_obj = client.parse_from_web(link).await.unwrap();
    println!("Data: {:?}",kplcdata_obj);    
}    

link是一个传递给客户端parse_from_web&str,该客户端异步运行,下载pdf,使用pdftotxt将其转换为txt格式,然后它随后生成一个具有上述图像中结构的KPLCData结构。

贡献

欢迎贡献,因为这个是开源项目。可以是任何事情,从拼写错误到代码性能改进,问题也是受欢迎的。

测试

运行cargo test,在发送PR之前,所有测试都应该通过。此外,为了额外的测试,尝试查看示例是否全部运行

完成。

依赖关系

~8–22MB
~339K SLoC