7#ifndef SkPDFDocumentPriv_DEFINED
8#define SkPDFDocumentPriv_DEFINED
60 std::vector<int> fOffsets;
61 size_t fBaseOffset = SIZE_MAX;
116 template <
typename T>
121 stream->writeText(
" stream\n");
123 stream->writeText(
"\nendstream");
191 std::vector<std::unique_ptr<SkPDFDict>> fPages;
192 std::vector<SkPDFIndirectReference> fPageRefs;
195 std::atomic<int> fNextObjectNumber = {1};
196 std::atomic<int> fJobCount = {0};
197 uint32_t fNextFontSubsetTag = {0};
const char * SkPDFGetNodeIdKey()
sk_sp< T > sk_ref_sp(T *obj)
void emitObject(SkWStream *stream) const override
SkPDFIndirectReference emit(const SkPDFObject &o)
SkPDFIndirectReference currentPage() const
SkExecutor * executor() const
void onClose(SkWStream *) override
skia_private::THashMap< SkBitmapKey, SkPDFIndirectReference > fPDFBitmapMap
skia_private::THashMap< SkPDFStrokeGraphicState, SkPDFIndirectReference, SkPDFStrokeGraphicState::Hash > fStrokeGSMap
SkPDFIndirectReference emit(const SkPDFObject &, SkPDFIndirectReference)
size_t currentPageIndex()
skia_private::THashMap< SkPDFFillGraphicState, SkPDFIndirectReference, SkPDFFillGraphicState::Hash > fFillGSMap
void addNodeTitle(int nodeId, SkSpan< const char >)
skia_private::THashMap< uint32_t, SkPDFIndirectReference > fFontDescriptors
SkPDFIndirectReference fInvertFunction
const SkPDF::Metadata & metadata() const
const SkMatrix & currentPageTransform() const
std::vector< SkPDFNamedDestination > fNamedDestinations
skia_private::THashMap< SkPDFImageShaderKey, SkPDFIndirectReference, SkPDFImageShaderKey::Hash > fImageShaderMap
SkPDFTagTree::Mark createMarkIdForNodeId(int nodeId, SkPoint)
skia_private::THashMap< uint64_t, SkPDFFont > fFontMap
std::unique_ptr< SkPDFArray > getAnnotations()
std::vector< std::unique_ptr< SkPDFLink > > fCurrentPageLinks
skia_private::THashMap< SkPDFIccProfileKey, SkPDFIndirectReference, SkPDFIccProfileKey::Hash > fICCProfileMap
skia_private::THashMap< SkPDFGradientShader::Key, SkPDFIndirectReference, SkPDFGradientShader::KeyHash > fGradientPatternMap
skia_private::THashMap< uint32_t, std::vector< SkString > > fType1GlyphNames
int createStructParentKeyForNodeId(int nodeId)
void emitStream(const SkPDFDict &dict, T writeStream, SkPDFIndirectReference ref)
SkCanvas * onBeginPage(SkScalar, SkScalar) override
SkPDFDocument(SkWStream *, SkPDF::Metadata)
skia_private::THashMap< uint32_t, std::vector< SkUnichar > > fToUnicodeMap
SkPDFIndirectReference fNoSmaskGraphicState
SkString nextFontSubsetTag()
~SkPDFDocument() override
skia_private::THashMap< uint32_t, SkPDFIndirectReference > fType3FontDescriptors
void onEndPage() override
SkPDFIndirectReference reserveRef()
SkPDFIndirectReference getPage(size_t pageIndex) const
skia_private::THashMap< uint32_t, std::unique_ptr< SkAdvancedTypefaceMetrics > > fTypefaceMetrics
bool hasCurrentPage() const
void markStartOfObject(int referenceNumber, const SkWStream *)
void markStartOfDocument(const SkWStream *)
int emitCrossReferenceTable(SkWStream *s) const
sk_sp< SkBlender > blender SkRect rect
SkPDFLink(Type type, SkData *data, const SkRect &rect, int nodeId)
const sk_sp< SkData > fData
SkPDFIndirectReference fPage
std::shared_ptr< const fml::Mapping > data