Previous topic

Kiel ŝanĝi etikedojn de MP3 dosiero

Next topic

Kiel konservi Pitonajn datenojn en HDF5 dosieroj

Kiel dividi PDF dosieron

Antaŭ nelonge, en la reto mi trovis PIV2. Ĝi estas en unu granda PDF dosiero. Pro sia grandeco (200 MB), ĝi estas malfacile uzebla. Tial, mi decidis ĝin dividi en pecojn - po unu por ĉiu litero.

Kopirajtoj!

Elŝuto de enretigita PIV2 estas ŝtelo, tial mi ne skribas kie mi ĝin trovis. Mi mem aĉetis ĝin jam libroforme, kaj konsideras la PDF version la kromaĵo, kiun eldonisto forgesis ;) aldoni.

Ekzistas pluraj iloj, kaj ankaŭ speciala modulo por Pitono, nomata pyPdf.

La ĉi-suban skripton mi trovis en la reto, kaj post kelka adaptigo ĝi dividis la grandan PDF dosieron en plurajn malgrandajn:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
'''
Dividi pdf dosieron en serion de pdf dosieroj.
La priskribo, en kiujn partojn ĝin dividi troviĝas en teksta dosiero.
La novaj dosieroj enhavu nur la difinitajn paĝojn.
'''

from pyPdf import PdfFileWriter, PdfFileReader 

en_dosiero = r'La nova plena ilustrita vortaro de Esperanto (2002).pdf'
el_dosiero = r'PIV2_'

pagxoj = open('pagxoj.txt') 
for linio in pagxoj: 
    linio1 = linio.strip() 
    de,gxis = (int(x) for x in linio1.split()) 

    el = PdfFileWriter() 
    en = PdfFileReader(file(en_dosiero, 'rb')) 
    for pagxo in range (de-1,gxis):
        el.addPage(en.getPage(pagxo)) 

    el_fluo = file(el_dosiero + str(de) + '-' + str(gxis) + '.pdf', 'wb') 
    el.write(el_fluo) 
    el_fluo.close() 
    el_fluo = None 
Priskribo de funkciado de pdf_dividi.py:
Linio Priskribo
7 Uzas pyPdf modulon.
9 Difinas la fontan (dividotan) dosieron.
10 Nomo de ĉiu kreita dosiero komenciĝu per “PIV2_”.
12

Difinas la dosieron kun numeroj de paĝoj, laŭ kiuj la fonta dosiero estu dividata. La dosiero enhavu en ĉiu linio paron da numeroj: komencan paĝon kaj finan paĝon. La uzita de mi dosiero estis tiu. * - 14-15 - Apartigas la komencan (de) kaj finan (gxis) paĝojn. * - 17 - Kreas novan PDF dokumenton. * - 18 - Malfermas la fontan PDF dokumenton. * - 19 - Por ĉiu paĝo de la difinita amplekso de la paĝoj de fonta dokumento ...

Note

Bonvolu rimarki, ke la PDF dokumento kalkulas paĝojn de 1, kaj ĝi ne ĉiam egalas al la numero kiu troviĝas ĉe paĝopiedo.

20 Aldonas novan paĝon en la novan PDF dokumenton, kaj kopias la fontan paĝon.
22 Kreas dosieron por la nova dokumento.
23 Konservas la novan dokumenton.
24-25 Forigas la kreitan dokumenton el la memoro.

Kaj jen, anstataŭ [*] unu 200 MB dokumento, oni havas dudek naŭ de 0.5 MB (por litero “Ĵ”) ĝis 29 MB (por litero “K”), kiuj legeblas eĉ per poŝkomputilo.

[*]La malnova PDF dosiero restas neŝanĝita (la skripto nur kreas novajn - ne detruas la malnovan).