< 返回版块

baymax-xhl 发表于 2023-04-30 23:34

Tags:Rust,日报,其他和内容相关的

rpdf - 用于处理 PDF 注释的命令行工具

大家好,

我最近开发了rpdf,这是一个帮助我处理 PDF 注释的小型 CLI。对我来说,必须依赖 Web 服务(如 iLovePDF、PDFAnnotators 或其他基本 PDF 实用程序)非常烦人。如果您知道替代品,尤其是开源的,请随时发表评论:-)

当我几乎每天审阅和注释 PDF 时,我决定实施自己的解决方案,以此作为在 Rust 中再做一个项目的借口 :-)

什么?rpdf可以从 PDF 文件中读取注释 ( stats),merge将同一 PDF 的多个评论中的注释合并为一个,或strip从 PDF 中读取注释。您可以使用 来安装它cargo install rpdf,并直接在终端中使用它。

r/rust - rpdf - 用于处理 PDF 注释的命令行工具

来自示例文件的注释统计信息。

我很想听听您对此的看法,尤其是以下几点:

  1. 命令行界面。它可能看起来很冗长,但部分原因是我想在未来开发更多可能与注释无关的命令。您认为我可以改进人们与我的工具交互的方式吗?请参阅上面的示例以从文件中获取注释统计信息。
  2. 由于 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!(),
    }
}

作为参考,我使用lopdfcrate。我不喜欢的是 a 需要两次调用get_dictionary,因为我不能有一个对 的可变引用page和另一个对 的可变引用Annots,即使我一次只会修改一个。如果您对此有意见,我很乐意听到!

3.关于性能,还是希望有一个比较快的工具。如果您在我的代码中发现任何性能问题,请不要犹豫告诉我:-)

介绍 Image Maniac:适用于游戏开发人员等的快速、多功能和开源图像查看器!🚀

我很高兴与大家分享我一直在从事的名为Image Maniac的项目。它是一款开源图像查看器,专为游戏开发人员和其他创意专业人士而设计。凭借广泛的功能和跨平台兼容性,它旨在让您的图像查看体验无缝且高效。

以下是 Image Maniac 脱颖而出的原因:

  1. 无限画布:将任意数量的图像拖放到主窗口,然后在一个统一的工作区中查看所有图像。
  2. 快速 RGBA 通道切换:使用 1-4 数字键在 RGBA 通道之间轻松切换。此功能对于处理纹理和材质的游戏开发人员特别有用。
  3. 广泛的格式支持:Image Maniac 支持所有主要图像格式,包括 PNG、JPG、BMP、DDS、TGA、KTX2 和 HDR。
  4. 跨平台兼容性:无论您使用的是 macOS、Linux 还是 Windows,Image Maniac 都能满足您的需求!
  5. 极快的性能:体验闪电般快速的图像加载和最小的延迟,即使是大文件和多张图像。

感兴趣的?前往 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 日报小组 时光

社区学习交流平台订阅:

评论区

写评论

还没有评论

1 共 0 条评论, 1 页