rpdf - 用于处理 PDF 注释的命令行工具
大家好,
我最近开发了rpdf,这是一个帮助我处理 PDF 注释的小型 CLI。对我来说,必须依赖 Web 服务(如 iLovePDF、PDFAnnotators 或其他基本 PDF 实用程序)非常烦人。如果您知道替代品,尤其是开源的,请随时发表评论:-)
当我几乎每天审阅和注释 PDF 时,我决定实施自己的解决方案,以此作为在 Rust 中再做一个项目的借口 :-)
什么?:
rpdf
可以从 PDF 文件中读取注释 (stats
),merge
将同一 PDF 的多个评论中的注释合并为一个,或strip
从 PDF 中读取注释。您可以使用 来安装它cargo install rpdf
,并直接在终端中使用它。
来自示例文件的注释统计信息。
我很想听听您对此的看法,尤其是以下几点:
- 命令行界面。它可能看起来很冗长,但部分原因是我想在未来开发更多可能与注释无关的命令。您认为我可以改进人们与我的工具交互的方式吗?请参阅上面的示例以从文件中获取注释统计信息。
- 由于 Rust 对借用变量的限制,我找不到更优雅的解决方案来解决此功能( src/cli/annotations.rs ):
/// Get mutable annotations (references) to a given page id.
fn get_page_annotations_mut(document: &mut Document, page_id: ObjectId) -> &mut Vec<Object> {
let page = document.get_dictionary(page_id).unwrap();
match page.get(b"Annots") {
Ok(Object::Reference(ref id)) => {
document
.get_object_mut(*id)
.and_then(Object::as_array_mut)
.unwrap()
},
Ok(Object::Array(_)) => {
let page = document.get_dictionary_mut(page_id).unwrap();
page.get_mut(b"Annots")
.and_then(Object::as_array_mut)
.unwrap()
},
Err(_) => {
let page = document.get_dictionary_mut(page_id).unwrap();
page.set(b"Annots".to_owned(), vec![]);
page.get_mut(b"Annots")
.and_then(Object::as_array_mut)
.unwrap()
},
_ => unreachable!(),
}
}
作为参考,我使用lopdf
crate。我不喜欢的是 a 需要两次调用get_dictionary
,因为我不能有一个对 的可变引用page
和另一个对 的可变引用Annots
,即使我一次只会修改一个。如果您对此有意见,我很乐意听到!
3.关于性能,还是希望有一个比较快的工具。如果您在我的代码中发现任何性能问题,请不要犹豫告诉我:-)
介绍 Image Maniac:适用于游戏开发人员等的快速、多功能和开源图像查看器!🚀
我很高兴与大家分享我一直在从事的名为Image Maniac的项目。它是一款开源图像查看器,专为游戏开发人员和其他创意专业人士而设计。凭借广泛的功能和跨平台兼容性,它旨在让您的图像查看体验无缝且高效。
以下是 Image Maniac 脱颖而出的原因:
- 无限画布:将任意数量的图像拖放到主窗口,然后在一个统一的工作区中查看所有图像。
- 快速 RGBA 通道切换:使用 1-4 数字键在 RGBA 通道之间轻松切换。此功能对于处理纹理和材质的游戏开发人员特别有用。
- 广泛的格式支持:Image Maniac 支持所有主要图像格式,包括 PNG、JPG、BMP、DDS、TGA、KTX2 和 HDR。
- 跨平台兼容性:无论您使用的是 macOS、Linux 还是 Windows,Image Maniac 都能满足您的需求!
- 极快的性能:体验闪电般快速的图像加载和最小的延迟,即使是大文件和多张图像。
感兴趣的?前往 GitHub 存储库下载 Image Maniac 并访问源代码:https://github.com/AllenDang/img_maniac/
介绍 Vortex——一种用于从 PDF 文件中提取图像的 Rust 工具
大家好,我很高兴与大家分享我在 Rust - Vortex中的最新项目。它是一种从 PDF 文件中提取图像并将其转换为不同格式(例如 PNG 或 JPEG)的工具。
我使用 Rust 已经一年多了,Vortex 是一个具有挑战性但回报丰厚的项目。我使用“pdf”包提取原始图像数据,使用“image”包以所需格式写入图像数据。
Vortex 可以快速准确地从嵌入图像的 PDF 中提取图像。对于需要从 PDF 中提取图像以用于工作或个人项目的任何人来说,这是一个方便的工具。
我愿意接受有关改进 Vortex 的反馈和建议,包括在未来添加对更多 PDF 功能的支持。请随时在 GitHub 上查看它,让我知道您的想法。
感谢您的支持,祝您编码愉快!
From 日报小组 时光
社区学习交流平台订阅:
- Rustcc 论坛:支持 rss
- [微信公众号:Rust 语言中文社区]
评论区
写评论还没有评论