<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          【Python】用Python實現(xiàn)PDF文件分割和合并

          共 2210字,需瀏覽 5分鐘

           ·

          2020-12-26 19:24

          ? ? 有的時候有剪裁PDF的需求,雖然有軟件實現(xiàn)了這樣的功能,但有時候會遇到這種情況



          ????既然如此,為何不自己實現(xiàn)這個功能呢?上代碼

          #?導(dǎo)入讀寫pdf模塊
          from?PyPDF2?import?PdfFileReader,?PdfFileWriter
          '''
          注意:
          頁數(shù)從0開始索引
          range()是左閉右開區(qū)間
          '''


          def?split_pdf(file_name,?start_page,?end_page,?output_pdf):
          ????'''
          ????:param?file_name:待分割的pdf文件名
          ????:param?start_page:?執(zhí)行分割的開始頁數(shù)
          ????:param?end_page:?執(zhí)行分割的結(jié)束位頁數(shù)
          ????:param?output_pdf:?保存切割后的文件名
          ????'''

          ????#?讀取待分割的pdf文件
          ????input_file?=?PdfFileReader(open(file_name,?'rb'))
          ????#?實例一個?PDF文件編寫器
          ????output_file?=?PdfFileWriter()
          ????#?把分割的文件添加在一起
          ????for?i?in?range(start_page,?end_page):
          ????????output_file.addPage(input_file.getPage(i))
          ????#?將分割的文件輸出保存
          ????with?open(output_pdf,?'wb')?as?f:
          ????????output_file.write(f)

          def?merge_pdf(merge_list,?output_pdf):
          ????"""
          ????merge_list:?需要合并的pdf列表
          ??? output_pdf:合并之后的pdf名
          ????"""

          ????#?實例一個?PDF文件編寫器
          ????output?=?PdfFileWriter()
          ????for?ml?in?merge_list:
          ????????pdf_input?=?PdfFileReader(open(ml,?'rb'))
          ????????page_count?=?pdf_input.getNumPages()
          ????????for?i?in?range(page_count):
          ????????????output.addPage(pdf_input.getPage(i))

          ????output.write(open(output_pdf,?'wb'))


          if?__name__?==?'__main__':
          ????#?分割pdf
          ????split_pdf("test.pdf",?0,?3,?"0-2.pdf")
          ????split_pdf("test.pdf",?7,?12,?"7-11.pdf")
          ????split_pdf("test.pdf",?18,?23,?"18-22.pdf")
          ????split_pdf("test.pdf",?27,?33,?"26-32.pdf")
          ????split_pdf("test.pdf",?40,?44,?"40-43.pdf")
          ????split_pdf("test.pdf",?46,?51,?"46-50.pdf")
          ????split_pdf("test.pdf",?58,?66,?"58-65.pdf")
          ????split_pdf("test.pdf",?77,?84,?"77-83.pdf")
          ????split_pdf("test.pdf",?93,?97,?"93-96.pdf")
          ????split_pdf("test.pdf",?102,?106,?"102-105.pdf")
          ????#?合并pdf
          ????#?合并的pdf列表
          ????pdf_list?=?["0-2.pdf",?"7-11.pdf",?"18-22.pdf",?"26-32.pdf",?"40-43.pdf",?"46-50.pdf",?"58-65.pdf",?"77-83.pdf",?"93-96.pdf",?"102-105.pdf"]
          ????merge_pdf(pdf_list,?"all.pdf")


          ????當(dāng)然上面的代碼一開始不能直接運行,但不要著急,參照參考資料中的報錯鏈接將問題解決,就可以運行了。


          參考資料:

          報錯:

          https://blog.csdn.net/kmesky/article/details/102695520

          代碼:

          https://blog.csdn.net/wnma3mz/article/details/78823195

          往期精彩回顧





          獲取本站知識星球優(yōu)惠券,復(fù)制鏈接直接打開:

          https://t.zsxq.com/qFiUFMV

          本站qq群704220115。

          加入微信群請掃碼:

          瀏覽 47
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  无套无码| 日本黄色成熟视频 | 77777亚洲和欧洲视频在线观看 | 免费日韩在线三级黄色电影网址 | 青青草在线视频无码 |