web/lib/Zend/Pdf/FileParserDataSource/String.php
author Nicolas Sauret <nicolas.sauret@iri.centrepompidou.fr>
Mon, 28 Oct 2013 18:14:39 +0100
changeset 970 8aa8a613e9eb
parent 807 877f952ae2bd
child 1230 68c69c656a2c
permissions -rw-r--r--
update correction description from Mediapart

<?php
/**
 * Zend Framework
 *
 * LICENSE
 *
 * This source file is subject to the new BSD license that is bundled
 * with this package in the file LICENSE.txt.
 * It is also available through the world-wide-web at this URL:
 * http://framework.zend.com/license/new-bsd
 * If you did not receive a copy of the license and are unable to
 * obtain it through the world-wide-web, please send an email
 * to license@zend.com so we can send you a copy immediately.
 *
 * @category   Zend
 * @package    Zend_Pdf
 * @subpackage FileParser
 * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
 * @license    http://framework.zend.com/license/new-bsd     New BSD License
 * @version    $Id: String.php 24593 2012-01-05 20:35:02Z matthew $
 */

/** Zend_Pdf_FileParserDataSource */
require_once 'Zend/Pdf/FileParserDataSource.php';

/**
 * Concrete subclass of {@link Zend_Pdf_FileParserDataSource} that provides an
 * interface to binary strings.
 *
 * @package    Zend_Pdf
 * @subpackage FileParser
 * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
 * @license    http://framework.zend.com/license/new-bsd     New BSD License
 */
class Zend_Pdf_FileParserDataSource_String extends Zend_Pdf_FileParserDataSource
{
  /**** Instance Variables ****/


    /**
     * The string to parse.
     * @var string
     */
    protected $_string = '';



  /**** Public Interface ****/


  /* Concrete Class Implementation */

    /**
     * Object constructor.
     *
     * Verifies that the string is not empty.
     *
     * @param string $string String to parse.
     */
    public function __construct($string)
    {
        if (empty($string)) {
            require_once 'Zend/Pdf/Exception.php';
            throw new Zend_Pdf_Exception('String is empty',
                                         Zend_Pdf_Exception::PARAMETER_VALUE_OUT_OF_RANGE);
        }
        $this->_size = strlen($string);
        $this->_string = $string;
    }

    /**
     * Object destructor.
     */
    public function __destruct()
    {
        $this->_string = '';
    }

    /**
     * Returns the specified number of raw bytes from the string at the byte
     * offset of the current read position.
     *
     * Advances the read position by the number of bytes read.
     *
     * Throws an exception if there is insufficient data to completely fulfill
     * the request.
     *
     * @param integer $byteCount Number of bytes to read.
     * @return string
     * @throws Zend_Pdf_Exception
     */
    public function readBytes($byteCount)
    {
        if (($this->_offset + $byteCount) > $this->_size) {
            require_once 'Zend/Pdf/Exception.php';
            throw new Zend_Pdf_Exception("Insufficient data to read $byteCount bytes",
                                         Zend_Pdf_Exception::INSUFFICIENT_DATA);
        }
        $bytes = substr($this->_string, $this->_offset, $byteCount);
        $this->_offset += $byteCount;
        return $bytes;
    }

    /**
     * Returns the entire string.
     *
     * Preserves the current read position.
     *
     * @return string
     */
    public function readAllBytes()
    {
        return $this->_string;
    }


  /* Object Magic Methods */

