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); }
/** * 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; }