Chromium Code Reviews| Index: src/pdf/SkPDFDocument.cpp |
| diff --git a/src/pdf/SkPDFDocument.cpp b/src/pdf/SkPDFDocument.cpp |
| index 0633d308285d116ef121e5bd754927639aaf2337..79699a0292f13c8290bb82fdcbd166c2e6e7d985 100644 |
| --- a/src/pdf/SkPDFDocument.cpp |
| +++ b/src/pdf/SkPDFDocument.cpp |
| @@ -258,11 +258,13 @@ bool SkPDFDocument::appendPage(SkPDFDevice* pdfDevice) { |
| return true; |
| } |
| +// Deprecated. |
|
vandebo (ex-Chrome)
2013/12/06 05:52:42
Deprecated just long enough to make the two sided
|
| void SkPDFDocument::getCountOfFontTypes( |
| - int counts[SkAdvancedTypefaceMetrics::kNotEmbeddable_Font + 1]) const { |
| + int counts[SkAdvancedTypefaceMetrics::kOther_Font + 2]) const { |
| sk_bzero(counts, sizeof(int) * |
| - (SkAdvancedTypefaceMetrics::kNotEmbeddable_Font + 1)); |
| + (SkAdvancedTypefaceMetrics::kOther_Font + 2)); |
| SkTDArray<SkFontID> seenFonts; |
| + int notEmbeddable = 0; |
| for (int pageNumber = 0; pageNumber < fPages.count(); pageNumber++) { |
| const SkTDArray<SkPDFFont*>& fontResources = |
| @@ -272,9 +274,49 @@ void SkPDFDocument::getCountOfFontTypes( |
| if (seenFonts.find(fontID) == -1) { |
| counts[fontResources[font]->getType()]++; |
| seenFonts.push(fontID); |
| + if (!fontResources[font]->canEmbed()) { |
| + notEmbeddable++; |
| + } |
| } |
| } |
| } |
| + counts[SkAdvancedTypefaceMetrics::kOther_Font + 1] = notEmbeddable; |
| +} |
| + |
| +void SkPDFDocument::getCountOfFontTypes( |
| + int counts[SkAdvancedTypefaceMetrics::kOther_Font + 1], |
| + int* notSubsettableCount, |
| + int* notEmbeddableCount) const { |
| + sk_bzero(counts, sizeof(int) * |
| + (SkAdvancedTypefaceMetrics::kOther_Font + 1)); |
| + SkTDArray<SkFontID> seenFonts; |
| + int notSubsettable = 0; |
| + int notEmbeddable = 0; |
| + |
| + for (int pageNumber = 0; pageNumber < fPages.count(); pageNumber++) { |
| + const SkTDArray<SkPDFFont*>& fontResources = |
| + fPages[pageNumber]->getFontResources(); |
| + for (int font = 0; font < fontResources.count(); font++) { |
| + SkFontID fontID = fontResources[font]->typeface()->uniqueID(); |
| + if (seenFonts.find(fontID) == -1) { |
| + counts[fontResources[font]->getType()]++; |
| + seenFonts.push(fontID); |
| + if (!fontResources[font]->canSubset()) { |
| + notSubsettable++; |
| + } |
| + if (!fontResources[font]->canEmbed()) { |
| + notEmbeddable++; |
| + } |
| + } |
| + } |
| + } |
| + if (notSubsettableCount) { |
| + *notSubsettableCount = notSubsettable; |
| + |
| + } |
| + if (notEmbeddableCount) { |
| + *notEmbeddableCount = notEmbeddable; |
| + } |
| } |
| void SkPDFDocument::emitHeader(SkWStream* stream) { |