欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java實現(xiàn)刪除PDF中指定頁面

 更新時間:2023年11月20日 16:10:51   作者:E-iceblue  
這篇文章主要為大家詳細(xì)介紹了如何使用一個免費的國產(chǎn)Java庫來刪除PDF中的指定頁面或者刪除PDF中的空白頁,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下

對PDF頁面的增刪通常需要借助專門的工具,而這些工具一般需要付費才能使用。那么我們可以通過Java代碼免費實現(xiàn)這一功能嗎?答案是肯定的。這篇文章就教大家如何使用一個免費的國產(chǎn)Java庫來刪除PDF中的指定頁面或者刪除PDF中的空白頁。

使用Java快速刪除PDF中的指定頁面

1. 首先,我們需要先將免費庫 Free Spire.PDF for Java 添加到Java項目中。下載后手動導(dǎo)入jar或者通過Maven倉庫安裝都可。

2. 創(chuàng)建一個Java類,并導(dǎo)入所需的類。

import com.spire.pdf.*;

3. 通過 PdfDocument 類的 loadFromFile() 方法加載PDF文檔。

4. 通過索引刪除指定PDF頁面 (頁面的索引從零開始)。

PdfDocument.getPages().removeAt(0); //此為刪除第一頁

5. 刪除頁面后,將PDF 文檔保存保存至指定文件路徑。

下面是完整代碼,比較簡單:

import com.spire.pdf.*;
 
public class DeletePage {
    public static void main(String[] args) {
 
        //創(chuàng)建PdfDocument對象
        PdfDocument pdf = new PdfDocument();
 
        //加載PDF文檔
        pdf.loadFromFile("示例.pdf");
 
        //刪除第一頁
        pdf.getPages().removeAt(0);
 
        //保存結(jié)果文件
        pdf.saveToFile("刪除PDF頁面.pdf");
        pdf.close();
    }
}

使用Java自動查找并刪除PDF中的空白頁面

1. 安裝免費庫 Free Spire.PDF for Java 后,新建一個Java類,并導(dǎo)入如下類:

import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;
import com.spire.pdf.graphics.PdfImageType;

2. 通過 PdfDocument 類的 loadFromFile() 方法加載PDF文檔。

3. 遍歷PDF中的頁面并通過 PdfPageBase 類的 isBlank() 方法來檢測頁面是否為空白頁面。

1) 如果是完全空白的頁面可以使用 remove() 方法直接刪除;

2) 如果不是完全空白的頁面,需要先將這些頁面轉(zhuǎn)為圖片,然后再自定義一個 isBlankImage() 方法判斷轉(zhuǎn)換出的圖片是否為空白圖片,如果是,再刪除空白圖片所在的頁面。

4. 刪除所有空白頁后,將PDF文檔保存保存至指定文件路徑。

具體實現(xiàn)代碼:

import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;
import com.spire.pdf.graphics.PdfImageType;
 
import java.awt.*;
import java.awt.image.BufferedImage;
 
public class removeBlankPages {
    public static void main(String []args){
 
        //創(chuàng)建PdfDocument對象
        PdfDocument pdf = new PdfDocument();
 
        //加載PDF文件
        pdf.loadFromFile("空白頁.pdf");
 
        BufferedImage image;
        //遍歷PDF中的所有頁面
        for(int i = pdf.getPages().getCount()-1; i>=0; i--)
        {
            PdfPageBase page = pdf.getPages().get(i);
            //檢測是否為空白頁面
            if(page.isBlank())
            {
                //移除完全空白的頁面
                pdf.getPages().remove(page);
            }
            else
            {
                //將PDF頁面轉(zhuǎn)換為圖片
                image = pdf.saveAsImage(i, PdfImageType.Bitmap);
 
                //檢測轉(zhuǎn)換后的圖片是否為空白圖片
                if (isBlankImage(image))
                {
                    //移除空白圖片所在頁面
                    pdf.getPages().remove(page);
                }
            }
 
        }
 
        //保存結(jié)果文件
        pdf.saveToFile("刪除空白頁.pdf");
    }
    //檢測圖片是否為空白圖片
    public static boolean isBlankImage(BufferedImage image)
    {
        BufferedImage bufferedImage = image;
 
        Color pixel;
        for (int i = 0; i < bufferedImage.getWidth(); i++)
        {
            for (int j = 0; j < bufferedImage.getHeight(); j++)
            {
                pixel = new Color(bufferedImage.getRGB(i, j));
                if (pixel.getRed() < 240 || pixel.getGreen() < 240 || pixel.getBlue() < 240)
                {
                    return false;
                }
            }
        }
        return true;
    }
}

因 PdfPageBase.isBlank() 方法無法檢測出包含白色圖片的頁面,所以需要自定義一個方法來檢測這些空白圖片,這樣才能刪除PDF文檔中的所有空白頁。

代碼執(zhí)行前:

執(zhí)行后:

到此這篇關(guān)于Java實現(xiàn)刪除PDF中指定頁面的文章就介紹到這了,更多相關(guān)Java刪除PDF頁面內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論