C 合併和拆分PDF檔案

2022-01-10 03:34:13 字數 4585 閱讀 4384

一、合併和拆分pdf檔案的方式

pdf檔案使用了工業標準的壓縮演算法,易於傳輸與儲存。它還是頁獨立的,乙個pdf檔案包含乙個或多個「頁「,可以單獨處理各頁,特別適合多處理器系統的工作。pdf檔案結構主要可以分為四個部分:首部檔案體交叉引用表尾部。pdf操作類庫非常多,如下圖所示,常用的類庫有:spire.pdfitextsharp

二、使用 spire.pdf 合併和拆分pdf檔案

使用 nuget 新增spire.pdf 類庫,然後新增如下**:

1 /// 2         /// 合併pdf檔案

3 ///

4 /// 待合併檔案列表

5 /// 合併生成的檔名稱

6 static void spirepdfmerge(string files, string outfile)

7

11 12 /// 13 /// 按每頁拆分pdf檔案

14 ///

15 /// 待拆分pdf檔名稱

16 static void spirepdfsplit(string infile)

17 .pdf");

20 doc.close();

21 }

三、使用 itextsharp 合併和拆分pdf檔案使用 spire.pdf 操作pdf檔案,簡單高效,但生成的pdf檔案帶有水印,即使使用破解版在第一頁還是有水印,我們可以使用 itextsharp 類庫,該類庫生成的pdf無水印,具體使用如下:

1 /// 2         /// 合併pdf檔案

3 ///

4 /// 待合併檔案列表

5 /// 合併生成的檔名稱

6 static void itextsharppdfmerge(listinfiles, string outfile)

7

23 pdf.freereader(reader);

24 reader.close();

25 });

26 }

27 }

28 }

29 }

30 31 /// 32 /// 按每頁拆分pdf檔案

33 ///

34 /// 待拆分pdf檔名稱

35 static void itextsharppdfsplit(string infile)

36 .pdf", system.io.filemode.create));

45 sourcedocument.open();

46 var importedpage = pdfcopyprovider.getimportedpage(reader, i);

47 pdfcopyprovider.addpage(importedpage);

48 }

49 }

50 }

51 }

四、測試結果完整**如下:

1 using spire.pdf;

2 using system;

3 using system.collections.generic;

4 using system.io;

5 using system.linq;

6 using system.net.mime;

7 using system.text;

8 using system.threading.tasks;

9 using itextsharp.text;

10 using itextsharp.text.pdf;

11 using pdfdocument = itextsharp.text.pdf.pdfdocument;

12 13 namespace pdf

14 34 catch (exception e)

35

38 finally

39

42 }

43 44 #region spire.pdf

45 46 /// 47 /// 合併pdf檔案

48 ///

49 /// 待合併檔案列表

50 /// 合併生成的檔名稱

51 static void spirepdfmerge(string files, string outfile)

52

56 57 /// 58 /// 按每頁拆分pdf檔案

59 ///

60 /// 待拆分pdf檔名稱

61 static void spirepdfsplit(string infile)

62 .pdf");

65 doc.close();

66 }

67 68 #endregion

69 70 #region itextsharp.text.pdf

71 72 /// 73 /// 合併pdf檔案

74 ///

75 /// 待合併檔案列表

76 /// 合併生成的檔名稱

77 static void itextsharppdfmerge(listinfiles, string outfile)

78

94 pdf.freereader(reader);

95 reader.close();

96 });

97 }

98 }

99 }

100 }

101

102 /// 103 /// 按每頁拆分pdf檔案

104 ///

105 /// 待拆分pdf檔名稱

106 static void itextsharppdfsplit(string infile)

107 .pdf", system.io.filemode.create));

116 sourcedocument.open();

117 var importedpage = pdfcopyprovider.getimportedpage(reader, i);

118 pdfcopyprovider.addpage(importedpage);

119 }

120 }

121 }

122 }

123

124 #endregion

125

126 }

127 }

測試效果如下圖所示:

Python合併和拆分excel

當前目錄 og dir cwd origin 存放待合併的excel og ls os.listdir og dir 所有excel名稱 cb name combine.xlsx 合併後的檔名 合併 放置待拆分的excel 限1個 fname b dir os.listdir b dir 0 待拆分...

python 合併pdf檔案

coding utf 8 import os from pypdf2 import pdffilereader,pdffilewriter import time def getfilename filedir file list os.path.join root,filespath for ro...

drawboard pdf拆分檔案 PDF分頁

工作中經常會用到pdf,有時候需對pdf檔案進行一些處理卻讓我們束手無策,抓耳撓腮。比如拆分pdf。1官方pdf閱讀器 2 列印 這個估計是最常用的方法了。原來把拆分pdf的功能隱藏到這兒了。合併pdf模組是乙個付費專案,為啥拆分pdf也不搞成付費專案。難道工作中合併pdf的需求要遠遠高於拆分pdf...