IRONSOFTWAREHOME

如何在Java中分割PDF

Curtis Chau
Curtis Chau
Updated: 2026年6月16日

在Java中分割PDF很簡單,IronPDF提供PdfDocument類上,可以用來提取單個頁面、抽取頁面範圍或在邊界處分割文件。 每個方法都會返回一個新的PdfDocument,您可以獨立於原件保存。

快速開始:在Java中分割PDF

  1. 透過Maven或Gradle安裝 IronPDF for Java
  2. 使用License.setLicenseKey()設置您的授權金鑰
  3. 使用PdfDocument.fromFile()載入PDF
  4. 使用copyPage()提取單個頁面
  5. 使用saveAs()保存結果
  1. 1Install IronPDF with Maven Central Repository

    > mvn install

  2. 2複製並運行這段程式碼片段。

    //:path=/static-assets/ironpdf-java/content-code-examples/how-to/java-split-pdf-tutorial/quickstart.java
    import java.io.IOException;
    import java.nio.file.Path;
    import com.ironsoftware.ironpdf.License;
    import com.ironsoftware.ironpdf.PdfDocument;
    
    public class Main {
        public static void main(String[] args) throws IOException {
            // Set the license key before calling any IronPDF methods
            License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");
    
            // Load the source PDF from disk
            PdfDocument pdf = PdfDocument.fromFile(Path.of("source.pdf"));
    
            // Extract the first page (zero-based index 0) into a new document
            PdfDocument firstPage = pdf.copyPage(0);
    
            // Save the extracted page as a standalone PDF
            firstPage.saveAs(Path.of("page-one.pdf"));
        }
    }
    Java
  3. 3部署以在您的實時環境中測試

    今天就開始在您的專案中使用IronPDF,透過免費試用
    arrow pointer

程式化地生成文件時,分割PDF是一個常見需求。 生成的一個報告可能需要在分發前拆分成單獨的部分。 歸檔工作流通常需要將每個章節或發票儲存為單獨的文件。在選擇性共享場景中,如只向客戶發送特定頁面的範圍,提取所需的頁面比發送整個文件更有利。

IronPDF通過一個一致的API在PdfDocument類上處理所有三種分割模式。 用來從HTML生成PDF或載入現有文件的相同類,公開了頁面提取方法,因此分割自然整合到任何現有IronPDF工作流中。 有關設置和依賴項配置的資料,請參閱入門概述。

IronPDF中的所有頁面索引都是從零開始的。 如果您的原件文件有十頁,有效索引範圍從0到9。這適用於splitBy的邊界參數。 傳入一個超出範圍的索引將在運行時拋出異常,因此在處理可變長度的文件時,請對頁面計數進行驗證。

開始之前我需要什麼準備?

在分割PDFs之前,請確認已將IronPDF新增到您的Java專案中作為Maven或Gradle的依賴項。 程式庫需要Java 8或更高版本。 從Maven Central新增IronPDF artifact到您的構建文件中:

<dependency>
    <groupId>com.ironsoftware</groupId>
    <artifactId>ironpdf</artifactId>
    <version>2024.9.1</version>
</dependency>
XML

對於Gradle專案,將等效的build.gradle中。 完整的依賴項和配置指導可在入門概述中找到。

需要有效的授權金鑰。 在應用啟動時設置它,然後再調用任何IronPDF方法:

License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");
Java

有關授權選項和試用金鑰,請存取授權金鑰指南。

提示: IronPDF中的全部頁面索引使用從0開始的編號。 文件的第1頁為索引0,第2頁為索引1,依此類推。

如何從PDF中提取單個頁面?

PdfDocument返回。 原始文件不會被修改。 1代表第二頁,以此類推。

當您的工作流需要隔離特定頁面時,這個方法是合適的,比如提取封面頁,簽名頁或從批量生成的文件中提取單據。

//:path=/static-assets/ironpdf-java/content-code-examples/how-to/java-split-pdf-tutorial/copy-single-page.java
import java.io.IOException;
import java.nio.file.Path;
import com.ironsoftware.ironpdf.License;
import com.ironsoftware.ironpdf.PdfDocument;

