public function testStringNotDivisibleBy4Encode() { $decodedContents = 'Lorem ipsum dolor sit amet, consectetur cras amet.'; $encodedContents = StreamFilter\Ascii85::encode($decodedContents); $testString = "9Q+r_D'3P3F*2=BA8c:&EZfF;F<G\"/ATTIG@rH7+ARfgn" . "FEMUH@rc\"!+CT+uF=m~>"; $this->assertEquals($encodedContents, $testString); }
/** * Encode stream * * @throws \ZendPdf\Exception\ExceptionInterface */ private function _encodeStream() { /** * All applied stream filters must be processed to encode 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.'); } $filters = array_reverse($this->_initialDictionaryData['Filter'], true); foreach ($filters as $id => $filterName) { $valueRef =& $this->_value->value->getRef(); $this->_value->value->touch(); switch ($filterName) { case 'ASCIIHexDecode': $valueRef = StreamFilter\AsciiHex::encode($valueRef); break; case 'ASCII85Decode': $valueRef = StreamFilter\Ascii85::encode($valueRef); break; case 'FlateDecode': $valueRef = CompressionFilter\Flate::encode($valueRef, $this->_initialDictionaryData['DecodeParms'][$id]); break; case 'LZWDecode': $valueRef = CompressionFilter\Lzw::encode($valueRef, $this->_initialDictionaryData['DecodeParms'][$id]); break; case 'RunLengthDecode': $valueRef = StreamFilter\RunLength::encode($valueRef); break; default: throw new Exception\CorruptedPdfException('Unknown stream filter: \'' . $filterName . '\'.'); } } $this->_streamDecoded = false; }