合并PDF 文檔

<dependencies>
    <dependency>
        <groupId>com.itextpdf</groupId>
        <artifactId>itext7-core</artifactId>
        <version>7.1.16</version>
        <type>pom</type>
    </dependency>
</dependencies>

java 代碼

import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfReader;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.kernel.utils.PdfMerger;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.UUID;
public class CE06E04Combine {
    private static final String FILE_NAME1 = "";
    private static final String FILE_NAME2 = "";
    private static final String DEST = "";

    public static void main(String[] args) throws Exception {
        CE06E04Combine ce06E04Combine = new CE06E04Combine();
        ce06E04Combine.combinePDF(FILE_NAME1, FILE_NAME2,DEST);
        //ce06E04Combine.combinePDF(FILE_NAME1, FILE_NAME2);
        //存放文件目錄
        //String path = "";
        //ce06E04Combine.combinePDF2( path,path );
    }

    /**
     * 合并2個文檔
     * @param fileName1
     * @param fileName2
     * @return
     */
    private void combinePDF(String fileName1,String fileName2){
        String desFileName = new File(fileName1).getParentFile().getAbsolutePath()+"/" + UUID.randomUUID()+".pdf";
        combinePDF(fileName1,fileName2,desFileName);
    }
    private void combinePDF(String fileName1, String fileName2, String desFileName)  {
        PdfDocument pdf = null;
        try {
            pdf = new PdfDocument(new PdfWriter(desFileName));
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
        //定義合并文檔
        PdfMerger merger = new PdfMerger(pdf);
        //添加第一個文檔
        PdfDocument firstSourcePdf = null;
        try {
            firstSourcePdf = new PdfDocument(new PdfReader(fileName1));
        } catch (IOException e) {
            e.printStackTrace();
        }
        merger.merge(firstSourcePdf, 1, firstSourcePdf.getNumberOfPages());
        //添加第二個文檔
        PdfDocument secondSourcePdf = null;
        try {
            secondSourcePdf = new PdfDocument(new PdfReader(fileName2));
        } catch (IOException e) {
            e.printStackTrace();
        }

        merger.merge(secondSourcePdf, 1, secondSourcePdf.getNumberOfPages());

        // 合并并關(guān)閉
        merger.close();
        firstSourcePdf.close();
        secondSourcePdf.close();
        pdf.close();
    }

    /**
     * 合并文件夾下多個pdf 文檔
     * @param parentDir 目標(biāo)路徑
     * @param desPath  //合并后文檔輸出地址
     */
    private void combinePDF2(String parentDir, String desPath)  {

        String[] files = new File(parentDir).list();

        String desFileName = desPath  +UUID.randomUUID().toString()+".pdf";
        PdfDocument pdf = null;
        try {

            pdf = new PdfDocument(new PdfWriter(desFileName));

        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
        //定義合并文檔
        PdfMerger merger = new PdfMerger(pdf);

        //添加第一個文檔
        PdfDocument sourcePdf = null;
        for (String file : files) {
            String file1 = parentDir+file;
            try {
                sourcePdf = new PdfDocument(new PdfReader(file1));
            } catch (IOException e) {
                e.printStackTrace();
            }
            merger.merge(sourcePdf, 1, sourcePdf.getNumberOfPages());
        }

        // 合并并關(guān)閉
        merger.close();
        sourcePdf.close();
        pdf.close();
    }
}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末氓栈,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子锈麸,更是在濱河造成了極大的恐慌抛蚤,老刑警劉巖是己,帶你破解...
    沈念sama閱讀 221,548評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡采转,警方通過查閱死者的電腦和手機耙箍,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,497評論 3 399
  • 文/潘曉璐 我一進(jìn)店門撰糠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人辩昆,你說我怎么就攤上這事阅酪。” “怎么了汁针?”我有些...
    開封第一講書人閱讀 167,990評論 0 360
  • 文/不壞的土叔 我叫張陵术辐,是天一觀的道長。 經(jīng)常有香客問我施无,道長辉词,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,618評論 1 296
  • 正文 為了忘掉前任猾骡,我火速辦了婚禮瑞躺,結(jié)果婚禮上敷搪,老公的妹妹穿的比我還像新娘。我一直安慰自己幢哨,他們只是感情好赡勘,可當(dāng)我...
    茶點故事閱讀 68,618評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著捞镰,像睡著了一般闸与。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上岸售,一...
    開封第一講書人閱讀 52,246評論 1 308
  • 那天践樱,我揣著相機與錄音,去河邊找鬼冰评。 笑死映胁,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的甲雅。 我是一名探鬼主播解孙,決...
    沈念sama閱讀 40,819評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼抛人!你這毒婦竟也來了弛姜?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,725評論 0 276
  • 序言:老撾萬榮一對情侶失蹤妖枚,失蹤者是張志新(化名)和其女友劉穎廷臼,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體绝页,經(jīng)...
    沈念sama閱讀 46,268評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡荠商,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,356評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了续誉。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片莱没。...
    茶點故事閱讀 40,488評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖酷鸦,靈堂內(nèi)的尸體忽然破棺而出饰躲,到底是詐尸還是另有隱情,我是刑警寧澤臼隔,帶...
    沈念sama閱讀 36,181評論 5 350
  • 正文 年R本政府宣布嘹裂,位于F島的核電站,受9級特大地震影響摔握,放射性物質(zhì)發(fā)生泄漏寄狼。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,862評論 3 333
  • 文/蒙蒙 一氨淌、第九天 我趴在偏房一處隱蔽的房頂上張望例嘱。 院中可真熱鬧狡逢,春花似錦、人聲如沸拼卵。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,331評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽腋腮。三九已至,卻和暖如春壤蚜,著一層夾襖步出監(jiān)牢的瞬間即寡,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,445評論 1 272
  • 我被黑心中介騙來泰國打工袜刷, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留聪富,地道東北人。 一個月前我還...
    沈念sama閱讀 48,897評論 3 376
  • 正文 我出身青樓著蟹,卻偏偏與公主長得像墩蔓,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子萧豆,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,500評論 2 359

推薦閱讀更多精彩內(nèi)容

  • 如今在工作中PDF文檔越來越受歡迎奸披,辦公人員經(jīng)常會接觸和處理PDF文檔。例如涮雷,將包含多個發(fā)票的PDF文檔拆分為多個...
    Codingqi123閱讀 2,066評論 0 1
  • 對于經(jīng)常跟PDF打交道的白領(lǐng)用戶來說阵面,合并PDF是一個繞不過去的坎。PDF文件是一種不可以拆分洪鸭,導(dǎo)出頁面或者編輯的...
    小樣_專家閱讀 1,461評論 0 2
  • 打開【Adobe Acrobat Pro DC】--點擊【文件】-- 【創(chuàng)建】--【將文件合并為單個PDF】--添...
    希瑞的筆記本閱讀 127評論 0 0
  • 隨著PDF文檔在日常工作學(xué)習(xí)中的運用越來越廣泛览爵,為了便于更好地儲存和管理文檔置鼻,不可避免地會遇到將多個PDF文...
    Tina_Tang閱讀 863評論 0 1
  • 在日常使用Excel軟件辦公時,通常會產(chǎn)生很多文檔拾枣。當(dāng)我們需對其中的數(shù)據(jù)進(jìn)行整理和統(tǒng)計時沃疮,對文檔進(jìn)行合并處理將能夠...
    Tina_Tang閱讀 1,263評論 2 0