    /**
     * Returns a string containing the parsed string's length.
     *
     * @return string
     */
    public function __toString()
    {
        return "String ($this->_size bytes)";
    }
}
~qџ״yiqXiH {FjBja[ox' \ pD S1AbϺ*iLEixHP&\SKr#F+#@ O:?[]^gr_K^t8gNn!ht_WoFeZ[/uL/^ڂn>HC7c9 ~tirJ^[/L|.T5ΔrS"C3|'Ό&@!1|zk OƩQuxeDer؏2u \dW#d`k4nI4!4>rz<ֈ5* Rp'԰2L61"Я(7Xª = jDM. !y<`i΢O M]wm̟/‡"l("jd Cga/ K= )a'Fx1 X(2]Djdn]&TO,`t+?b9s例x"D-U A4IڠDh0t?4RCaM깢V{*8IT57 9[5RC p?l[yHu\7}x Is Dgzpx:52-c/A'@81i P\*Km>%_OxšÍn*k[po"J)]Pp^A<{hdDBeDf<TXem+ lف(*=c!f0ߏ9c2$(/{J)ΚڋS +M$UqnHHd;^wqΰ d6=y+_C P~A[i:Q냳!)m?d%aE̩o/6iK>7+vJFR:ebmه$W9!_(tk\&vfP&kw+4\аzi\H?s= kuX r;%TY 1W}VHbl'gEv~O_C|]m^e +F_BL;zY?͙WLv K^8pv$Sl-Nƚ~Jt}[t,ګT*-Ty*sof!d:X#~qw{`L5y26dy$'ӆ0 t^If?c'G󷷒6P|6)]bxNsgx=c>EfIV+W]ܻ o_fMqxEpzLw}6V?m~Zym¹t!mq, { Q峜}DvJͬAov}q^'@3ěJ]JWz5O脝jّb &"F,"0Ȏ O*s҄{Z v$P,)@g'OX1]˓/&/hKI QlOrdhj$SnsYڳԊ=j'AA \q N'W ),ÑLB ~R䲺'AH$-{6Ks;A}|V;WGxKتb.S֐C͆V Vլ,Z.Kk!-}^V;T<7f[Yf/5YrmS&Bv3 UÔ7c,~g3obQq.͕stКÀ {_`f[q@~/!4Bl7wYHKX_g*nd.8&ϣ5~쩔IGn@[R0 W,Q$ګx+1lF$@)kY8CJ_R‘6@!n:8=7ɗ#? VAV>mLt/+^Z*)O׽/*&*+wƷYq.m#ZL)[ʬVI*\]x8HAg&ae(~ӫ2cj]=W; X.hv=Ǻܞ2wm"yq"Outԁ>߯0FF"Pn}9XcL3=P=]zun2_wnF^S3 phg '*-;5ޔ]|eaZwT㍆vr@JP7\N6,=c fc&Kvh߾is2(PCH@l1v0"[ʏx[v2PSoMDpc+9`P^'8\ ok,N|k34_Q=l=/r[x^YaV`̥V=~JI$3ؘ0KD D+oH P䫫mt<9U, Q!)WPEC s9D|xsQ@V3m9V Fq}2{ڰIYPy:p~EHYE\evn B*m qؙuHƿ©N+:#jz?4X BF%Xґ-.Yj|VL,"&EhmG7v8QFx?&m~JZ0XȪPmc\kz[]cBOj/alnv ?*F"SY4 *0bKHoF#߷髍śf5/mW6Cxڻ^ھR)/:W\u"?&vTgGrĆ BeC>^FKnS}wvoخ͠ ]CA;KD/7 zۑND[Rm5[vH&0&3Z#Vivt .+6养H|g5$=ԹmM@(ԦڲK4}3a+|Oey+ƪPޗj_jWB"%kɝbQx4?j[lu6Ko:CMIJ\7'C8YUlJNr[Uڦ^ƞF fS~= n 9˖\To3,Dފ}] "X6Rp"9iRa=,{؆D=Wxge+IH .ol I GTO1g%*f8[v,e!A\V5N `!iy 7'{oʢzxVS)ȉRn5%, L_PA.9P>%9 ;ZH.P`$cEE^P-YhU㠢~T>=č{+׵c1ԩ~Inm;]ni[4#.| 4![``n*A}V :1PAL, ˅H;I,B\ Q=@(NٟM,ףNd!v i$*5:IΣ[~+ V.$rn| ./Lo j4*|U Y%z@k/'#r ?zՉߊ Ԋx|CNoj1DY ଍ 9k1|pA9笪 .ؑĹ 8e~CK7O8)%9:_6HbwG.PEIK1^YfbQ;g& P1GRXE]έ(f-B,Wt|ʠONt~@f OVO"'IU*fcG}xmbTq4|p%לZ& 03',dmTD)>SOsD]A>Wc ةRe/goh3JYgN"+PTqqJl.6<.Ji@VxQ~ۣ@ aֈ_Ux6Y0=*+,p& ʠ7SiMk&:~38&c#lw߽Nl4i3 RB\`.({8VD32$wܙtl.jV0HxQ%婏! "_QF ?i|=8Bka ,@H7Oܾjx3fuԒ$ 0_EZWP~_ގA wi1`nY1J'qNw k)h2 @QO5s\z?w:bR7ehzb4}l;) NEˑiO0~G?2a=^@}*ʈZ M1ֿJ c:%0AϽ ZlɈF4GǪKXUH5,(ۉOqӪ_0|G.zn3rX{ڑZg3LmJ=64|_|okU p5VF1.ߣF%~3FIFiOkmQQs(Wrt|eZCUL8Z"^jaTx8>, Z`yqy6!˰}Vn(=G(gv:ӶfL Q,.hwNO. ,0ԕH4p[N)V j2>L2()]y~M:A 1|&)33M͒-h*PJ (ktz7B›F"G+$w>Zr 6qoTU;l.(Gj1LA^z;,%ž > 'pcnҲ6%4<%3y{⫧Ku LH=џTvN1oli i]rc,,q,q<7ꎦiJ˯'+ >i4&MiK0)D܌ޖnұ ܦ.-Pj 8ۀۉJKkC-*U]^(޵4ϨK׻ pԛSл~iy`csj%]YEez%CB_s+2pxƉɨ1aIgIۄiB+\KCax1kUZƹUf8z=K&5u$=I""$VfLf9<>=nO {~9-DB(K5-IyM3\1K [;8Jb'VNxIDRx뭚z(ttN' -^15,8QٱMW;Hqj+StPڰ1mdoN۔4pW$z~éٺ-]bjOo@Y\Iz4^ES{DԤ'ϗgfA q>Eu` iMV@Ox$_ =q~88l*D'W>qZj#=mM<ˆ^)nlbnNEUxW؀4qH,9`:vi,b~o)/7 I_ԠB,=SIHK#'w+p @;sӈÀ*=MJw+'ޮ?ǍS|cL* )Kz+5:A(, >]͏UB Xi{X߻!%vRǀFLukhMn@i|gh B/;yXk~:?|VepKcKǚ!Ə Dp=6u?̳sSH -Ph;h<6P<16_Tqkt!.>z_p fWPW3DO$So+H+v_)KM?crBd#xfڀD"Ko! vD l~0ԝ٨d7?:.Vh5-6>hKhg'?@FcWg9)VO%ItA(E_6Ǚرn*@ƂC .^<]"IOL=Y~H_ }KK,CvnK@Ԭe^xnwA4q".0FBޕS;X;#r>Ok-KV'[o;{{߲ V=G;Hi雖v7wC|auɬy;;i)̆mh4HZMO+BG#+0g\ĐA;yN`K;oݜttU&  l^s*6O1R^ejJ|;?:Z;Au[2vbJ4~#R,KKt "GW>ӰG.gڎ#vǝ_I}@򕩾6D FdŚ`V(KaEStLi~1NhegݜQΡعՁheߦW&5XL;3Fb "s )S,c3RĞ8K^Εi؇kF㮴B84<YFwe= VP( Ekx#J| `PSU(yX=|HX]gv2]SiJs7n$AH:qBwrߠ 6AT|Lv3í]\Jv?%E&S3n%Sfy\ *CWHt$pl0ٚއ"eZkZXb/dcw`>?AIPӢ-=HίcYI6hk v̻\ܹB賧Mm(OyUmEp iPiӲV>.(vF*^OnF V(ݬ$K̒6v3B n3lJ;1AQ*u$ ݁ =4h2[(ė 3j")eP3N+핱nTUiFF9(NKB p̥0dN"b Is?QiA:h<6gehRߑD8yUU;[iyL;x~C꨾dA' nVs3%ЀvAJg\EਉDS?h.b [QoiRL>Eim %hFS KW{qS)wo̱*%†"VS0n3>rnsOSL'3hɭܪzxa-*'=AQ 4%"B˾ ̱Ӏ\A<9S/Fa+T nSEj!Q{ykOĬTSiON&+]A+ Y#@,[;PHxNq'_+4f**խ+ukEZb]J2RdfZ Tb>a_ǏLAh2a ?ޑն*chC֐@HlH|/ u]3Z(lMjJE  UޝZZ^W ^AiwD(`U{Sͨۺn1{b8rX:nZ ZLIJf)EdGPkjj "\I(;v [҄].@{uOKkC>)Q檡08rԓ(B$EԩhY-b;PMCipYAXjPYpw4KU[ T_, DdMAH~Xl<@=E*]c^ꙏT l+#_' ']™hm%l*qd-!iԾwZ D^"WJ&. ƳyQȠzr-{OH#Zhrp$3_bOR7e{y;@ |~ixDa-@0|(]ǣּZF'a7úVi%{ L|B_^d{gҤfdG7`c<`'_BPPrD9+`+omw2 <K.mG{T{NQ{w_P @cԇc[P7Ia`s|l'?}1ٸrl`83Yc4`A #Zf8QI`5%^רY],8kA@\KHܒ.ҩ 7I_D Svd=z+>VMV$.HI4 +/v)؅P1Cp>t*gthKi^>~ꄻwm ޺\\cj\W!:s7@jaP! ʃ>E/Kޢ%"yjg]T*7u0 9@'x`M $1^B;OHl|cgZc剭nNT|;֏C~i,Z 9UC͏ So)P+KxT!D?p2#W)]a*%T-*$#)׍C[?f⯆e%6kv) /?4і2jy7" SSV?H&B>7d"w>J'Syiݐe p  Gs?o=*P(YDe,KZMJ2gO{<5?)rr=MII0[,p xJ?\8C6 iϕ/=% @d'A&#lYZ+]Yl :s&6DqD#}Ek;I )ӊX;Rʳ2'b۽˩jF\Ꮲb8} Ξ?`[eثгHҤv1$[_2|H ]pE ϡw"B-Q {]yH=xaX6un2`|pA&`)ARgFWs=e{u%8':+d zxck+ 1ruֻ7ewy|ƱZW׃Hz.C-aEgb(]HȳX"anT*Gɟ^Ҵ2]Pύ l̵GcP#y˯vP8{9c=ŁnΌ2Z;u!uH|;ԟg+zZ8< ,]skHi&v7k q "Jȼ7SRGp +=pwg BVͷaXh Pel`k{W=%EJ#/rpJ)w2SvNbiZIuX?pAWC.IQ8Eep1#Yr]4|>*3t (q[^zܨ|M2 ?vG0jkz¾$P:㙶*JFcH0uNSu[젏Rrlˇc` e 8oxd$ɉG5S,%EC&g_]X:B{H. 8$,f8}1HT{M 㶰yΛ՘< *uNlh*iAR#IB%x$Lk8Բuc3MWɧ 'q <=nTEEe^rV+LLH{UP2*H ƜR{*HN߷|'̯LH5 loC~YX oS(rO8/;E[m"\3xSNqM|j~b RlUlϬa84lw_ iPxRUcҞtC푮}$y9D4ɸ ;袩6Rקz ۓ+4uņ<[gΒ<1,qF~C>/rhm$y9 ८O"& 9,]M1^TL#|V`j W  g;=fzIZFہєR~Ka7V_:0|*zW`z-dmr*wґHjnF;Bp h$in fˇRVcզa9aq$Q[ ɕ M bݽl:[C H5]@IrIYRqP|Qu5U~:H#{{b'[[>˗rΆn2t<;jM뼝JGҪO_ȼwP(Z+V\$Ķ)˰An>̇ڧ,QipN`}߫wxHD rȩޑa!!d[Gҿ$3G n"SaXe%n*'S(+$k*7KNwz{};ydF=' (m&OQ4S=O$zzF6B=FCzA=@2=OP4S@ڇPih1!D4b`44Lja3SAz@jL!H=amC dSM0(ǪzщɠɣT@j44=C ѓM=G6PCCzPd ډѶzzM)zdڍ44ښG4{TM 3ҍzLSGAD2d`F=OI& =AM6A=ODS j`C4<4&G=&&#OQ :#jzS ƧzM2MIh=(4=M6QhD2Sԍ4 m ѵP 'y LFOQze4F&y&z҆hQL&@~i26dT2h0=Fbdi'MښI\9xP[٦g9 - Aؒ꾴x*aېFW6>6[l8+~'?fnwq`oqVkF#-e۠(Y#'3#x\6וJ3cc)aȮQ?!2PpO4,e1WG}BmA\"2S=L^+`3? ) 9@ڰeYjV sJ*g)6*mu(P3ZݣY;zo3?BoJ}9Tz_Ȝ\yZy5@#Qs)-b m"!U.&u,1m=dnUM&mdf(J7 ]-M=3CnLu,sp @($5}> h-vy:a'ӿ_*L76h;XIZPJ_X+!mX7DKʨ!( &鷛wOeS~8KtKk?)/Sظ,0h7 )vFpbW=bN\f(xYG]*UAg(Xz}q 0;d&IWsƇn+{Q+Zؖ6y]sz'åK_ *5um#HTl>+sUģ<*lZi֢j:i#1¦N3h 3އ Z^M62v#& wnA- eb1<}L+D0sW*;Rk7ʜetQ$6;TY H>e,Q!R6z,m!P)? s0 : 21?ad^UЃ__0[!NunqB/-2KmG)$ueO .m@yc|jj:̦4fep[ʲD66 zۖ k{ JfaնΰnjaH 9`8 /7Ҋ yIЬ2M:m[%HB:Eٴ"#9 wa1fQqs+mT'Ye1Qe'df qF~J񬤓y_9l6'|)-@0|KCpCe4FѴ- [k+\IwNp+unI.8آ'9 Am|)NQޛ^ M&hRQ*BX . \øc#bAnT,Zݐ; P;Zu=ZjeZdiѯ/NP:sT%:*J[{jW\|_XxDyqx'=qil'1S pBs¢%brD*t|?yrn겯3M)1 Rz_-*)OI{ L(Zh,-VvLnTO˙MF"mR˝|BHI?w"Y(U OX  /<*箘XT{1Wo͒'a-J5wv ݆OW 6*Qqs!I&eاLB3aO3rE8P\