Example #1
0
 public function testStringNotDivisibleBy4Decode()
 {
     $encodedContents = "9Q+r_D'3P3F*2=BA8c:&EZfF;F<G\"/ATTIG@rH7+ARfgn" . "FEMUH@rc\"!+CT+uF=m~>";
     $decodedContents = StreamFilter\Ascii85::decode($encodedContents);
     $testString = 'Lorem ipsum dolor sit amet, consectetur cras amet.';
     $this->assertEquals($decodedContents, $testString);
 }
Example #2
0
 /**
  * Decode stream
  *
  * @throws \ZendPdf\Exception\ExceptionInterface
  */
 private function _decodeStream()
 {
     if ($this->_initialDictionaryData === null) {
         $this->_initialDictionaryData = $this->_extractDictionaryData();
     }
     /**
      * All applied stream filters must be processed to decode stream.
      * If we don't recognize any of applied filetrs an exception should be thrown here
      */
     if (isset($this->_initialDictionaryData['F'])) {
         /** @todo Check, how external files can be processed. */
         throw new Exception\NotImplementedException('External filters are not supported now.');
     }
     foreach ($this->_initialDictionaryData['Filter'] as $id => $filterName) {
         $valueRef =& $this->_value->value->getRef();
         $this->_value->value->touch();
         switch ($filterName) {
             case 'ASCIIHexDecode':
                 $valueRef = StreamFilter\AsciiHex::decode($valueRef);
                 break;
             case 'ASCII85Decode':
                 $valueRef = StreamFilter\Ascii85::decode($valueRef);
                 break;
             case 'FlateDecode':
                 $valueRef = CompressionFilter\Flate::decode($valueRef, $this->_initialDictionaryData['DecodeParms'][$id]);
                 break;
             case 'LZWDecode':
                 $valueRef = CompressionFilter\Lzw::decode($valueRef, $this->_initialDictionaryData['DecodeParms'][$id]);
                 break;
             case 'RunLengthDecode':
                 $valueRef = StreamFilter\RunLength::decode($valueRef);
                 break;
             default:
                 throw new Exception\CorruptedPdfException('Unknown stream filter: \'' . $filterName . '\'.');
         }
     }
     $this->_streamDecoded = true;
 }