From 79eab23d8f83aec7088c59f8bcee65994c6662a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=A1s=20Pe=C3=B1a?= Date: Thu, 28 Sep 2017 13:29:05 +0900 Subject: Add Length1 in TrueType font streams MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bug: pdfium:892 Change-Id: Ica0377515589a96a8919cb8ed2a3da1d1c9f6191 Reviewed-on: https://pdfium-review.googlesource.com/15030 Reviewed-by: dsinclair Commit-Queue: Nicolás Peña Moreno --- fpdfsdk/fpdfedit_embeddertest.cpp | 4 ++++ fpdfsdk/fpdfedittext.cpp | 5 +++++ 2 files changed, 9 insertions(+) diff --git a/fpdfsdk/fpdfedit_embeddertest.cpp b/fpdfsdk/fpdfedit_embeddertest.cpp index 9f43054b4c..1fb0cde7f9 100644 --- a/fpdfsdk/fpdfedit_embeddertest.cpp +++ b/fpdfsdk/fpdfedit_embeddertest.cpp @@ -82,6 +82,10 @@ class FPDFEditEmbeddertest : public EmbedderTest { // Check that the font stream is the one that was provided CPDF_Stream* font_stream = font_desc->GetStreamFor(present); ASSERT_EQ(size, font_stream->GetRawSize()); + if (font_type == FPDF_FONT_TRUETYPE) { + ASSERT_EQ(static_cast(size), + font_stream->GetDict()->GetIntegerFor("Length1")); + } uint8_t* stream_data = font_stream->GetRawData(); for (size_t j = 0; j < size; j++) EXPECT_EQ(data[j], stream_data[j]) << " at byte " << j; diff --git a/fpdfsdk/fpdfedittext.cpp b/fpdfsdk/fpdfedittext.cpp index bac1108243..22c6266ec1 100644 --- a/fpdfsdk/fpdfedittext.cpp +++ b/fpdfsdk/fpdfedittext.cpp @@ -71,6 +71,11 @@ CPDF_Dictionary* LoadFontDesc(CPDF_Document* pDoc, CPDF_Stream* pStream = pDoc->NewIndirect(); pStream->SetData(data, size); + // TODO(npm): Lengths for Type1 fonts. + if (font_type == FPDF_FONT_TRUETYPE) { + pStream->GetDict()->SetNewFor("Length1", + static_cast(size)); + } ByteString fontFile = font_type == FPDF_FONT_TYPE1 ? "FontFile" : "FontFile2"; fontDesc->SetNewFor(fontFile, pDoc, pStream->GetObjNum()); return fontDesc; -- cgit v1.2.3