public class Main {
    public static void main(String[] args) throws IOException {
        // Set the license key before calling any IronPDF methods
        License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");

        // Load the source PDF from disk
        PdfDocument pdf = PdfDocument.fromFile(Path.of("source.pdf"));

        // Extract the third page (zero-based index 2) into a new document
        PdfDocument thirdPage = pdf.copyPage(2);

        // Save the extracted page as a standalone PDF
        thirdPage.saveAs(Path.of("third-page.pdf"));
    }
}
Java

返回的PdfDocument完全獨立於源文件。 在保存前,您可以進一步轉換,新增註釋,或與其他文件合併。

如何從PDF中提取一個頁面範圍?

PdfDocument返回。 copyPages(1, 4)將提取頁面2, 3, 4和5(索引值1到4)。

頁面範圍提取適合的場景有: 從多章節報告中抽取一個章節,提取一個多頁的附錄,或從導出為PDF的演示中隔離一組幻燈片。

//:path=/static-assets/ironpdf-java/content-code-examples/how-to/java-split-pdf-tutorial/copy-page-range.java
import java.io.IOException;
import java.nio.file.Path;
import com.ironsoftware.ironpdf.License;
import com.ironsoftware.ironpdf.PdfDocument;

public class Main {
    public static void main(String[] args) throws IOException {
        // Set the license key before calling any IronPDF methods
        License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");

        // Load a multi-page source PDF
        PdfDocument pdf = PdfDocument.fromFile(Path.of("multi-page-report.pdf"));

        // Extract pages 2 through 5 (zero-based indexes 1 through 4, inclusive)
        PdfDocument chapter = pdf.copyPages(1, 4);

        // Save the extracted page range as a standalone document
        chapter.saveAs(Path.of("chapter-pages-2-to-5.pdf"));
    }
}
Java

如果源文件的頁面數少於請求的toIndex,IronPDF將拋出異常。 在調用pdf.getPageCount(),當操作的文件頁面數可能會有所變化時。

如何將PDF分成兩個文件?

List<PdfDocument>,其中包含正好兩個元素。 第一個元素包含從索引0到splitAfterPageIndex(包含)的頁面。 第二個元素包含從splitAfterPageIndex + 1到文件結束的所有剩餘頁面。

例如,在一份十頁的文件上調用splitBy(2)將產生:

  • parts.get(0):頁面0, 1, 2(前三頁)
  • parts.get(1):頁面3到9(剩餘的七頁)

此方法適合在已知邊界處分割文件:將封面與正文分開,在段落分割處分割文件,或者將一個批處理文件分成兩半以便並行處理。

//:path=/static-assets/ironpdf-java/content-code-examples/how-to/java-split-pdf-tutorial/split-by-boundary.java
import java.io.IOException;
import java.nio.file.Path;
import java.util.List;
import com.ironsoftware.ironpdf.License;
import com.ironsoftware.ironpdf.PdfDocument;

public class Main {
    public static void main(String[] args) throws IOException {
        // Set the license key before calling any IronPDF methods
        License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");

        // Load the source PDF from disk
        PdfDocument pdf = PdfDocument.fromFile(Path.of("source.pdf"));

        // Split after page index 2 -- first part: pages 0-2, second part: pages 3 to end
        List<PdfDocument> parts = pdf.splitBy(2);

        // Save the first part (pages 0 through 2)
        parts.get(0).saveAs(Path.of("part-one.pdf"));

        // Save the second part (pages 3 through end)
        parts.get(1).saveAs(Path.of("part-two.pdf"));
    }
}
Java
請注意: splitBy總是返回一個包含恰好兩個元素的列表。 如果splitAfterPageIndex等於文件的最後一頁索引,那麼第二個元素將是一個空文件。 在分割點是動態計算時,根據pdf.getPageCount() - 1驗證分割邊界。

在Java中分割PDF的下一步是什麼?

IronPDF的splitBy方法涵蓋了Java中PDF分割的全範圍需求,從單頁提取到基於範圍的分割,甚至到基於邊界的分割。 每個方法都返回一個獨立的PdfDocument,準備進一步操作或立即保存。

要繼續在Java中處理PDF文件,請探索這些相關資源:

開始您的免費試用,以將PDF分割新增到您的Java工作流程中。 若要購買用於生產的授權,請查看授權選項。

常見問題

如何在Java中使用IronPDF拆分PDF?

使用PdfDocument.fromFile()載入PDF,然後調用copyPage(index)來提取單個頁面,copyPages(from, to)來提取範圍,或splitBy(index)來將文件分為兩部分。用saveAs()保存每個結果。

