Professional Documents
Culture Documents
Working With PDFs in Python - Inserting, Deleting, and Reordering Pages
Working With PDFs in Python - Inserting, Deleting, and Reordering Pages
ÿ23ÿ71
ÿ7126ÿ2ÿ5ÿ3
62
3ÿ
ÿ
62ÿ271ÿ3ÿ2ÿ71
ÿÿ!!ÿ"#
$ÿ%&#ÿÿ'!(&()#
%#(!*ÿ+!*ÿÿ,((ÿ"#ÿ-
.ÿ56
ÿ1
6
/
012345672841
9:#ÿ(!;ÿ#ÿ(!ÿ!:(ÿ,<ÿÿ!!ÿ#(#ÿ,ÿ=,()ÿ=!:ÿ"+>#ÿÿ"?!:,@ÿ%ÿ!:ÿ(A,B#
(!;#ÿ=ÿAÿÿ!(,B;!,ÿ!,ÿ(ÿ"+>ÿ,;B&!#ÿB#ÿ"?!:,@ÿ,ÿ<(ÿ?,B
:Aÿ(ÿ:,=ÿ!,ÿ&B!ÿC#!ÿ"+>#*ÿÿ!,ÿ(ÿÿC!(;!ÿ!:ÿ;,!!ÿDÿE,!:
!C!ÿÿ&#@ÿ>B(!:(&,(*ÿ=ÿ:Aÿ#;B##ÿ#!!ÿ,;B&!#ÿ!,ÿ!#ÿ#
#*ÿ#ÿ=ÿ#ÿÿ=!(&()#ÿÿE(;,#@
F,=ÿÿ!:#ÿ(!;ÿ=ÿ=ÿ,ÿ,ÿ#!ÿ<B(!:(ÿÿ&,#!(!ÿ:,=ÿ!,ÿ(((ÿÿ"+>
,;B&!ÿÿÿ<=ÿ<<(!ÿ=?#@
+!ÿ"#ÿ=!:ÿ<(=
+!ÿ"#ÿ=!:ÿ"?GB"+>
%#(!ÿ"#ÿ=!:ÿ"?GB"+>
!!ÿHAÿÿIÿ"#ÿ=!:ÿ"?"+>J
KLML281NÿPQNLRÿS82TÿU5V3S
+!ÿABÿ#ÿ<(,&ÿÿ"+>ÿ<ÿ#ÿ#ÿ#&ÿ#ÿ!:ÿ<,,=W
ÿÿ"+>ÿ#ÿÿB!ÿ<
'(!ÿ#;!ÿ#ÿ!,ÿÿ=ÿ"+>ÿ#ÿÿ,B!B!ÿ<
9:ÿ<,,=ÿC&ÿ(&,A#ÿ!:ÿ<(#!ÿ!=,ÿ#ÿ<(,&ÿÿ"+>ÿ,;B&!@ÿX#
!:ÿ<(=ÿE((?*ÿ!:ÿ<ÿ#ÿ(ÿ=!:ÿ!:ÿ:ÿ,<ÿ!:ÿYZ[\]^Z]_`aÿ;##ÿ<(#!@ÿHC;!ÿ<,(ÿE,!:
!:ÿ<(#!ÿÿ#;,ÿ*ÿ;:ÿÿ#ÿÿ!,ÿ!:ÿ,B!B!ÿ<ÿB#
!:ÿ^ZZb^c]`aÿ&!:,*ÿÿ!:ÿ=(!!ÿ!,ÿ#)ÿA!B?@
2.6
ÿdÿ#:,=#ÿ!:ÿ,B!B!ÿ=:ÿC;B!ÿ!:ÿ;,ÿ,ÿÿ<,B(Dÿ"+>ÿ<@
eÿghijkhlmnhopqrsn
eÿtuvswuÿqruÿxmkjqÿqysÿoz{ujÿ|}swukÿjruuq~ÿxksvÿqruÿ
0123ÿ56017ÿ835219ÿ
60
61ÿ
601891
85908ÿÿ
35560
295908ÿÿ
3556
96560
ÿÿ !ÿ"#$"ÿ#$ÿ%" "ÿ&'() *
1
61859ÿÿ
60
61+85908,
718912959ÿÿ
601891+,
ÿ-&ÿ !"&./!ÿ !ÿ0#/*ÿ&ÿ# "ÿ !ÿ1
021ÿ21195
3ÿ8ÿ1
3++1
618595
34,,5
ÿÿÿÿ80ÿ21195
3ÿ6ÿ75
ÿÿÿÿÿÿÿÿ718912959
665
3+1
618595
34821195
39,
ÿÿÿÿÿÿÿÿ5189+
6683ÿ5
3ÿ:8ÿ:ÿ+21195
3ÿ;ÿ7,,
ÿ<" ÿ !ÿ=&$$ÿ)& ÿ &ÿ$*>
7189129597189+295908,
?@A@BCDEÿGHE@IÿJCBKÿGLMNG?O
PQRÿTUVWTXYÿZ[\]^]Uÿ_`aRbÿc[dQÿeW[dRÿ^ÿfRcÿb`gQ[bd[_^dRhÿaRdQ`hbÿdQ^dÿb[agZ[fUÿhRZRd[ij
g^jRbÿf]`aÿ^ÿTXYÿf[ZRkÿldÿ^ZZ̀cbÿU`Wÿd̀ÿbgR_[fUÿR[dQR]ÿ^ÿb[ijZRÿg^jRÿmWb[ij
dQRÿ69
3+,ÿaRdQ`hnoÿ̀]ÿ^ÿ]^ijRÿ̀fÿg^jRÿiWa\R]bÿmWb[ij
dQRÿ69
3
3+,ÿaRdQ`hnoÿ̀]ÿ^ÿZ[bdÿc[dQÿdQRÿg^jRÿiWa\R]bÿmWb[ij
dQRÿ429+,ÿaRdQ`hnk
PQRÿf̀ZZ̀c[ijÿRp^agZRÿc[ZZÿhRa`ibd]^dRÿQ`cÿd̀ÿWbRÿ^ÿZ[bdÿ[iÿ̀]hR]ÿd̀ÿbRZR_dÿdQRÿg^jRbÿd̀
qRRgÿf]`aÿdQRÿ̀][j[i^Zÿh`_WaRidkÿrRÿ^c^]RÿdQ^dÿdQRÿg^jRbÿdQ^dÿ^]Rÿi`dÿbgR_[f[Rhÿc[ZZÿi`dÿ\R
g^]dÿ̀fÿdQRÿ̀WdgWdÿh`_WaRidkÿliÿ̀W]ÿ_^bRÿdQRÿ̀WdgWdÿh`_WaRidÿ_`id^[ibÿdQRÿf[]bdoÿbR_`iho
^ihÿf̀W]dQÿg^jRbÿ̀iZUk
ÿst.*"t't0u !&
ÿv)#wwÿ !# ÿxuy.xzÿ*ÿ=0&" $ÿ#*ÿ {
835219ÿ089|
0123456078ÿ
ÿ8
27826
3423456078ÿ
ÿ8
2788
1826
ÿÿÿ !ÿ"ÿ#ÿ$ÿ%&ÿ'ÿ(ÿ)
60785*
178ÿ
ÿ604+281,0123456078-
2
8.570.4ÿ
ÿ/012134
ÿ567ÿÿ !ÿ(ÿ!8ÿÿ"99
60785*
178.878:4,2
8.570.4-
60785*
178.
;8,3423456078-
<=>?@AB=CÿEFC?>ÿGBAHÿEIJKELM
NOPÿRSTURVWÿXYZ[\[Sÿ\XX]^_ÿS]Uÿ̀]ÿYa_P[ÿ̀b\cP_ÿ\_ÿ^PXXdÿèÿb[]fYgP_ÿ̀OP
hPÒ]g_ÿ18ij
8,-ÿk][ÿ\ggYacÿl]hbXPP̀XSÿZX\amÿb\cP_nÿ\agÿ01.84j
8,-ÿYaÿ][gP[ÿ̀]ÿ\ggÿ\a
PoY_Ỳacÿb\cPdÿNOPÿaPoÿ̀Po\hbXPÿ_O]^_ÿO]^ÿ̀]ÿ\ggÿ\ÿb\cPÿk[]hÿ\ÿgYkkP[Paÿ̀RVWÿg]lUhPa`
\ÿ̀ÒPÿPagÿ]kÿ\a]ÒP[ÿ]aPd
ÿpq9!rqsqt"
ÿu766ÿÿvtw9vxÿ!ÿy"r(ÿ!ÿz
024ÿ604+
001
752652
4*ÿ
ÿ8
27826
84
52
852
4*ÿ
ÿ84
2
826
342345607852
4*ÿ
ÿ8
2788481826
001
7526ÿ
ÿ604+281,001
752652
4*-
84
52
8ÿ
ÿ604+281,84
52
852
4*-
001
752601.84j{|,84
52
8-
001
7526.
;8,342345607852
4*-
}~BAAB=Cÿ?=ÿF=ÿÿEFC?>ÿGBAHÿEIELM
NOPÿk]XX]^YacÿPo\hbXPÿU_P_ÿRSRVW
ÿ\agÿg]P_ÿ̀OY_ÿZSÿ̀\mYacÿ\ÿkYXPnÿ_Pb\[\ỲacÿỲÿYa`]ÿỲ_
PfPaÿ\agÿ]ggÿb\cP_nÿ_\fYacÿ̀OPÿPfPaÿb\cP_ÿYaÿ̀OPÿkYXPÿ8;8126nÿ\agÿ̀OPÿ]ggÿb\cP_
Yaÿ26d
NOY_ÿRSÒ]aÿ_l[Ybÿ̀_`\[`_ÿ^ỲOÿ̀OPÿgPkYaỲY]aÿ]kÿ̀^]ÿ]Ub̀Uÿ̀kYXP_nÿ8;8126ÿ\agÿ26nÿ\_
^PXXÿ\_ÿ̀OPY[ÿl][[P_b]agYacÿ^[ỲP[ÿ]ZPl`_ÿ265i04858;81ÿ\agÿ265i0485dÿPoǹÿYaÿ\
k][X]]bÿ̀OPÿ_l[Ybÿ̀c]P_ÿ̀O[]UcOÿ̀OPÿPaỲ[PÿRVWÿkYXPnÿ\agÿ[P\g_ÿ]aPÿb\cPÿ\k̀P[ÿ̀OPÿ]ÒP[d
01234ÿ6789ÿ3
3ÿ123ÿ
34ÿ13ÿ13ÿ8ÿ893ÿ4831ÿÿ
472ÿ !"#
1ÿÿ
34ÿ13ÿ13ÿ8ÿ893ÿ4831ÿ$%ÿ&8ÿ893ÿ3ÿ893ÿ86ÿ48314ÿ13
41
3ÿ8ÿ74'ÿ7ÿ431183ÿ(7)34#ÿ14ÿ3(73ÿ3(3%
*+,-./,012,3456728
$9ÿ;<=>ÿ9$ÿ=?@Aÿ=?B
$CD9ÿEÿFG9?HF
ÿEÿ=?@!$CD9"
*ÿJ-53-5ÿK1LM.ÿK7/ÿ2MNÿOPQ.
$DD?9ÿEÿFHF
$DD?9$ÿEÿF$HF
ÿEÿ=?B!"
$ÿEÿ=?B!"
*ÿRM5ÿ/MST6ÿ3SUMÿS2VÿSVVÿ15ÿ57ÿT7//M.372V12U
*ÿ7-53-5ÿK1LMÿ0S.MVÿ72ÿ3SUMÿ2-W0M/
$ÿ ÿÿ !H XD9 Y!""Z
ÿÿÿÿCD ÿEÿH ! "
ÿÿÿÿÿ ÿ[ÿ>ÿEEÿ\Z
ÿÿÿÿÿÿÿÿ$H !CD "
ÿÿÿÿ?YZ
ÿÿÿÿÿÿÿÿH !CD "
*ÿ]/15Mÿ56MÿVS5Sÿ57ÿV1.^
_ÿ$!$DD?9AÿF`F"ÿYÿ$DZ
ÿÿÿÿÿH!$D"
ÿÿÿÿÿ!FCFAÿ$DD?9"
*ÿ]/15Mÿ56MÿVS5Sÿ57ÿV1.^
_ÿ$!$DD?9$AÿF`F"ÿYÿ$DZ
ÿÿÿÿÿ$H!$D"
ÿÿÿÿÿ!FCFAÿ$DD?9$"
abcdefghbc
i3j67872ÿ1ÿ3j11272ÿ893ÿ48
k8
3ÿ(ÿ1ÿ0lmÿ74ÿ(17)nÿ314nÿ6789ÿ893ÿ)71734ÿ(6#
0no
0lm#ÿ1ÿ0n0lmp%ÿq789ÿr
48ÿ1ÿ(36ÿ)734ÿ(ÿ0n89ÿk3ÿn
ÿk1ÿ3)383ÿ1234#
431183ÿ893#ÿ1ÿ1ÿ36ÿk838%
sn89 s(
0123ÿ56713879ÿ
8ÿ
3ÿ
12ÿ32ÿ138ÿ86
ÿ !"#ÿ$%&ÿ%'()))
*8+,ÿ-./ÿ+ÿ1ÿ0187ÿ*12ÿÿ*33+ÿ524ÿ5+5
.8134ÿ1ÿ*12ÿ1+,83ÿÿ*33+ÿ63ÿ5+5
+74ÿ63ÿ*122ÿÿ*33+9ÿ8774ÿ9,1482ÿ17ÿ138,172
.8134ÿ*12ÿ9:+82ÿÿ*33+ÿ63ÿ5+5
+74ÿ63ÿ*122ÿÿ*33+9ÿ/8174ÿ17ÿ06334ÿ*1482
;<