#include "src/pdf/SkPDFType1Font.h"
#include "include/core/SkData.h"
#include "include/core/SkRefCnt.h"
#include "include/core/SkScalar.h"
#include "include/core/SkStream.h"
#include "include/core/SkString.h"
#include "include/core/SkTypeface.h"
#include "include/core/SkTypes.h"
#include "include/private/base/SkMacros.h"
#include "include/private/base/SkSpan_impl.h"
#include "include/private/base/SkTemplates.h"
#include "include/private/base/SkTo.h"
#include "src/base/SkBitmaskEnum.h"
#include "src/core/SkAdvancedTypefaceMetrics.h"
#include "src/core/SkGlyph.h"
#include "src/core/SkStrikeSpec.h"
#include "src/core/SkTHash.h"
#include "src/pdf/SkPDFDocumentPriv.h"
#include "src/pdf/SkPDFFont.h"
#include "src/pdf/SkPDFTypes.h"
#include <ctype.h>
#include <cstdint>
#include <cstring>
#include <memory>
#include <utility>
#include <vector>
usingnamespaceskia_private;
static bool parsePFBSection(const uint8_t** src, size_t* len, int sectionType,
size_t* size) { … }
static bool parsePFB(const uint8_t* src, size_t size, size_t* headerLen,
size_t* dataLen, size_t* trailerLen) { … }
static bool parsePFA(const char* src, size_t size, size_t* headerLen,
size_t* hexDataLen, size_t* dataLen, size_t* trailerLen) { … }
static int8_t hexToBin(uint8_t c) { … }
static sk_sp<SkData> convert_type1_font_stream(std::unique_ptr<SkStreamAsset> srcStream,
size_t* headerLen,
size_t* dataLen,
size_t* trailerLen) { … }
inline static bool can_embed(const SkAdvancedTypefaceMetrics& metrics) { … }
inline static SkScalar from_font_units(SkScalar scaled, uint16_t emSize) { … }
static SkPDFIndirectReference make_type1_font_descriptor(SkPDFDocument* doc,
const SkTypeface* typeface,
const SkAdvancedTypefaceMetrics* info) { … }
static const std::vector<SkString>& type_1_glyphnames(SkPDFDocument* canon,
const SkTypeface* typeface) { … }
static SkPDFIndirectReference type1_font_descriptor(SkPDFDocument* doc,
const SkTypeface* typeface) { … }
void SkPDFEmitType1Font(const SkPDFFont& pdfFont, SkPDFDocument* doc) { … }