def to_utf8(str, tounicode = nil)
array_orig = str.unpack(@unpack)
array_orig = process_differences(array_orig)
array_enc = []
array_orig.each do |num|
if tounicode && (code = tounicode.decode(num))
array_enc << code
elsif tounicode || (tounicode.nil? && @to_unicode_required)
array_enc << PDF::Reader::Encoding::UNKNOWN_CHAR
elsif @mapping && @mapping[num]
array_enc << @mapping[num]
else
array_enc << num
end
end
array_enc = process_glyphnames(array_enc)
array_enc.collect! { |c| c ? c : PDF::Reader::Encoding::UNKNOWN_CHAR }
ret = array_enc.pack("U*")
ret.force_encoding("UTF-8") if ret.respond_to?(:force_encoding)
return ret
end