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