Class PdfMerger

java.lang.Object
cloud.opencode.base.pdf.operation.PdfMerger

public final class PdfMerger extends Object
PDF Merger PDF 合并器

Merges multiple PDF documents into one.

将多个 PDF 文档合并为一个。

Features | 主要功能:

  • Merge multiple PDF files - 合并多个 PDF 文件
  • Merge specific pages - 合并指定页面
  • Keep bookmarks and annotations - 保留书签和注释
  • Add outline entries - 添加大纲条目

Usage Examples | 使用示例:

// Merge multiple PDFs
PdfMerger.create()
    .add(Path.of("doc1.pdf"))
    .add(Path.of("doc2.pdf"))
    .keepBookmarks(true)
    .mergeTo(Path.of("merged.pdf"));

// Merge specific pages
PdfMerger.create()
    .addPages(Path.of("document.pdf"), "1-3", "5", "7-10")
    .mergeTo(Path.of("selected.pdf"));

Security | 安全性:

  • Thread-safe: No — not designed for concurrent use - 线程安全: 否 — 非并发设计
  • Null-safe: Yes — parameters are validated - 空值安全: 是 — 参数已验证
Since:
JDK 25, opencode-base-pdf V1.0.0
Author:
Leon Soo www.LeonSoo.com
See Also:
  • Method Details

    • add

      public PdfMerger add(Path path)
      Adds a PDF file to merge. 添加要合并的 PDF 文件。
      Parameters:
      path - PDF file path | PDF 文件路径
      Returns:
      this merger | 当前合并器
    • add

      public PdfMerger add(PdfDocument document)
      Adds a PDF document to merge. 添加要合并的 PDF 文档。
      Parameters:
      document - PDF document | PDF 文档
      Returns:
      this merger | 当前合并器
    • add

      public PdfMerger add(InputStream inputStream)
      Adds PDF from input stream. 从输入流添加 PDF。
      Parameters:
      inputStream - PDF input stream | PDF 输入流
      Returns:
      this merger | 当前合并器
    • addPages

      public PdfMerger addPages(Path path, String... pageRanges)
      Adds specific pages from a PDF. 从 PDF 添加指定页面。
      Parameters:
      path - PDF file path | PDF 文件路径
      pageRanges - page ranges (e.g., "1-3", "5", "7-10") | 页面范围
      Returns:
      this merger | 当前合并器
    • addAll

      public PdfMerger addAll(List<Path> paths)
      Adds multiple PDF files. 添加多个 PDF 文件。
      Parameters:
      paths - PDF file paths | PDF 文件路径
      Returns:
      this merger | 当前合并器
    • keepBookmarks

      public PdfMerger keepBookmarks(boolean keep)
      Keeps bookmarks from source documents. 保留源文档的书签。
      Parameters:
      keep - whether to keep | 是否保留
      Returns:
      this merger | 当前合并器
    • keepAnnotations

      public PdfMerger keepAnnotations(boolean keep)
      Keeps annotations from source documents. 保留源文档的注释。
      Parameters:
      keep - whether to keep | 是否保留
      Returns:
      this merger | 当前合并器
    • addOutlines

      public PdfMerger addOutlines(boolean add)
      Adds outline entries for each document. 为每个文档添加大纲条目。
      Parameters:
      add - whether to add | 是否添加
      Returns:
      this merger | 当前合并器
    • merge

      public PdfDocument merge()
      Merges and returns document. 合并并返回文档。
      Returns:
      merged document | 合并后的文档
      Throws:
      OpenPdfException - if merging fails | 合并失败时抛出异常
    • mergeTo

      public void mergeTo(Path target)
      Merges and saves to file. 合并并保存到文件。
      Parameters:
      target - target file path | 目标文件路径
      Throws:
      OpenPdfException - if merging fails | 合并失败时抛出异常
    • mergeTo

      public void mergeTo(OutputStream outputStream)
      Merges and writes to stream. 合并并写入流。
      Parameters:
      outputStream - target stream | 目标流
      Throws:
      OpenPdfException - if merging fails | 合并失败时抛出异常
    • getSources

      public List<PdfMerger.MergeSource> getSources()
    • isKeepBookmarks

      public boolean isKeepBookmarks()
    • isKeepAnnotations

      public boolean isKeepAnnotations()
    • isAddOutlines

      public boolean isAddOutlines()
    • create

      public static PdfMerger create()
      Creates a new merger. 创建新的合并器。
      Returns:
      PDF merger | PDF 合并器