copyPage, copyPages和splitBy之間有何區別?

copyPage(index)通過零為基的索引提取單個頁面。copyPages(fromIndex, toIndex)提取連續的範圍,兩個邊界都是含在內的。splitBy(index)在邊界處分割文件並返回一個包含兩個元素的List<PdfDocument>:頁面0至邊界索引和所有剩餘頁面。

IronPDF中的頁面索引是基於零還是基於一?

IronPDF中的頁面索引是基於零的。文件的第一頁是索引0,第二頁是索引1,以此類推。這適用於copyPage, copyPages, 和splitBy。

splitBy返回什麼?

splitBy(splitAfterPageIndex)返回一個包含兩個元素的List<PdfDocument>。第一個元素包含頁面0到分割索引(含在內)。第二個元素包含所有剩餘的頁面。如果分割索引是最後一頁,第二個元素將是個空文件。

在Java中使用IronPDF拆分PDF的先決條件是什麼?

您需要Java 8或更高版本,IronPDF程式庫須作為Maven或Gradle依賴項加入,並且在任何IronPDF呼叫之前,必須用License.setLicenseKey()設置有效的授權金鑰。

如何從PDF中提取第2到第5頁在Java中?

使用pdf.copyPages(1, 4)提取第2到第5頁。IronPDF使用基於零的索引,因此第2頁是索引1,第5頁是索引4。兩個邊界都是含在內的。用saveAs()保存結果。

How does the `splitBy` method function in IronPDF?

The `splitBy(int splitAfterPageIndex)` method divides a PDF at a specified boundary, returning a list with two `PdfDocument` parts, split at the given index.

What is the page index base used in IronPDF?

IronPDF uses zero-based numbering for page indexes. For example, the first page is indexed as 0.

What are the prerequisites for splitting a PDF using IronPDF in Java?

Before splitting a PDF using IronPDF, ensure the IronPDF library is integrated as a Maven or Gradle dependency, and a valid license key is set.

Where can you find more examples of using IronPDF for Java?

More examples and code samples for using IronPDF with Java can be found in the IronPDF documentation and on the official website's example section.

Curtis Chau
技術作家

Curtis Chau擁有Carleton大學的電腦科學學士學位,專精於前端開發,擁有Node.js、TypeScript、JavaScript和React的專業知識。Curtis熱衷於建立直觀且美觀的使用者介面,喜愛使用現代框架並建立結構良好、視覺吸引力的手冊。

...
閱讀更多

準備好開始了嗎?

版本:2026.6剛剛發布

立即獲取您的免費 30天試用金鑰。
無需信用卡或帳戶建立
PDF的Java Maven程式庫
using Maven 安裝

版本: 2026.6

<dependency>
   <groupId>com.ironsoftware</groupId>
   <artifactId>ironpdf</artifactId>
   <version>2026.6.1</version>
</dependency>
https://central.sonatype.com/artifact/com.ironsoftware/ironpdf/2026.6.1
or
Java PDF JAR
下載 JAR

版本: 2026.6

手動安裝到您的專案中

有問題嗎?聯繫我們的開發團隊。

Key in blue circle

立即免費取得 30 天試用金鑰。

Your trial license will be sent to your email address

無任何限制。100% 解鎖。無需信用卡。

OR
bullet_checked無需信用卡或建立帳號無任何限制。100% 解鎖。無需信用卡。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried Iron Suite
預訂您的免費 即時演示
Booking Badge

全球數百萬工程師的信任

Iron Software的客戶商標
獲取您的無義務諮詢
填寫以下表格或發送電子郵件至sales@ironsoftware.com
您的詳細資訊始終保持機密。
全球數百萬工程師的信任
Iron Software的客戶商標
立即獲取您的30天試用金鑰。
無需信用卡或帳戶建立
PDF的Java Maven程式庫
using Maven 安裝

版本: 2026.6

<dependency>
   <groupId>com.ironsoftware</groupId>
   <artifactId>ironpdf</artifactId>
   <version>2026.6.1</version>
</dependency>
https://central.sonatype.com/artifact/com.ironsoftware/ironpdf/2026.6.1
or
Java PDF JAR
下載 JAR

版本: 2026.6

手動安裝到您的專案中