PDFsam Basic 6.0.5 发布:升级 JavaFX 25 并修复 PDF 压缩策略问题

2026-08-07 51 预计阅读时间: 1 分钟
来源: oschina.net AI 摘要 Original link

Disclaimer: This article is an AI-assisted summary. Read it together with the original source when precision matters. The summary may omit context, version differences, or edge cases and is not official documentation.

预计阅读时间:8 分钟

PDFsam Basic 6.0.5 现已发布。这是一款免费、开源、跨平台的 PDF 文档处理工具,覆盖 PDF 分割、合并、页面提取、混合和旋转等常见操作。本次版本更新集中在运行时组件、日志系统、界面可读性、翻译以及 PDF 压缩策略兼容性上。

对于日常处理合同、报告、扫描件和归档文件的用户来说,这类维护版本看似没有新增大型功能,却可能直接影响启动稳定性、问题排查和输出文件的可预期性。

这次更新包含什么

运行时升级到 JDK 25.0.4 和 JavaFX 25.0.4

6.0.5 更新了内置运行时相关组件:

  • JDK 升级到 25.0.4
  • JavaFX 升级到 25.0.4

JavaFX 负责桌面界面的呈现和交互。运行时升级通常不会改变用户的操作流程,但可能改善不同平台上的兼容性、渲染表现和启动行为。跨平台使用时,建议在实际使用的操作系统上验证窗口布局、字体显示、文件选择器和批量处理流程。

修复 #856,提高可读性

该版本修复了 Issue #856,更新说明将其描述为提高可读性。摘要没有进一步说明具体涉及界面、文本还是输出内容,因此升级后应结合自己的使用场景检查:

  • 长文件名和长路径是否完整显示
  • 表格、选项和错误提示是否容易阅读
  • 深色或高分辨率显示环境下的文字对比度是否正常
  • 处理结果和警告信息是否足够清晰

重构日志系统

日志系统完成重构。对普通用户而言,日志通常只有在处理失败、文件异常或需要提交问题报告时才会被关注;对团队和运维人员而言,日志是定位问题的重要依据。

升级后可以重点观察日志是否仍然包含任务类型、输入文件、错误原因和处理结果等关键信息。日志重构也意味着不同版本的日志格式可能存在差异,如果你有脚本依赖日志文本进行解析,需要重新验证。

更新翻译并修复 UNCOMPRESSED 压缩策略问题

本次版本更新了翻译,同时修复了与 UNCOMPRESSED 压缩策略相关的问题。使用 PDF 处理工具时,压缩选项并不只是文件大小偏好,它还可能影响:

  • 输出文件大小
  • 图像和对象是否重新压缩
  • 与下游阅读器或归档系统的兼容性
  • 处理时间和磁盘占用

需要保留对象原始压缩状态或明确选择不压缩时,建议在升级后重新生成一批代表性 PDF,并对比页数、页面方向、文字可搜索性、图片质量和文件大小。

可以怎样验证升级结果

PDFsam Basic 主要面向桌面操作。安装或升级后,可以用一组固定样本做回归检查:

  1. 合并两个普通 PDF,确认页序正确。
  2. 分割一个包含多个页面的 PDF,确认输出页数符合预期。
  3. 提取指定页面,并检查书签、旋转和文字层是否仍然可用。
  4. 对扫描件执行旋转或混合操作,确认页面方向没有变化。
  5. 使用与 UNCOMPRESSED 相关的配置重新处理文件,比较输出大小和打开结果。
  6. 查看日志,确认失败任务能够提供足够的诊断信息。

如果你需要批量验证文件,可以使用 Python 和 pypdf 对输出结果做基础检查。下面的脚本是一个可直接运行的示例,用于检查 PDF 页数和页面尺寸;它不替代 PDFsam Basic 的处理流程,但适合放在升级后的回归检查中。

运行前安装依赖:

python -m pip install pypdf

将下面内容保存为 check_pdf.py,然后把 output.pdf 替换为待检查文件:

from pathlib import Path
import sys

from pypdf import PdfReader


def main() -> int:
    if len(sys.argv) != 2:
        print(f"用法: {Path(sys.argv[0]).name} output.pdf")
        return 2

    pdf_path = Path(sys.argv[1])
    if not pdf_path.is_file():
        print(f"文件不存在: {pdf_path}")
        return 1

    reader = PdfReader(str(pdf_path))
    print(f"文件: {pdf_path}")
    print(f"页数: {len(reader.pages)}")

    for index, page in enumerate(reader.pages, start=1):
        box = page.mediabox
        width = float(box.width)
        height = float(box.height)
        print(f"第 {index} 页: {width:.1f} x {height:.1f} pt")

    return 0


if __name__ == "__main__":
    raise SystemExit(main())

执行:

python check_pdf.py output.pdf

如果升级前后页数或页面尺寸发生意外变化,再回到 PDFsam Basic 中检查对应任务的页面范围、旋转设置和压缩策略。对于需要保持原始质量的文件,还应人工抽查图片、字体和文本复制效果。

升级时的取舍

6.0.5 的重点是维护和可靠性,而不是改变 PDFsam Basic 的核心定位。升级前可以保留当前版本和配置备份,并准备几份具有代表性的输入文件。尤其要注意扫描 PDF、包含旋转页面的文档、带有复杂字体的报告,以及对文件大小有严格要求的归档材料。

如果 PDFsam Basic 是团队共享工具,建议统一记录版本号和处理策略,避免同一批文件在不同版本、不同压缩设置下产生难以比较的结果。日志格式重构后,也要同步检查内部故障排查文档或日志采集脚本。

小结

PDFsam Basic 6.0.5 带来了 JDK 25.0.4 和 JavaFX 25.0.4 更新,修复了 #856,提高了可读性,重构了日志系统,更新翻译,并修复了 UNCOMPRESSED 压缩策略相关问题。对于个人用户,直接升级并验证常用任务即可;对于团队和自动化流程,则应把输出文件、日志格式和压缩策略纳入一次小规模回归测试。


相关推荐