original_string: protected function o_toUnicode($id, $action)
      {
          switch ($action) {
              case 'new':
                  $this->objects[$id] = array(
                      't'    => 'toUnicode'
                  );
                  break;
              case 'add':
                  break;
              case 'out':
                  $ordering = '(UCS)';
                  $registry = '(Adobe)';
  
                  if ($this->encrypted) {
                      $this->encryptInit($id);
                      $ordering = $this->ARC4($ordering);
                      $registry = $this->ARC4($registry);
                  }
  
                  $stream = <<<EOT
  /CIDInit /ProcSet findresource begin
  12 dict begin
  begincmap
  /CIDSystemInfo
  <</Registry $registry
  /Ordering $ordering
  /Supplement 0
  >> def
  /CMapName /Adobe-Identity-UCS def
  /CMapType 2 def
  1 begincodespacerange
  <0000> <FFFF>
  endcodespacerange
  1 beginbfrange
  <0000> <FFFF> <0000>
  endbfrange
  endcmap
  CMapName currentdict /CMap defineresource pop
  end
  end
  EOT;
  
                  $res = "\n$id 0 obj\n";
                  $res .= "<</Length " . mb_strlen($stream, '8bit') . " >>\n";
                  $res .= "stream\n" . $stream . "\nendstream" . "\nendobj";;
  
                  return $res;
          }
  
          return null;
      }
code: protected function o_toUnicode($id, $action)
      {
          switch ($action) {
              case 'new':
                  $this->objects[$id] = array(
                      't'    => 'toUnicode'
                  );
                  break;
              case 'add':
                  break;
              case 'out':
                  $ordering = '(UCS)';
                  $registry = '(Adobe)';
  
                  if ($this->encrypted) {
                      $this->encryptInit($id);
                      $ordering = $this->ARC4($ordering);
                      $registry = $this->ARC4($registry);
                  }
  
                  $stream = <<<EOT
  /CIDInit /ProcSet findresource begin
  12 dict begin
  begincmap
  /CIDSystemInfo
  <</Registry $registry
  /Ordering $ordering
  /Supplement 0
  >> def
  /CMapName /Adobe-Identity-UCS def
  /CMapType 2 def
  1 begincodespacerange
  <0000> <FFFF>
  endcodespacerange
  1 beginbfrange
  <0000> <FFFF> <0000>
  endbfrange
  endcmap
  CMapName currentdict /CMap defineresource pop
  end
  end
  EOT;
  
                  $res = "\n$id 0 obj\n";
                  $res .= "<</Length " . mb_strlen($stream, '8bit') . " >>\n";
                  $res .= "stream\n" . $stream . "\nendstream" . "\nendobj";;
  
                  return $res;
          }
  
          return null;
      }
code_tokens: protected function o_toUnicode ( $ id , $ action ) { switch ( $ action ) { case 'new' : $ this -> objects [ $ id ] = array ( 't' => 'toUnicode' ) ; break ; case 'add' : break ; case 'out' : $ ordering = '(UCS)' ; $ registry = '(Adobe)' ; if ( $ this -> encrypted ) { $ this -> encryptInit ( $ id ) ; $ ordering = $ this -> ARC4 ( $ ordering ) ; $ registry = $ this -> ARC4 ( $ registry ) ; } $ stream =  <<<EOT
  /CIDInit /ProcSet findresource begin
  12 dict begin
  begincmap
  /CIDSystemInfo
  <</Registry $registry
  /Ordering $ordering
  /Supplement 0
  >> def
  /CMapName /Adobe-Identity-UCS def
  /CMapType 2 def
  1 begincodespacerange
  <0000> <FFFF>
  endcodespacerange
  1 beginbfrange
  <0000> <FFFF> <0000>
  endbfrange
  endcmap
  CMapName currentdict /CMap defineresource pop
  end
  end
  EOT ; $ res = "\n$id 0 obj\n" ; $ res .= "<</Length " . mb_strlen ( $ stream , '8bit' ) . " >>\n" ; $ res .= "stream\n" . $ stream . "\nendstream" . "\nendobj" ; ; return $ res ; } return null ; }
docstring: A toUnicode section, needed for unicode fonts
  
  @param $id
  @param $action
  @return null|string
docstring_tokens: A toUnicode section needed for unicode fonts