From 4b59f3e4aec14c87027e93e666a902c96ef55f1c Mon Sep 17 00:00:00 2001 From: John Whitington Date: Mon, 1 Jul 2024 17:01:56 +0100 Subject: [PATCH] Rework syntax for -print-obj --- Changes | 1 + cpdfcommand.ml | 5 +++-- cpdfmanual.pdf | Bin 423721 -> 423746 bytes cpdfmanual.tex | 8 ++++---- 4 files changed, 8 insertions(+), 6 deletions(-) diff --git a/Changes b/Changes index 780cd8d..613af02 100644 --- a/Changes +++ b/Changes @@ -6,6 +6,7 @@ o Build PDF files from JPEG2000 (.jp2, .jpf/.jpx) files o Mark a file as PDF/UA compliant, or remove such marking o Verify compliance to PDF/UA via the Matterhorn protocol o Extract, edit and reapply document structure tree +o Print structure tree summary o Split structure tree when splitting PDF to save size o Combine structure trees when stamping PDFs o Set the natural language of a file diff --git a/cpdfcommand.ml b/cpdfcommand.ml index 343d90e..bed7921 100644 --- a/cpdfcommand.ml +++ b/cpdfcommand.ml @@ -3444,6 +3444,7 @@ let extract_stream pdf decomp objnum = commas. Begins with P and it's a page number then a (possibly empty) chain. Otherwise it's an object number (0 = trailerdict). *) let print_obj pdf objspec = + let split str = map (fun x -> "/" ^ x) (tl (String.split_on_char '/' str)) in let simple_obj obj = let obj = if obj = 0 then pdf.Pdf.trailerdict else Pdf.lookup_obj pdf obj in Printf.printf "%S\n" (Pdfwrite.string_of_pdf obj) @@ -3459,10 +3460,10 @@ let print_obj pdf objspec = let number, chain = let digits, rest = cleavewhile isdigit more in List.nth (Pdf.page_reference_numbers pdf) (int_of_string (implode digits) - 1), - begin match String.split_on_char ',' (implode rest) with [""] -> [] | x -> x end + begin match split (implode rest) with [""] -> [] | x -> x end in chain_obj number chain - | '/'::more -> chain_obj 0 (String.split_on_char ',' (implode ('/'::more))) + | '/'::more -> chain_obj 0 (split (implode ('/'::more))) | [] -> simple_obj 0 | _ -> simple_obj (int_of_string objspec) diff --git a/cpdfmanual.pdf b/cpdfmanual.pdf index aa712c69076789bdc7b5a2790bea0212353e9e3e..223bbc9ce94a36e5feed297e84f1dc734e24aba9 100644 GIT binary patch delta 17327 zcmagEV~{3I*EQOC-2 z&aAq@9=^d23L2hibOpGoEcRD3f^J|6qmQ z_%}d+qUU>$x7#XtIF4U0fb{GZOBt&QOJy5a#W$hUNGCM+{jsM3X_7}H!kHiP{fj3# z$j`AeT?g$lp=NJN1uM3l*9J=0TRV~z)j|$nf&}RVLwAJ}cB+EEvH)H{aYAJPeqRg@ z>#SFO${>QVvBfjR!n%J3TWTOCC5fzKa)mTv1`G44+h^d@^-BT)Op%;}(aE9ep^pS0 zIq_W_(*tstZcxpC%4g>xM7d~mex=AYI1fokjRY0H?C7%!uyQ`xsMs$U55 z!7gUBQ21NfjYU%=h`C5KRCqJEPOiUTZ^a&<3*Ug&yA%8Sp?b6fCoF~>)}bA+1c5ZB zcvW4plvPrysO%myYb}OD?8hhH_i%za#>c_iW*A#pb8ozI>R0Z-rrJT1qd0Ao=30ic zi2Fc1K#>n{$W8Bv3Aa+D@>1goyos0K~IkEvPM4ppSt==w^9KY|JLWB#M) z1RP54>bHt9DYn(2V@Yd=l05)OpK}jEeId5lN3}2`^joGYcj+<~i2%pK=yAd%VF@lwPUOxU&Q5zyi-kOfN=xHC7T%CG_4*7HNx3Cje`q=X6YP1Y&aK zC*@6ryyc5qs&ynu)R<>;{3dz>$DcRAaiY5CQ$%N`!xaE=z z#R(RouM|(F;c+B*^-J3A&L4)c>mARHrG4-hj3-01r`OT~8km%9jC?5PF_6muzr=0M zSCBePISNunmlaxOiOPKG|hEw&tEwM z*L$CY9HhGr9ZBt=I}pHJ8NkiJG=Me@S;u1zr2Y@hb1P8V^wLU9q_;!|U#&u_==b06 zLb9#1;V9}!3LHWJzX(L{YxyJl;#bb_3Y$DWqumFEHg@Bi7 zo0s|6Ks<#Bv(O|QV?7FaPF+W*C6HUyU}X)>$&idIp-_^s+{Y@u>3f(X5%-N?i z?F%X%e@2zvn(@KTiwtG47r;4KYd^O4046H!>S0a7+O$x%9sx8MM1R1wSnE)lOx>H^ z0PDNP{qGyeLz+$4N76t~m8w@@!J#(D&4Rza%aaBk;|!m`EnT4b+5u-)IOJYGXpinh z5*tqju@Zlv++FY2347|WGH%?7MN@XQCI!n~)9f_Tuqv^#JX+;3`WSD{x!E zJu(Ry>@NE5Smut)8XO$xefSlS{*(k6jK#fZ6X>bW*r*Qi3A4mgLKWAA(Rcw8$n>^M z!OD5-LsK2e$@!@UQ};lMXVs4L6Q!?u_@inXH@#15R>1g=w1@-PTR+`9PhkFS8aU(; z!Y?0|gooR(QjS0I0)SuAY)$mp!fY;-xDJQv^oGi63tEy0+{_+my&+&x5}v=H^2{Db zXD+e?*7fIh9lf8<_AgGiG0t-;Lef{si_yKOQ~g-#@F9T1H03V0I}MS-Su_?}zKX*S zb;r$t+Yy@sVS=Ru!lf@?ViUT#J(NT#YH_{OR+t*B4~3wH-2g5K9*MDJJq9{qz!TZl;&OhBdb05f48x z=kA>rG;SpY2JwObC|u3QAJV3fSf@Mg8n5G&>T+psK!T~l9q?klPU;8G#~p`@33X7X zP}FntOC!m_#Q+?gkk{Q;?!|7i<-Z}V5l$*fDK}z;pEpPc$Q(cZPRzrmV?=LEr| zec5MI)guQ-b93N&mRYR@UQ;!|P24?-DkBojEY~D25Rl4VQ#$IbN)!cDr#eC=#Q{v9 zt*or#STb-(DfbYZl^6kU~6u9mtNJZtKU=uS*kk zFzim<@iZa&eKJ<@G}&R9Pz)9E_k_{mw9Og+*pAlWH3S-n3e1+W2uFo9t7Y%F&4Kit zZ%7OVYGI0;!MqBJ4!%esn@^S@y9$Z}IGzmhl+Zd5qe4;RO6fv#a3&gbFx!RpCD1L%>_8*!Y% z6{$!Tt3IBdfvF{gts`En78(y?+R5-?D9PM&|HxmbJ6laiaD2XEDJ4JwLLvk`0L>yc z-qe2rh;0xXeBCmZ>nM{qAQYKmCfB(;cQ&Ga(Cgs0P1Zz}i{*W*o4U?#!0wuEO~5)JQ(nilfn-7MLRM?2L_voq{O`_L58!Btzz1<)fou#p51mFHf*AnZ;%gL z7aZ%!$IkE{K}r@KWM!%>#aoXEFmE!le$uJxp=A*mILToO-8`buAkHFIfVNw4%*vwp z`l7gpm}Xu-St!|aNc|N4(ArC=2|})L&xhP+lKbc4*S#jMuxK#W=E^g?7t>KmqCF7G zJm=t>s{h|6CfAqjCp$g2k%Dp$((^TC{T( z_5=_xD*gzIj&p;{10}V5fY2+tdPKh{mxgGk_z}ySM*dkp+d4( zS1XZ*q~SU{CfzYoWJ)oRYKfIg1rFVMGMR`NTPT!ts%%!=m`!WyX^IQ_cNcSa_oYn>b#uPfog)T0BTA!tA`9Wey;AK9%BBi%*C{Hs-eW#~W zVax5!BMVLdpGlMu;8>RX^5*h{4V!N0wV4Txfj%w7f*l`ZHivk}>zPg_YmThcjxAGr zNWDuhP10ha)T<^|En9{)s~&@M!3z@aX4gCvelIJ^2ALDQT%XnE&N-08L{>r`#hl@| z)Zs*z9JTv}$025BtYO!s#NpBdaRrORcM)|q(cNh@b<^V=0GU!&H?y{&>DZaFvgN*W z?TY~T-o&-kw(cSO6Eio~kyih6882+OJ06-eU7;Hah&$OmTP9Cdgal93=Grsh~tviNMJ z2HihvQ9Ymj+N5-=X^v7+eYZCm#$c=CFZMUQOJ^$fmx1S>QTh!E!}KZMq%yhYZTW>^ zN1(d)wc=BO6$Qp1r!V+zOJ{F*qt9e{7TfL$Oz2-z09=_mPDa$XVTB;G8}%jW2_9t3 z=D)GB$yY-hsO|N;lRVNbe>FTf_k-?9`9~0Z&gDIQgRfI14G4?XMRI5#6`Iv`>W2&` z+{jb%s8Gi|j3!Fp;RNAH-^extWhvOp+A8JJ@jvNiZ5(pyaO=C-sbt74_1!MN=0oPV z_JZpP0WGl6eN8mY>H^>^bIq+QSYG4JNTbr2$8 zo+0t%>(x#}>Fq7+suJ!^rug7>^NaQ|gL_m+@`nO3H*)eVqb!=@P5WF4g-Ib0m35bu zy2-#&)dRf7sGJ~(o=xBDLg@5k3gA}CE7Uj{m;C~aR|iG)gB(&V#gUFEstN9jZ;T*! z=S%;m|AO0~&d~oY`JzE+0CgI=irY+R0cV;|$faXs6xJzyZTLh;c2;gyD91zcJ8K6c zN!L!B4F&kT9qFxkt(ZP|pLrji@fD9H%P~w?LYT1p z$I|)7bi}um2yi>c7n94MTZ4W~2;=$TT|{mnL8z66`+*j=sdbG(0Ht;m_Nm9AEWu!M z8DbG6pZp-XAkQPO`b&cOn|=cn$=wU<++BL{N&kNlW+J@H^bB zE;A~%bNS)6ftbNi5)gOr16i`Nv1UU}Zx5UFHC8%E*;q|(O(V$BVd&hlac=&e0nqAH zaf}Dt5u&bYM-OUW0B=Tr8|tQT(u0KH_+8x*!`RU5kC%|jFYYhys^eK|;jC5&Y|a6^ zimTNlG3180RGL#V-L|?9{7b~llv7Dfce_=ocKh!%EyhzE&2QPLzuEUQxvq0$G1%7$ zZ=d=uXqvzWp;EXG>1s`dd=+aop`+r_tiF;`1|!|+Yq0Uo0DzNc?$z+7UKx!v;n&_? zP41QIL;DzqPm!Z+-h%_BdKX$H1Ipi)U(eXGm}I~DJVw)vqn3K@Jte1iO}mswz-o>%n8faba$gokI&@#>B$JEK8 z=3iaCqke6ifE3u;Z7))wY zE>C&*Zl~uZqvDIKy0#(UX=Dxk%_6_W!?d;dBdh0>0OYl}#G0$9Uv1sQA^{vdfBvSg zuQI|KllSP~3;xw(Z%{C?mbRN8A z12Pdi*5SEh@%3X;GFxCzj|tEV7|JL<@fm?ym3Ki=WR{vOdDz5qR&CvR)TPD)3Gyt5 znkxd<0hYGu9k?y59IFtu8i)**Asfx;wtkLq5d$&hni-7*Em&nHT3txXBvqR&#dbmG zH^Niev0)nuc`w~GR$a$DdIlJJ_H28-7G8B?{)!)_S7`e@`|5c}_a+9F!d#I;Y{8^o zBG1K0v0qYssv*Dg{&)xV`?v`RzQg`D!hD1=&nUSDMa^(L2gLwpN=YK8&S*FXg#%zl z;%z$<7|>zJH+vwJcoTUb#IQl?;B3l~sgP3(Mt{GlEF~73$<7v0@=MJ<<~WA0KbE9S ziVwIh;_E-X=Xq~nBXnDa%xzk&@Z%%!J{CT{hXJ1FeES%W?NOY8N5_}vqv-Z9dXBQ7 zrqIl%k75}2hBO~8xBa#*+b>49+ken)sTu&A z`0x^8gZCQ1utZcI5khJ-LIJ$3=qZsBC^G_+ynH$xp*MxG1&r6O?3&&(4FLPQ2+^9J ztj1X6Z6GvC-XoY~$+H2w8Pb4GcH^NI5RWBFV&YQ_x-$n*mVvyeMg+vv@OHQ54$ok@?*N6|8qlObeJF&P{G0F+mht=Mmjj7N-~v zd%#&_61&ri3+0at@b?&~H2?+4Jb9Q@?eLLnQD_?cRM13;mY}uNqWvhx2VUByb%HHE zYGZX+IYDf7t_CRX9_tll$lpGJGEIv8Dm9SDrLE7_XeyI7ogCQ6AiAY0NQwAZ$XemN zz0a!6oC6a&>XN%~CWQ}OfK8HC)wnmMu$O-#^;9REwfL%}jH01<0#ItyTXz2VWNil% zhP8+!zACspxjO;`^C#0^(MX#Xjd7t>g^tbV%}Us&F;v8kVNh&tLx$Nqn@0sD>zMg( zBgY{G_NBSLd!?V#CO>{2#unu6qrOx1P|kcu3NF5Sn3M7ELWjgr*}*TiHFlF~ z{1TK6iXr--%X+mnMBWAHN6|Pfyvs~ev@?>hzYM}9A`Yv(!z2oBGin=fl#+!GSW?TP zA>?s#B*Faf5LzH?$I@lspPZX$;u_`{Bz63~S{_gKeK|S|Z1v(w4L`4132_^fq?@w&Jodybg_{7Ab<$|O^%eqMC|!=oiFi$T>+TdZg2`-I zTNqqWHw%8quxzEQDmlYfnxPVmOzlJ9P_npGZp;f{RRYb1zN%KNM*as24%Y;%_mru! zl4ZrYKE}WLz{d|UmZxfE_`uADx*;jC5Lt#jH8VSQ=j%qAup7tlQO-jA)3Mw*^9kSJ z`e$r?Wg5=b_S=5nJe^)>DyNSobfB^oB!tVWr(MAq7pl(PA%XFDQ$=m?KTVueC_Ar3lgYOe>>) zZepr{Gd-p>|8LKiI?i)$)7Ljy{6Y5pVC1Y{$#q?F>R(`#f3rY7A>$JjW-ty|XQLUv zzTjc_ut#B%ORFDB%O8>$!4NygLz{w1LiI$!L~wcAHgTGm5@|?6yC|b6!@_?f*tA{p z!JU?S_4@cw5x6`7MpaQlIzkG&(BSi|O*q2j=m)t(OBeCfB9v7(q}rN=R1eh?G~~#- zh&jr+Q^WVTt>pi>AO`Dz+RqI@)%d&pCWuRbc_w`w!N=JC#?FQ7XHNQkzegVnQG(2X zAnoAwJ6`hG;w=VJB0&FSNc5b7G^23BG8?*px>;$<$eRToFk79N9m~9*&H}6q8ekU$ z0D8gCEQAaI`#g;HueS zRYk0Jhh^?0%)mEs{es=_BW6PQfkq77!)1W_jOo4sVKla$LiZr`#vK(G_7TsBRA6W} zw5-i+@_)2a+LFXCn(UBhTUhw;@CmS6a`&z14M*MILAG4Czf?dyJOzCP@fg+$sd(Lc zU~g3ME3%sjv|Dsg8B^v6PDA+?6~s5Z6}n-Hs+(&!UYm9l%Fy>zwL0!KP%Z-0@E^Yr z?CabC2GlN!;l#^vM5`FIaag{2Nijn7JQXoni8;80s7j(5t- zve16yvVMqUaef8O|KcvW;CZ6hKg;_@2lnewilz6u63$nH{2@QmGE%!>DPSjbjlXpx)Z#0^r!=ZZ?i`DmAvXgppsk>LpY zHKmeieE25fW!bF<5{@V z7BM#;0q0Md*vESnl@COJW(ye)Z-S#1x4aWF2c`m>y?b_%Zuw|{!MW-@*J!3D_jL`9 zEoF!Utm9_HYP*t)bNANd?p^M>M}%Jh<8BX3eFHw-pFYmKf1TY0a`-r$tf(^ER*xMQ zUD&(4x~=i_#414jk%%A<{lt}NAQQws3en&rAJIH%V)Z|sIT5;m&x~I>m8Bf$&T2EM zw~G?*mZ#XX2So8TZZ!x`sMeMc!94cR32JKcBh}491PoH zQH7;};TJC!mI~FA+Xzu{=(i^g&I%dQ@(D}(pvZukW`SXlDw!~S8fTjhnn~ewAG;tn6*73N0Dm0<=|?8h z1G6}~=f}$iUCikc!}|I1l9u};I~IKUm_#e>XBeM-*qzdcaTT9+| zF$>YtYxmytf>$5;CjdG{bio&o$Kg}^26T+6+bV_>IIqsa)?TBxKHg(QBU$bJShu2d zhCiMokUEVe2SyF6rr7}-rTapYs<9;}uubJ_OBJ2C3E%3`_H#buxbiKG$0?)Ibv7IV zRr8;$+<91kHYJ8Z#f0QYa~XnybjVRHQZ7Ig6;uB0A>5m^pKArsw@?14w5 zSAwGACm<6B`v;6fUJ}IiqldVE!*_A*;o=*S_OJ0Y%DDc@G6N*P; zI>dNzD+OqBH;9PC1s|{7JS^6*jD$M2cQp?7`u$lG0R^lv^nm^LsQ%4Z`iJ-NogcgF z3hQw2Rj$3z#hjr|iTUwtjqp{$Kx(3ERhLVNJ0p$dzWFuPUW7`Y6NWhBS5@zpiIG=H zoql9dq7@4Q@aZ5xfGv#vRMrz@Zn#dV*YSW|lpDH{+rhtP3YIje7D!w;=MRF=!#vsz z7<;(%%l*rI&bC(B0d++_Le7gMt+cHyyoOpVWy)~o!8fky1&wLzwI-0xs4EoSx1IZhfMMc&9lqYgifGnP>j%x!T$e^M~Inzt(XQh?H>StX; z!hx}2TVP$bMjZ|xmX6!bj8~c%0Y&9;yUCvtja;3{ZkhY6$`vXt86`I$3C{x3>(jma zh8S3PM@H(S7h2Mb=@TacQI9Q84kGIvy)Zz4^Cme6I$hpq_S4yX7+C zZn;qq*OnUK^TTIEzFwaSW=O1jpTUr*p3a{AwX`QJro4_yM*zO{88~?Ih;+cN@)V4_ z4fj!LD^KFkAjAjh9!JcfQhpb!XMB?usB84!l8=a{^_(?1&1kpMDG2N~+loCUfpt)9 zF*Z+uPc#E*8SOdT#EDD1JR62TE*#}@luXlUOG_G{GgkTzzjcW7f^C7Tm}VVW9TCO? zkKOb-$SWa}TLGfw`Wu$6oUJ!4G^E(qJct-ffPf=?2NVlMmZi2NtFev{A_+`9s-(rs zp=hqCZ53Eonjag9A(JvvphprKe)lhYZ>XBSTOtlw7&EPObr^#0?>1-;PiP8wTYb|= z6hBXZ#|FM%&|P%dBsFCAm5xhvyG)B)aq$$n#iTiA z>X#!{wbI{45z~8lDUgb>h~GgiHv=#S+$kXB3YCxK%w&JlA(!bo+iF4wZ!Vw-B=`|=E=rkQ16v?a&Vo|%kG|twphG&jxz*qWi z1me-4K$l&|<>#N8hsi%iULI@&cwy5ei(ZX7h!`zSY}yDGG3K3Ga2gi}w~9whnF$gF z{r6)1zq4T+Zo0fUL^Q~@=i97G*_Cll4hL#(Lja3JTH(uoYs;=@dK*r1rNsY^?L@Y9 zl@CtPmcAH&0!48&FQG`4U%_6&k-C7cv6vTThgZ=55{8MIaDkR_KQa=^7wR)@{KoOW zjJrX|{Nba-tzZvu-+NFaCyNO58j-2&PrX!gu+OES&)GZ=2*hyVRj47=n_@U zt`ul;Vnh~7%dlO5*{XH5{^1A*nOZ+0MJ5}xy@C>`UQ(nn0pAxZFt68_8CSFv__?7!y@;}qp zuCydxn_$Bq~}YfJlxE9HP#`k!bWe;&u_Mk&o9|$rpg4 zMgxBULSGFbDHv`UvuVT!Pr2-^wj|Kao)_9;ZT86nUGmF_uUc<1cd7026^fr4C$ zrfC9P(%;myo4u>{^qwR)_H4`rjR7EsA%m&+o;Wa6MRh!en7-J|pL-rNOS9`$X>%|| zx~}{X(v5lPn`Gqmb=M`m9_m_@SB}?oPLcCS^O#l}&yg)Q@cY_(O;pwj91@+&-Fk?K zjdPq6)815CecVYCqS3*9YK|yfTs`wank~Bgmh6VhT`VW1mI5K8MaUSJ%ojkhrin+T z54N5)2_-sc$>8n|`ATty!7^d89+eN`lz+zU>+V2|$b-o$NHi^65NxOfrGS=bQPj;hA5DZZ3&ym@FS zsEB)L#b`aFcjvA20*Sga%_|d6$@Dj~1<6n6UG(pox(UPDYKkXn!-A&YhJmuMHM|qy zK5rjV5pTBa8zK%N#&9UA?b&HUs;1?Ke{|DdQZ_w)qPCSUeZ{rZBn5ax8%{yVDMmw~dn-4|IKIm~aB4X!rPRf_SuxNyZ+d~{ z<-7Nkd8y}emc_xTDY&`9w4NlNL(dLoC_ZHOFIEfy~7lw zl*1|n&fB!6U&ddlE30ouEArsJU-$-ze^9U3e@~)3*1nK;Z)rQx7ig~V@IlTUlzp(O zkKMq;pCq!u-b9^s>wU#?T_PT4GT+yF#CtE>IvgU57386Xv2M%rKz|%}(LOvBbRT0F zOGS{2@q1p9+`R8?-XQeXA$)^|y7a96pVrcRgJPyMsZs;_v~>S%BBKS|Hr$y)&ct7H zNyEc|qEHU$vB@WOZv5iGN|oBwqf$8-jsLjxw7OTy5R-w0^M#>T=Igli+c&P)xK(gq zqzH*w{50Xiu5BK&cwxt(wK!yWyUO_M@&4@#)3W`P2B71r!%(#~?PC6` zJ=nswW^D?vIlTFh1l{2E)~ESC8G4!?cKe#G%fNZxIG{-g`M9|G*N!PS!QyNPv+9KD zI2inLW{`8lg?#ot#P~Xb;wy7fK}KIjzxXNvfQEwd)u;& z5i=VZ2Vp9TFI2tt1{Kr5QYY+J^;W{4Yk9s0JF0#yem<2Y5mI(({%lH)A zG~5S(37SA|di(>+OR=>el_hc|=QIX|Ch8PbFFev4Vb6GGz7JflviDB?oQsUl^WRA~ zO)m_CX*RrHR)(8&KpZC`#-q7z5QM*@yCYFY1g`il9)HX&bLpOnpxzErrKhinhZk6O zQ?8~%V>)s9fhrR6G%m9abSByI=Dvj4Mwj#f0u1TXh?eWMAQYQO4Dc+=>ADs$$t--1 z55{Z-bJL(fILNn_#|dIQ#UUxn_iiwVlnwsqJDu;hA0-V_VRyozyMfVYZ)BND0aK`QM8v?ya2~ zo82r&;B&1XoftKAVU-Q8)b`nIe2id#c?4U_mPzm7?z~=8oQvkE761lcw_IDdI?rvB z!Mazy1Vp96(Twu_K)A~yMxU~T81LP^5>wZZq2%c|aXj!bcNC~XhykCibh)0__ydUc zjoB#u9B!o0dCr8Br1-hQ$F)A~R2&zY?hyP`fl}z$cg&U{YAjPFcV06A+3o}YKLV** zU>|u_Iyj$^;Z`6hzMjybpKr$ypikEzuv?q4owvBQc4k9 zv~ef1@`ihYKw8bWz3L6f33~^C1CbCyT6j*ptE-XpfK&=Jj2cm79JryW?x3N{9gzYh zwQ~X=_2H5`+=$Zz1zVddt79+e0mFz=MP%`j?B5TYABq6|@u^mn@1>|r3O~Z*Z>a+h z|1)QmN7xBw7aAjjSfhumgDRJ-p_0VZW4ZBCI0+=z3MAU&$>tCj_ct4$Fxr*s0qG9l zgOkkzu^cDZu{woOHI>`y*Zo`32ftp|L7hZ@jx5+021fOK(sh%ztyOc(o&*tadai3- zq}!BzbaSa0r%+d;q9FEVChfAOI@_ZYZ1YOoiA=)H()&A~u3^8|A1ay2SR#PP@pZtW zD;hcVW6OOLXjD9~cL5BbOd4YmlCJ@;gOuZ7%X<8@zEOYNL9z4$x$)gj$PHXbbD;>y z4lO*iGxq?t$ceA`+cEU5t#Eb67m`Hf>lTQ+(!(+C5Om@*mrV@?914OGz%Es{+;Ft! zYhUE8^g;-fdTLXKZPjt*(u(}bKVv3{x~Gr&uI}_r2&^n(g1KgQXTWS1B7>4X>dZJb zhJhejLDD__bLiH-Ns1-aaji>sT8@M9K4+f)$XX_$s zeJ!vYN_LZ#3|9rudB?|=m`$q%T=8RNz(NjXpXa*rkIPOEK|;xNP0b$PjlXZ*e(wI$ zM+2qGA9?G5o;N4nAA>EU>9cUz%>Y$A8v3Gh>ae3Bz?>2KjF{B8y!Cc2YZ4TMf|dEc zU%}7beVEjO5VsfOuPBt9bqsv*V-@WHg_pOT3e0nwL zl#4~EIW+;6(%Vpv6(3&4eZ*qpOJay=)rl>E3}G*Qfg+zLpRS7XuWzH3Q${oY8dDL` zhz6o~K$s4=F7-7C1>_@O0GOgH*di08?UKWW1|z&B5K(i+?hz+NtMLdDYbb%}M?J@q zX{*MIabLPNqbOWc)%5(?>8_fMD)#UUV@=(f7?wcO#7fdplL?ja1l-2UO+_G$68X=m zpjL(bZzPjPAghy^7;uC9D{pk!Yy1ME&e-aJPK`kVeq+!zgnNB@^VlB^6Hu5 zkH)NYg$F3;k)HtWg?}9?l={&ahar!gv^HP^3a` z0M-W~{ixn>`V!6QiiWc63W}U*F8*bKZ+{VV=JYO*Z7ey=Hx{LGJgAGY*D!oLlp&QN z)gZ)ozm+K5pEAkXfIg+*ElvYx%>s53RE1hmtT-`tNTsr{o|uRmlQWYv4h!E9=4v$S z**@D>YK;Nr;joG3%?q|udkB@}<7L(mfR`9GqgyjoVH=s)`b(@Y`3v1hygx&X`3STi zNf)~z2Q^}rr2$V+tAX;W+BR6x9}YV?mDI(}Jxq*q#Uh;okK({Wj0;&U7wiXv zcXZ%46?csNIwLX9?J;n({G$#9CY8@QWy)s&iM=uI5yK}fmnR*R7yJ?`B;=nQz)XLt zM6^TXnTxlvNuIcX+p{%|z%cSOMVa*G? ziU1gc2QIV##S}y+U(u3y=|*D1@VeKKn)8KNLa`DbcD)zt0lCkq6iPkh3`&iWlzCVC z9fK}#I`y098y>bF9_dWEg79@tfTtp2L<2Sl*iC3-zCAdtkh5-;GHjmJ*Dvw*8w9Dl zbh=GF@rvJE_mP~$C{#!yg(gfx^JfVO1=h%{^>nuiuc&IOQRzzYJ=n;6KIA#8D8pqc ztF&m(H!@eE2lV@AZzWCzpDwp}@&4WT80&g@n6Q_c_iJz&E+lu!L4^78P-m8cz=h$i zGyfBZjwmRwM~(mefp?S{g5iS$KwQ2@zP%@MVqW*gpgiK3r|@Hy2LdI3Wy2u1*C83Z zFG3#z()GqSh>q_T{UvJmxX;S58VZOH*tR;j!_Q{VJALOL_bxTyFjQQ`4C&M9jf-0kLA^ z-)dI+4iH4ss?jPI;~_>f@%%zKM)p!H`}u8%wZCMQ_E5W1vFjp9y@+j3{+K?u&?-~k z_iH%9r;Rzh;d=RBZTX*EsydC$^#15&hKyUxF)ci9KiW72-L^|!l&E9>D)AxTVH5t!&3XBJ5XVT3ItnPpIUyC1`C5 zuJ?6-U-$_!o*nUyPs$Sb`}|OG7=*pBKoro;?R%RzQ^+qLhMDP0%6-KcdYr?Pw%9#W z^vCEv4Xf1aC;dwr)bA#1t?}KKsMlTbwrCpIK+yXolJ0ua_~^#7aCpX;0C4oOP!X?~!ItpI2=gS-Y1_=^FTOp_I@1)trci}1qJ=I*g2Aaew_^g=_p=TR-&BxVX@eFT0xUX*FsPzOoyJ81{Zs%rq1BEkl^{;?0CJu;! zeZR_#dT>s&n#;PUmX<; z{T?5BJX6dY9o&4|ElY|&YRXS1BOgj5hM5%^w$qN@!C^`tz- zGrujEaMruux9&Rdn4iUc1|f{}$p{zB)JRl0|06b?_vI>~ zN74wgY3;Lm3}r9GxCYuXALeNUxklO|A5Jqu-(qf!39T8zX%%SY9`@@^$L)M$ja$GOHc zrrn6=i10`UI6+#8_C#_>ccNa2=nCWk(O?ZEOZIuypC-hh5A zIuwtFLJDctr`0TsLG=hD>acH79SS=^)j`;Y-Z7nv>qc?Nd4b`H*GS@$@IkyUtQEtf z5I|BcWG_HKeGEyr!dq29g#owDT2Vqj1B+U1FFbJoz8;ZVIa*OedG488cdgzt-j|N8 z@U8qqw;GqNJ{H`%x2~jHzpNyo(<)u9_^sZnWggJBgj)?nu+4Df_f|P3^)MIWi}6WP zna>s!3aw+z|HxW>S@DO`M0&Rpvz1AXx`E5*Uy-O0GZc?n$=E~diROrHD|+G673GPi z(5DXp;Mx8*q%e6(C;lEa@aG*hU}y?#P>JR*+n8oqClL8R12bQa`X$xm6?x0ye;$8e zc) zk`VD1j^3SyDBLg#f6S0T`J!$jbq=XF#B}>tI7>nyDN93tT zZ!8yD-MN_mjqBdp7TU=*d#z7}o!y=XBb87L2(z+*Lgl*dFYi=C2HEW9{sicYMS zS1hg*QSGLFaRahv--7uUHok~%1VxR~)df^G13}xr>GOoIMN{M`UtMrzKj_L!HC0qB zrW$Jh3z>2;bsywk#QCDjqoOb68_U#er<`P^8_U*g`h03QXudwcb-46I{~X+G0GIsA zcB+>r6dcZm6NrC}=1TA-OBnt=roP}Yd1`Hve<*P_1|VqmJe8{pb~Xo@Np=zXe{WB8 zS@x-jbD@)(JSOxn^yZg$6K5~E5il#6<|16E73M-cl0;#k2ef@qBaB*!zC;dXEpVIF zPFC`Cs5_COeNk{yvTP{r5DkDWn!ih`6Q@>KH;6-03vsR3d0g58dOhgb3X7~uXafjm zu~UhRHB{aRR0np8&6sr~GF&+Mf3#xDH%q1-rY{7KBT{+DRIAJq}+z9c2un%@(JQrIA=08$;nF(;@QUdURJHg=pwF&|VyMw^`yH z*8vWOts>-q{9?PlpcV;=Xv!>>RY3Uz+F3t}reEA~QIJrm>^2E4lE>AbK;13&qhjcT z7Z)e>4%KG7A_ADnQ20kOJBM&)&#M!vA{24|5gIXnb#iYQ`LGRHst_gCCYLJv ztu8(>D$@riOxL5RcCGSqJ(GNd6ao?SP#W{0V0K!s)_%Zbu)5*uBKsgZ*P%=1#3$b~ z`6aiCGea$!)Jy>hh7$O22&%!BlXtz{Xt;SIZJ^*ZGO%s^? zkzI)14`1oHAEi>?5Pqd}9klKDWgyN2L?K5nbmdUdz%Qfke6(Z^vsrxtpAEWoaMrY$!Fafb!03QYBBkeC; z%GT=ktnrg0;|2Sn9-dYwBs}18;Q;SW_YMrJ;FzyKjW)00;0MT7p$OgBp+<1TJ|g)J zX#Yo6qn%($M{8q{TyVDhQIbsH6b!!mM1x^|nni(SP7Fq^yOlnjOmNL1bJ+ezS?kuM z(Mu!1V(=|MS0}1oUh;3>S%rb*w4YVW<}hIOqiU1%-aJ{412(@$9`?`M+u11(Y`|AB zTeBg>!0BiD-DmKB=CZkpu7Tr_Vd^SN6l2PeOa4A)dYL^4S;LOW&`)-${b}g=^c3%q zM@zN_{S^?K*r~n+?P;V7FBi~DcAb9%8(>MF!uyn=<#&PfCB(Q;gZ4CMY0`9aIg-DH zeL+S!B~V_P1oE$g)J=jk32!8;awe0tG-+J$Y-%ebCgU~ELhuJ&0mNtvQQ9)=fWpJU z*3CO|YqG9d;X%84e_js0~u`Bd>Y1N*31HIXfZhM)D6s3WstCx%m_mdsftNcSn z5skhDtCum)OLDXQn$z;gzU%{xmY)7fb(fn}p_B z&Ym)sXE-F(JO=j*Y=yrBEs#&o`~bzSC?5}(n}ke$vVC8h)fCr)v(F?0>(my?-TbEH z`Q@+5dYXJU-=%BG+5WpswsN`rm3O{n#Y#8+&DYd=%7FkDLnW179AI<|0MXk`U}@MM-_ktr7NezTu3d^~+{Sd4f$YvGW zO^|rOds2M0klCR~ib(cf8F(dJgFMDw1=zOS@GZ^fqknQ-+urz8Y)~Aom*-v*#yB9V zgGzLtW&!J%a!6y-+7Ud9(cdhL6V-4>PrFU$H%nO7rsH)M8vp+S^#Th0+CiIzZ%~pe z{M?Z2wD7KT3e_0zw(!mWR@h;G;X7ZZqkUkng>RWr*lFQ=XLW=@D*G+G`;`iFtGxfq zc^TX)C_D^utK9oVg@-JB;6WYXjY_YDA8b*Wo94mC^0z(mFNGMX(r01$vkG;u*k$2o zA5h3RtCCyl6DJj(wD9qN>IlD71}*&bhZPQ4__?R@^t}Ds3Yl6}MlF1Q>^_BK7A8&k z>OHLrnN?LLEV@etQ8{hVyIs2mWbW0YkEC6gJ0M ztSnjd;AgbJV?`Wsbkm}LkN+wl46JbdHXSiBj0+Y$I<1iFP>la#rb01u!nnqw$4_Wg zQz6C#F*lodwMAckSPN@F16XU(Q+G?_xi02cg}Bk8um4jTv%`1`XtwAZv(lI$$2@Ap zOb6o@iz;u|0vDs0pA6zQi+=ECX|kgACM+729JT1#A4=n=typ7`ev6*_v@}gl82!bA7X9iWX-r8Ho>^nfJjN{g-K(|0 z^eARr6z2x{)1%Tf0?~Y9(xShWq%r%CHOt7o@xq39!G`E@!7CLP_h z!mH*vN&>5%SkAriWQ#(xLi$M^g;w}ovyLLG8tBzg!Kxm9L`PLt_4^lfRBhEAf6YIo z^Iti-dU719&T*t6N8gSd{oOeR`g06Vep@6b8q7%PxG~& z*3TjO!A(Q*C4jx3)^8&G2$JO=dhG!3$d_hz1~LZ`;O7jFXU&(Nb_P=q>$B=b(sSGG Y!T$lNGUd6JcLpE{IWr0+B}Gq03Ljf9v;Y7A delta 17315 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] in.pdf -o out.pdf! \vspace{1.5mm} - \noindent\verb!cpdf -obj in.pdf! + \noindent\verb!cpdf -obj in.pdf! \vspace{1.5mm} \noindent\verb!cpdf -extract-stream[-decompress] in.pdf [-o out.dat | -stdout]! @@ -5618,14 +5618,14 @@ $ cpdf -obj 1238 out.pdf \noindent Alternatively, we may follow a chain of dictionary entries from the trailer dictionary: {\small\begin{verbatim} -$ ./cpdf -obj /Root,/Pages,/Count cpdfmanual.pdf +$ ./cpdf -obj /Root/Pages/Count cpdfmanual.pdf "133" \end{verbatim}} \noindent We may also begin at a numbered page instead of at the trailer dictionary: {\small\begin{verbatim} -./cpdf -obj P20/Resources,/Font,/F58,/BaseFont cpdfmanual.pdf +./cpdf -obj P20/Resources/Font/F58/BaseFont cpdfmanual.pdf "/MCBERL+URWPalladioL-Roma" \end{verbatim}}