Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk memisahkan dokumen PDF menggunakan modul PyPDF2 dalam Python
Pasang modul PyPDF2
# Modul ini sensitif huruf besar-besaran, y huruf kecil, dan selebihnya huruf besar
rreee
Selepas pemasangan selesai, buat folder khusus untuk menyimpan projek ini pada cakera keras tempatan Laluan storan di sini ialah F: PythonPyPDF2 Terdapat folder Python pada pemacu F dan folder dengan nama ini dicipta di dalamnya. Folder yang dinamakan sempena modul untuk menyimpannya secara berasingan dan membezakannya daripada projek lain.
Buat fail dan sediakan dokumen PDF
Mencari dokumen PDF yang lebih besar untuk latihan, saya memuat turunnya daripada Django laman web rasmi Dokumen ini cukup besar, dengan lebih daripada 1900 muka surat, yang pastinya cukup untuk berlatih Jika perlu, pergi ke laman web rasmi untuk memuat turun, atau terus balas 'pdf' pada akaun rasmi saya untuk mendapatkan pautan muat turun, dan kemudian. buat fail projek PDFCF.py .
Mula menulis
Aturcara bermula dengan dua baris Tulis dua ayat di atas dan di bawah Ayat pertama bermaksud untuk menentukan program yang sedang dijalankan . Ayat kedua Ayat ini adalah huraian bagi fail ini.
pip3 install PyPDF2
Idea pemisahan dokumen
Ia tidak ditetapkan berapa bahagian ia dibahagikan, tetapi ia adalah menetapkan berapa banyak halaman setiap bahagian terdiri daripada , dan kemudian secara dinamik mengira bilangan pecahan Sebaik sahaja anda mempunyai idea untuk membelah, langkah seterusnya ialah menyenaraikan formula pengiraan.
#! python# PDFCF.py - pdf文件拆分程序
Contohnya:
Jika kita ingin membahagikan dokumen pdf dengan jumlah 35 muka surat, ia akan dibahagikan kepada 10 muka surat setiap Formula pengiraan untuk berapa bahagian dokumen baharu boleh dipecahkan adalah seperti berikut:
拆分的份数= 文档总页数 / 拆份每个pdf组成的页数
Pada masa ini, semua orang memberi perhatian Jika bakinya ialah 0.5, apakah maksudnya ? Menggunakan contoh ini, ini bermakna terdapat 5 halaman yang tinggal selepas dipecahkan kepada 3 bahagian Dalam kes ini, tidak kira apa yang tinggal, anda perlu bergerak ke hadapan sebanyak 1 untuk menyelesaikan keseluruhan pemisahan ini 3 dokumen pertama Setiap dokumen terdiri daripada 10 muka surat, dan dokumen keempat terdiri daripada 5 halaman terakhir Jika ia boleh dibahagikan, hasilnya secara langsung adalah bilangan salinan berpecah.
Formula pengiraan pembahagian Python:
3.5 = 35 / 10
Bagaimana untuk membelahnya secara khusus?
Mari kita ambil pembahagian dokumen 35 halaman ini sebagai contoh:
Gelung setiap halaman data untuk bilangan dalam julat(35), dapatkan data setiap halaman, dan kemudian tentukan julat halaman pisah untuk dipecahkan:
Dokumen pertama bermula dari 0- -10 , tidak termasuk 10
Dokumen kedua adalah dari 10--20, tidak termasuk 20
Dokumen ketiga adalah dari 20 - 30, tidak termasuk 30
Dokumen keempat adalah dari 30--35, tidak termasuk 35
Kami mencari corak, setiap kali ia melintasi yang pertama Peraturan nombor ialah bilangan halaman dalam dokumen, yang boleh diperoleh dengan mendarabkan nombor yang dimilikinya. Kami mendapati bahawa tiada corak dalam nombor kedua Sebenarnya, jika kita perhatikan dengan teliti, terdapat satu pola Jika kita mengisih bilangan pecahan, contoh ini ialah 1--4 didarab dengan setiap Bilangan halaman yang mengandungi dokumen (bilangan halaman ditetapkan pada 10).
Tetapi apabila kita melintasi buat kali pertama, kita bermula dari 0, yang menjadikan num tidak boleh digunakan Kemudian kita mengubahnya dan mula melintasi dari 1, julat(1,35), melintasi dari awal, berdasarkan julat. tidak Mengandungi ciri terakhir dirinya, supaya satu halaman dokumen akan hilang selepas merentasi, kemudian kami menambah 1 padanya dan menjadi
untuk num dalam julat(1, 35+ 1)
Dokumen pertama bermula dari 10*(1-1)--10*1, tidak termasuk 10
Dokumen kedua ialah daripada 10*(2-1)--10*2, tidak termasuk 20
Dokumen ketiga ialah daripada 10*(3-1) -10*3, Tidak termasuk 30
Dokumen keempat adalah daripada 10(4-1)--35
Kod traversal khusus adalah seperti berikut :
if 35 % 10: # 判断是否有余数 35 // 10 + 1 # 取余数整数部分加1else: 0 # 能整除则直接返回0 # 将这个循环写到一行4 = 35 // 10 + 1 if 35 % 10 else 0
Nota: Apabila melintasi ke num = 4 (nombor isihan dokumen terakhir), hanya kembalikan jumlah muka surat 35, dan lintasan berakhir di sini . Mengapakah jumlah halaman di sini 35 dan bukannya 35+1? Ini kerana kita merentasi dari 0 kali ini, dan nombor halaman bermula dari 0, jadi tidak perlu menambah 1.
Prosedur pembahagian yang lengkap:
for num in range(1,35+1): pass for i in range(10 * (num-1), 10 * num if num != 4 else 35): pass
Nota: Saya secara peribadi merasakan idea pembahagian di atas agak berbelit-belit berminat dengan Jika anda mempunyai pemahaman yang menyeluruh tentang konsep pemangkasan tepi dan saiz langkah dalam senarai Python, saya rasa ia tidak perlu terlalu rumit Anda hanya perlu menjana senarai besar jumlah nombor halaman, dan kemudian berpecah senarai ke dalam beberapa senarai kecil menggunakan kaedah penghirisan, dan kemudian bahagikan setiap senarai Julat nombor halaman PDF yang dibahagikan ialah nombor pertama setiap senarai kecil - nombor terakhir + 1. Saya juga menyiarkan kod yang saya laksanakan menggunakan kaedah senarai untuk. rujukan anda.
Kaedah senarai pisah untuk membelah PDF:
import PyPDF2
Bagaimana untuk menggunakan?
Tekan dan tahan kekunci Shift di dalam folder projek, klik kanan tetikus, pilih untuk membuka tetingkap arahan di sini, masukkan PDFCF.py, tekan Enter, dan buat perubahan mengikut anda memerlukan nilai n.
Atas ialah kandungan terperinci Bagaimana untuk memisahkan dokumen PDF menggunakan modul PyPDF2 dalam Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!