9个版本
0.2.6 | 2023年2月3日 |
---|---|
0.2.5 | 2023年2月3日 |
0.1.0 | 2023年2月1日 |
0.1.0-alpha | 2022年7月3日 |
#1167 in 解析器实现
每月 35 次下载
700KB
365 代码行
🔌KPLC-OUTAGE-PARSER🔌
目的
将来自链接的KPLC停电报告从pdf
转换为可消费的json
输出。
主要策略
我们使用来自poppler-utils的pdftotxt
,它几乎可以在每个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