From b48912f4f3c428c8b71bbb714faa03cb843d40b0 Mon Sep 17 00:00:00 2001 From: Nicolas Pena Date: Wed, 17 May 2017 14:45:52 -0400 Subject: Add some missing keywords in ToUnicode MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bug: pdfium:667 Change-Id: I8c3d07d2c533e6dd2a98099673b136c587c37a98 Reviewed-on: https://pdfium-review.googlesource.com/5630 Reviewed-by: Lei Zhang Commit-Queue: Nicolás Peña --- fpdfsdk/fpdfedittext.cpp | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/fpdfsdk/fpdfedittext.cpp b/fpdfsdk/fpdfedittext.cpp index c2f2df9778..a14f54515f 100644 --- a/fpdfsdk/fpdfedittext.cpp +++ b/fpdfsdk/fpdfedittext.cpp @@ -89,7 +89,14 @@ const char ToUnicodeStart[] = "/CMapName /Adobe-Identity-H def\n" "CMapType 2 def\n" "1 begincodespacerange\n" - "<0000> \n"; + "<0000> \n" + "endcodespacerange\n"; + +const char ToUnicodeEnd[] = + "endcmap\n" + "CMapName currentdict /CMap defineresource pop\n" + "end\n" + "end\n"; void AddCharcode(CFX_ByteTextBuf* pBuffer, uint32_t number) { ASSERT(number <= 0xFFFF); @@ -115,8 +122,6 @@ void AddUnicode(CFX_ByteTextBuf* pBuffer, uint32_t unicode) { // Loads the charcode to unicode mapping into a stream CPDF_Stream* LoadUnicode(CPDF_Document* pDoc, const std::map& to_unicode) { - CFX_ByteTextBuf buffer; - buffer << ToUnicodeStart; // A map charcode->unicode std::map char_to_uni; // A map to vector v of unicode characters of size (end @@ -179,6 +184,8 @@ CPDF_Stream* LoadUnicode(CPDF_Document* pDoc, } map_range[std::make_pair(firstCharcode, curCharcode)] = firstUnicode; } + CFX_ByteTextBuf buffer; + buffer << ToUnicodeStart; // Add maps to buffer buffer << static_cast(char_to_uni.size()) << " beginbfchar\n"; for (const auto& iter : char_to_uni) { @@ -214,6 +221,8 @@ CPDF_Stream* LoadUnicode(CPDF_Document* pDoc, AddUnicode(&buffer, iter.second); buffer << "\n"; } + buffer << "endbfrange\n"; + buffer << ToUnicodeEnd; // TODO(npm): Encrypt / Compress? uint32_t bufferSize = buffer.GetSize(); auto pDict = pdfium::MakeUnique(); -- cgit v1.2.3