From b8377af5e260603252de324d39c1651d468c8e76 Mon Sep 17 00:00:00 2001 From: John Whitington Date: Thu, 30 Dec 2021 18:52:22 +0000 Subject: [PATCH] more --- cpdfmanual.pdf | Bin 279645 -> 280356 bytes cpdfmanual.tex | 87 ++++++++++++++++++++++++++++++++----------------- 2 files changed, 58 insertions(+), 29 deletions(-) diff --git a/cpdfmanual.pdf b/cpdfmanual.pdf index 4da96b2a42a0195bae025af513d1f719b28fb9ba..ed6ec2de7a2ca36b43faae6204bb197ca2ee643f 100644 GIT binary patch delta 8638 zcmai(RZtv2lYnsuEN)A14H{s9#T|mXJBxd8hXsPW1$TE19^Bm>LV~+n(98c<-P1kX z!%ThE)7?|uRXx)+vl)(E6pJ130~WXf$H|%GBtZ{t(vovo2V-?TYh7wu4@q3o9qH|W zIqveUKV=;CUcpjPM%73&(%^Hw3!yRh%rYsSHh*Fv?1*~3|Ilfm-|3Zl6s%Ujr8R2u zeK%5Bg(gyNn^(hGxWgdx%<9=|3_qKl3#z@5pFyLO!(RF&Nu7Yk5{K*UagS6svsrBW zy#E=xmA$=K8&#>K1;DfF+qTCcp^v0u$gF%u&QN!BPgSOh6j=2crAvs$WytpSjzWN9`GsS>^&0RjMzNLhS>?g=i zvGy#;Q8#_|B|yx4yk_;@9cbt%*H&NRcJ1~I+@1e`JCI#JPf@I-R`+>$NG4}7kQvnH zavw>PvzW-ydlzLhN*KhP2!|SItA!G+>~E4{Z51w{!wK`i-9uZHm0nRX+>T~s8rBVc z&D!IzWenHBa#8pl?uWUZaN;8&&HgOSu(bl)=Em9FEbZ#|s@-Do%}7{l6GT$g-o?Jd z~>yup|al ziHd%po+)J1YV+ z(smdMDCo}XO}X}QT+XhuE2MF=NvFlh()5?f@Gu`I-ndvFCkk{U+`nZKit0mKht+_f zBJR5_6$b-M?yal?k{9FE?#zR#fMceGo5Fx^b~Rnx)4Y=?i!f(%396uJBy=-$ES$BQDh!(C1&i zqH`W_;hvgUE^-qKECd&Ux-C%OhQ09Xvl^WzFydRqx?Ou`^`-4!^SSn!40*Y3Hvt?@ zPg0)=#gNEgu06i2!A$%?$PUwTPU`DI+l~-tPhFGwS&2g{e5D`+&Jd|)7KnXSf0N+i z21X|e!INIT52Ba;>G9%sD|M_h=3tzsx@Wnm1P|(mS>R|{NLX7g6o*o4T#{(7w26o) zVM4}^fNSy-H3?3{yXx|+mn9BDDm;L{yL?rcew-uhHhlsZkM+cM#uv-r0gp8&`szb} zgJECJF5dv{&{k6h|FuQwEFymGV&lk7`T5(tV1s)t(sm_8+JQQOoskUlXXy~AxpR6i|Ex#vwCtq{iATE5(374vO^9oVBoQWh2 z6Gu`H`=e*SApC!xMXiGdmKwH&QT!FLU53F<}~hYnz-w4 z=(mVCon=-xJqPzi$*S`U$*h>4$~0AY(xc19W zAj^Vk_o||%R~IRM^2}8RNBYiDv7z0Fx&zgJ@wdKb3!$1jn7Oz*n?vmXLtjm7PmLatc5f%Zu^Y1h~&?@UvN3zo``XxFm4rT|hQxV&#-^Ndh z)?4WXGJnMBT>Wtfy^t0^hRBUNC>D*R|9O}MSe8W{+SR*?QPboP3sCD4V^DwQ5Ll-Y zJp`(lY-Hwe_=O9xq~Ou$iW2A!xQq9TB})uH*==?_M@%jeQ#$k^%n`EKyZ!LCRP7j*T{Txvx93Sv(PkE3bP3+ zWEn=Rd$EmB(;2WX@k=UV`tS(d-YypEhua~jKgHe|gQKN^?!g2$NaQ!ex(4K>$GQ6~ zZJWr#tEKBinGnj2YWVKnE9We`ds_sVdfJ;sQTa1iO6{uFq>_bU!%3i!H~`D4jxK-5mk#Rf}m56HRu?U~+&o*3` z%4cq@g$LEE-)~65WZ#Ju%o|!`xPN8=fOme|dVfxWgW^3E*>bF8A|+f|dTP0b*^SVz z72N#0G6p?x+_pCpV$`5?IpX@q@1A)VKRnJW_4xa}aK;}YGY`q0x9Gxula={)OEaiQ z4D%ZSHl9LGBBK~Y%%NX?!1s1ElhxIfrnTYl;<;($+qt0oVRg+*cl*+@6n+=;f{#2QG0UQ>d}u$kF=;1xb16?Y(=S^_ z7fNbLOOCL>C>AN|t+u|%mmZ#P2obpK_ zN1E;+zbS#t{c8y$yZL71$a% z^OWcp65~9@;pdSxs>p5G6lG~Yo_|<0YwEwE(q&d&Og#GotghUui6ha?xc;+MFp_9g z0j)XwpjA^aD!ye(mOu3@P@+2HFC~_>+i$Ob30`sC&4Kg*UO( znq7TAK(ThN+V`Hxvr>C!ME2++$xJ z;}vIC2nxrh30@TB?;dL8E>($kdNhbaKq#capaK?2hl$@DXxhi7L+&9fFr*5b)2G`P z9EFJd=*}~ajc*&|ng#ap)ViM=6p2ic7n0=`B`=<;7;i)~RS4|2CairI30JO#&z#N) zHIi2)Z_s^-;CS&np`;}K+&t04Xg-8%R|Y3|@ghb$6pn%@C=6H%!SUKCLF{xL=+Osi zipm*dG!`<)vA?q0#)re%csutm6msuaaoUC<0@X!wBRLh%4m|$0$Tndelo0p5mptWK zSDX>TremSYQNg(H=jKS?=L9BR=qIOyEii3d6CWMUSTgw0pnRWOuoSR{;I;$c3ud#~ za2&@VNk})eBNK$EBIEOQ*3S*)QY#MDj&s2u20lCt7Fuk!oCtZJX7JfGYLpgigz_9e zeIHBN#Lflol5;-m=8jb~7@BJ=uMm~J%2hu(<=d|y0{LjIt)kOoy6TTs^@***a3k52 zs$eHIEK{1Jq5i04N);SVP;U#!XAd$~Gc^l2$4p@;wZ9xH_Cv*1dj{ zKAwh^#^SFtn97rQuQBRx4(1cl+5t|K5io75d!}(5I-0Al!F4`RYN3HIJn;oR&PSl_ zqk%x|{RbU;f%M<#!7wmn$jUO_W3)`Nl{|PP`VUVbr_ltrf=37>n>pm;iClqk;!NH5~SzT+5hgG z%}O$n3f0j-M~^$PF~0vaqgKpkrWR9Fq*xxjUW}CtbVz!lG_OTrNEVbfHANf7TXcw+*8k^WHd3r_yV=n zaLZNzE@`Hi)~WJ-AP5taZ6#!WiZpgwFkGh6Vt_(m6t4Ql<8y1 zccP-1sY>&Q{Kgi?NPl%xv{Ogm`)glLIdMlLJvjmYc&th?mi3vh|M{?V8%}V}lYNrW zqL(S^@@Z3LgU;XKQ@2mkTHPZXOo;Zz!jUI5D>_Hf=Pg97)L! zr=h$B)^;*TPkx6nuGEBvYdz5w+#@U3&<9&3ZVhT4Gj{CIV0jXuY*|NHrT|O9%CjOH zkeUx@;&jNEnbhA?I!vmAcb9^zsk7VPwKtLTPB5Gd(?@J=2dqoM}4y@AQD4=7`libK_p8N)9k;#?LX{i70t8cOjjLnK-)v? zKh7T1Pj3IDsq^~#Db4);lpCzGu35~eKPyf(|e>oopI6&^1ESZ1c=7# zFrMZY0fG3in`rY2i4*sg!7Nj8KKIB;0_`>Drn4PAdu30*M}!c+6Io8932I zaXo6}Wt|^izHRo9i#%OC^SI+)Ox5u7{~F+B)-0rCxV}oDmf;D*W40aP)&3)5@;Dtx zi~NV6b%~-+bmV{`9P~zM$oQs5KZ8B1EYCm6K<^Kyx3*#U0Ur$DV-Yo~$0OjJ41^~3 zX*&ec{{=weA*x(h{ap-(GWm)QS&X7=a;uy3L83{?JRI3bW*{~r2T4|_DIC;`SYNWVTixgR_MzF`zsQrs+*gLVr(O08NsQ zVM|FO%V-4Gb2leZj?cG#N|F^n*t5!#d>PAiiwRclPpSDGg4aFDy{78nx^TzZ7m*KC^~8TNf<6oW zz`+ey8mOnD96x!u*m76O0W=I(?rHGwp}w+PrS;Z`o&af6MYl7<03&zZ$Uzb*apT* ztV*J(ASB|_xNN8Oo|7I{n<4})CO1R8koQ&(7umhdKYEY6(Rq7^ee(J}>hS0~!0@Az zKC|pJUh*KiSg|q6ABsh+J0sr8M`%RasAkRT`&>G{hgzZ-`ZeXbp?>$W>%_?D-HA)! z-M8zd<0QBG^DmaqNb^Vb@22l+?=Qij$R7IumERrsos)7g;_x$}^7*+IQ8xG{O31#3 zVQ*oJnHn(dTLxlRzD>~!RDKs}8?c6@sj&_WC=u#s`G`&}xlocK0atx8z77G`xa%3g zG1I6jnwL-hcw<^0O)Xs5E3HA5OA=qTivf)D+%p!oL=aVTFr61)+>+VX*1$8!z=2;P zGj~*%Q3jP*>oJZIxzXa6E0te!DL;_rWK8)8=ExibaQ&56x7`_s3-hJ(vXUK%fI)pORf) z#5d3m+uq4}%^!KJp?;XWMtEcV&;5@33`X0T<<8*)3Y3|FZdWOBC~_KXIxSJ~aQc>OOlrn5kqzo#{hy!ymI%nMFtp>qj)Xr{4Hp9h+Li?RQW(^-UC5 zn$iC}3zzAI6g%G97RvNR!xIRr5+%hl1z-E)HxT?HJZjHs_FN_VU3}J$xE_XP3W2kI z%{fxJhK`#@lZ?M$jQEcDf2ycA?@pA&agGmlCOf(_;!UqwVHyr{CBX|K5knZw@a{}DqYq-!;zrJ8kdE`Ga*v}7aZyT{(jh@ zD@(P5@L^IZ{?avN{E?1?`K#VMwO-9z&-Fb^Jd6G@0bpDLFgOG}CZkEcqBUf|qn&P5 z;^hIQ50C6}lBdgu@riGd&vm=j<2|M3-@@XB{l$X&H{e_TVj+-FQSorGbMojipt34_ zHIsn2np4nA@PXJs?Cc;8HunE6ws3PGOd_aqfH@_(!IED%dBHp&Q4ps%m{URmB*6|A z<>nOU;1n045cq#p3{Y9+%^fUVttdFy*g*e%9i~mQw=&Sd4}EBFvtBE)&fI8TwVx}J zdHPPLFjpdzQKT@(DKmdsBD1zZXPpUF7{-+NqJq$?LKGYRHX~X>0RZIFqt7S z#$d|HI>Z&WebFMsW)%LY)ku;cmflb{=z6@nHa0kXHIO89GXUL~OfN8VOgy&V zq4$ZMKLNL{qi#OUK$_bQ-W~OZW=;*FgRvC08g<*-+-r8cKVQeEjal+GL$sop_QoW* zOHl=LGPHn}6LJ=K#QuYqnhldbuslW(c^z|}X@tSF?pxhXn)4xoe0|BX7Mpw@6wg+Q z9ba0FZ7`!*QIrRsAC^D59405^uII;DY67n|YZWO6g_f}&TbmtO8!A6Me{fp>b01!k z^8=1EdP$mH@6TA~e!L{q?^Mq4;19M#`l6Z;LI`Rj*Dl>D&MC}3%Pv@+y&TIx>b$3> zS76`348G*w&9Eg7hD7H3r9Ch~6Eze4#*s#I7_3I(lFgK4?oY|=FzH5fG!r{3tk|5H zXjkW1*bueg|A`zz>;n^08U8`oVvoCN;^`5_3I>oj`yVK-IIJkjvz&%5_Pa*C%_C`3 z+aZ^bSz*e#zPnPK)OiJR8sr;O1&(lYnAoTq$t@JVJ$(>mz{ru7e|bAFCQ+UR{Y#Qz;8{pQmyR z_>cLn7h@ZeZ6J%uv9NY%Q{OGe>lJZbVO=FO&HGYgg+1-9$nc3S8lJH|s2sfmojBmg zscF^2*mtIYSDx1feh8Umu5xTNvkt9JXCl(_RFrl#tZQHUH$uecUchMY=Y9*eN~}ad zl^JozA91adx=0-Y!_m&hEL;lG84MNW=fAwl7wt0|5X2+5Goj-i%CQ8 zgOiv({;MJB|3W`A#edED{*_TVjn6L^pyUA?G4>R^5hC&6MjT0i6Ht;mO+lK&d1gb= zhTO+-Wg}M0Z826ERg#1#K^`OW5Jihcn#mc3Hq zwBH4;QKS+aVc6vah2N$_ZGEM>52dCk;74@KfV1OP%b^oo?_ao2ikpbn=+1IUD5giu z8%KiMnoDod+T1gc=Q!VR1v(ds zxz$RjvTvwva3aS7C0+)EP|Ss#7UJL0}&Rh2WDW&4me`vvjM76 z%ng-yH);hQIlT2{2WBiB?z=&86v_U7fMUIbeAr_@XF`-WLXuEu4Gtygcl#KEuUT%X z@$4Zm`RZumD2Py9;1~MwK6){Bf+^}`V+cw9B`P7-ShXW|{s`(kO0h<3u(C2@MKN2P zGIa=I@EE!F)AeF`q(Aq>Yr3VB8Bu^uOsMIowhdjB zgcn$XW#yqH1MvGoUP{r*5fS0Qi{ZlkoYx!zl=y#`wBL1E0EA%gEP4)YXsr#PMDb7r zOUi2xwDRY0JoG8KM#Ulr@eOTWxw$wMA-XdS&0kftUARVKBeN^UE>CtA(L{U*1bSFj z=a0`ymxG;wV$h z#4<4w`hK56;Aj}S)!^Xr{?-b#&P|wKwRX867?8e~H(1JR`&1i|aGKuEJjYASRrwYU zC2%w?akuWPayO8_gDsT}Wo@)>6ckbFrA*F=+);4>o!=rl_zteJOHj)`nmX zjNHfzPBpA12(e!asKpf`Sqz>In6gw|A$W7UvD>IDO?rFS-hGy&Rh&A{L|0I4$ID*r zH#aDs9LZGhQ?cMG02gAcT7Vy732d;TcWC^R1i$dtL&}Vl{}{1#Tv@aHBZV^ACyF^U z_u4!SHw4Bry$P_-fG+m;D^iOKsE+(-d8WpArKhmP{jHqtnS>&hfkm$81yqw|E2<3j zqMZ3f7mc$pfk53IGtI9;6Rl!G!#!6jbTa2}2f>#Fr{KPJPi!KN=TqEjLlI~R_So)r z^6EiHlL)Ork^JY+6seP4xBM&!W*_oHf67 zziSy(@3Q9KTZ~NV{%$RbU+vTcxj*x&_erT_Dp%DQP3Q3W+YhS5`ku&TQR}NLpY9vU zw3u`!oxN%+Jj0lycxf|dtf>ecL`8{J`Z($Dt`J?qmY*cYc<#T0&n}SWN?~u&?P~zI z_~gmOYj?jgaEMLKS5bs^#Q9upLfw1yVM?xj^378cF#M^#ZTfUFF5>9O$!g9Bav@0L z6c3;lw}2YpP$S^HWR|t`T}AK}CycRdEwTWJ3;b&wotQ}TqP8yjS zoH9HA>}A>3hj|3()H$DttZ^)?ZPwqp0i~0BW(X>I91!7phN|UQCvSz!Y@8mtFyV!9B?TdKgQr-+zz2+xem0lg`LpRhz}Ix311P zy~UQQM>3X5pAM`y1v)cId2gZ-1UO)(ozASM1ddL>QlFp*J-C|Y@FrS1?(R9nAaKGP zJK~k|s&SVP1!VXOkd8jPq}VbX?tdKT?kr=Pgju-VX_2lL>czqaVE<=IczX37cYDt#ccAm!%papbPxEoe0ZjZ&9gU^cHOmNN|(WDSmxBN(oG25){6)XevvWRu}u@kecrI$hTc@fX>zC#Fxd zt~am8EYD6g%;E)X1;R{`GF{bFwV22Y3N_K$e?di)#~T}IP2PL|Ib7kP9QeI#(~RG9 z#oW>uHD>rx;Q zh@F=xgMAWJq}jBA5-BS5gw_ebcr23#S##KhtwTD?9MdSq)DvC}EV=AQxo>4#Gll5m z4Gz>s+m^%C(E3tf^Q%8TV%C|BkY4USRJ+3s^<*Kbwn66m@$q151EtA7ZLbQSv#IMC zYVMz8^ilZHxmoN;VOt8tsnh=?1~^jaXLbj*8^s4+^CH9Ye#f=TGFx;w`Mjz0Psd!t zQ|g+h+e-*L6{4H|voj&k%u*j!li{k4!xRRsa(if?cH2W}w)t#7QG7ABGzeY^hrgRc z!%Ve%`U(HF34^1kxwMwwxV>@GMWg0q3qD<2wcLE0>(!bc^~jYj${doMLcoMbmX;nI z`RSe)xrD+_P`=apsk4QKZ};%~PtlY7l5Q&-6jUz58W_$7kUZG1D&+Db|I#e`56nmC z%IitTjn&iUP?{*?gmFPO<0d=fA^1?6ulruamp@g87C<1HLmm94swZjwws%z0p?ikT zhkWrzW}k1eYokeS3=t{pfTw$Zl%(JDq61)la3~fv-W*p&)mT;OuV+!X<{H|BZ5bUz zGZ^ung7GTU!z=MLI{3LLH>+#da$yZRF)?L7P?cw03Rr%0?ix?q7P%IuEb|wyA`~^k zGbZ~?M@Jc!Ht2id{B}lVtvS|@Jv&lv&{CL0=xWzmgby9t<22Vut_k}=Xwy=#xw-vA z+u>%*SNf*!4_>BKZp$zriX{nk+`sMPD*0{MWvOa3J%q#Cv=D?1C`%VhscIQYMdV+6 z4pBxL=(-GWU_4A3PPH9Tz#=2NV>+Ox_RNbnD)^F>Bk|

Ku%%bn+@rJa6qfqLf;2 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, ] } ], + [ + 1, { "/Type": { "N": "/Pages" }, "/Kids": [ 3 ], "/Count": { "I": 1 } } + ], + [ + 2, + {"S": [{ "/Length": { "I": 49 } }, + "1 0 0 1 50 770 cm BT/F0 36 Tf(Hello, World!)Tj ET"] } + ], + [ + 3, { "/Type": { "N": "/Page" }, "/Parent": 1, + "/Resources": { + "/Font": { + "/F0": { + "/Type": { "N": "/Font" }, + "/Subtype": { "N": "/Type1" }, + "/BaseFont": { "N": "/Times-Italic" } + } } - } - }, - "/MediaBox": [ - { "I": 0 }, { "I": 0 }, { "F": 595.2755905510001 }, { "F": 841.88976378 } - ], "/Rotate": { "I": 0 }, "/Contents": [ 2 ] } ], [ + }, + "/MediaBox": + [{ "I": 0 }, { "I": 0 }, + { "F": 595.2755905510001 }, { "F": 841.88976378 }], + "/Rotate": { "I": 0 }, + "/Contents": [ 2 ] } ], +[ 4, { "/Type": { "N": "/Catalog" }, "/Pages": 1 } ] ]\end{verbatim}} @@ -3152,10 +3168,23 @@ Output PDF as JSON data. Each object is written under its object number. The obj ] } ], [ \end{verbatim}} -\noindent The option \texttt{-output-json-no-stream-data} simply elides the stream data instead, leading to much smaller JSON files. +\noindent The option \texttt{-output-json-no-stream-data} simply elides the stream data instead, +leading to much smaller JSON files. + +The option \texttt{-output-json-decompress-streams} keeps the streams intact, and decompresses them. + +The option \texttt{-output-json-clean-strings} converts any UTF16BE strings with no high bytes to PDFDocEncoding prior to output, so that editing them is easier. \section{Converting JSON to PDF} +We can load a JSON PDF file with the \texttt{-j} option in place of a PDF file anywhere in a normal \texttt{cpdf} command. A range may be applied, just like any other file. + + \begin{framed} + \small\noindent\verb!cpdf -j in.json -o out.pdf! + \end{framed} + +It is not required that \texttt{/Length} entries in CPDFJSON stream dictionaries be correctly updated when the JSON file is edited: \texttt{cpdf} will fix them when loading. + \begin{cpdflib} \clearpage \section*{C Interface}