Beispiel #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);
 }
Beispiel #2
0
 /**
  * Decode stream
  *
  * @throws \Zend\PDF\Exception
  */
 private function _decodeStream()
 {
     if ($this->_originalDictionary === null) {
         $this->_storeOriginalDictionary();
     }
     /**
      * 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->_originalDictionary['F'])) {
         /** @todo Check, how external files can be processed. */
         throw new PDF\Exception('External filters are not supported now.');
     }
     foreach ($this->_originalDictionary['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->_originalDictionary['DecodeParms'][$id]);
                 break;
             case 'LZWDecode':
                 $valueRef = CompressionFilter\LZW::decode($valueRef, $this->_originalDictionary['DecodeParms'][$id]);
                 break;
             case 'RunLengthDecode':
                 $valueRef = StreamFilter\RunLength::decode($valueRef);
                 break;
             default:
                 throw new PDF\Exception('Unknown stream filter: \'' . $filterName . '\'.');
         }
     }
     $this->_streamDecoded = true;
 }