Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
Public Member Functions | List of all members
SkPDFDict Class Referencefinal

#include <SkPDFTypes.h>

Inheritance diagram for SkPDFDict:
SkPDFObject

Public Member Functions

 SkPDFDict (const char type[]=nullptr)
 
 ~SkPDFDict () override
 
void emitObject (SkWStream *stream) const override
 
size_t size () const
 
void reserve (int n)
 
void insertObject (const char key[], std::unique_ptr< SkPDFObject > &&)
 
void insertObject (SkString, std::unique_ptr< SkPDFObject > &&)
 
void insertRef (const char key[], SkPDFIndirectReference)
 
void insertRef (SkString, SkPDFIndirectReference)
 
void insertBool (const char key[], bool value)
 
void insertInt (const char key[], int32_t value)
 
void insertInt (const char key[], size_t value)
 
void insertScalar (const char key[], SkScalar value)
 
void insertColorComponentF (const char key[], SkScalar value)
 
void insertName (const char key[], const char nameValue[])
 
void insertName (const char key[], SkString nameValue)
 
void insertByteString (const char key[], const char value[])
 
void insertTextString (const char key[], const char value[])
 
void insertByteString (const char key[], SkString value)
 
void insertTextString (const char key[], SkString value)
 
void insertUnion (const char key[], SkPDFUnion &&)
 
- Public Member Functions inherited from SkPDFObject
 SkPDFObject ()=default
 
virtual ~SkPDFObject ()=default
 

Detailed Description

A dictionary object in a PDF.

Definition at line 146 of file SkPDFTypes.h.

Constructor & Destructor Documentation

◆ SkPDFDict()

SkPDFDict::SkPDFDict ( const char  type[] = nullptr)
explicit

Create a PDF dictionary.

Parameters
typeThe value of the Type entry, nullptr for no type.

Definition at line 444 of file SkPDFTypes.cpp.

444 {
445 if (type) {
446 this->insertName("Type", type);
447 }
448}
void insertName(const char key[], const char nameValue[])

◆ ~SkPDFDict()

SkPDFDict::~SkPDFDict ( )
override

Definition at line 442 of file SkPDFTypes.cpp.

442{}

Member Function Documentation

◆ emitObject()

void SkPDFDict::emitObject ( SkWStream stream) const
overridevirtual

Subclasses must implement this method to print the object to the PDF file.

Parameters
catalogThe object catalog to use.
streamThe writable output stream to send the output to.

Implements SkPDFObject.

Definition at line 450 of file SkPDFTypes.cpp.

450 {
451 stream->writeText("<<");
452 for (size_t i = 0; i < fRecords.size(); ++i) {
453 const std::pair<SkPDFUnion, SkPDFUnion>& record = fRecords[i];
454 record.first.emitObject(stream);
455 stream->writeText(" ");
456 record.second.emitObject(stream);
457 if (i + 1 < fRecords.size()) {
458 stream->writeText("\n");
459 }
460 }
461 stream->writeText(">>");
462}

◆ insertBool()

void SkPDFDict::insertBool ( const char  key[],
bool  value 
)

Add the value to the dictionary with the given key.

Parameters
keyThe text of the key for this dictionary entry.
valueThe value for this dictionary entry.

Definition at line 486 of file SkPDFTypes.cpp.

486 {
487 fRecords.emplace_back(SkPDFUnion::Name(key), SkPDFUnion::Bool(value));
488}
static SkPDFUnion Bool(bool)
static SkPDFUnion Name(const char *)

◆ insertByteString() [1/2]

void SkPDFDict::insertByteString ( const char  key[],
const char  value[] 
)

Definition at line 514 of file SkPDFTypes.cpp.

514 {
515 fRecords.emplace_back(SkPDFUnion::Name(key), SkPDFUnion::ByteString(value));
516}
static SkPDFUnion ByteString(const char *)

◆ insertByteString() [2/2]

void SkPDFDict::insertByteString ( const char  key[],
SkString  value 
)

Definition at line 522 of file SkPDFTypes.cpp.

522 {
523 fRecords.emplace_back(SkPDFUnion::Name(key), SkPDFUnion::ByteString(std::move(value)));
524}

◆ insertColorComponentF()

void SkPDFDict::insertColorComponentF ( const char  key[],
SkScalar  value 
)

Definition at line 498 of file SkPDFTypes.cpp.

498 {
499 fRecords.emplace_back(SkPDFUnion::Name(key), SkPDFUnion::ColorComponentF(value));
500}
static SkPDFUnion ColorComponentF(float)

◆ insertInt() [1/2]

void SkPDFDict::insertInt ( const char  key[],
int32_t  value 
)

Definition at line 490 of file SkPDFTypes.cpp.

490 {
491 fRecords.emplace_back(SkPDFUnion::Name(key), SkPDFUnion::Int(value));
492}
static SkPDFUnion Int(int32_t)

◆ insertInt() [2/2]

void SkPDFDict::insertInt ( const char  key[],
size_t  value 
)

Definition at line 494 of file SkPDFTypes.cpp.

494 {
495 this->insertInt(key, SkToS32(value));
496}
constexpr int32_t SkToS32(S x)
Definition SkTo.h:25
void insertInt(const char key[], int32_t value)

◆ insertName() [1/2]

void SkPDFDict::insertName ( const char  key[],
const char  nameValue[] 
)

Definition at line 506 of file SkPDFTypes.cpp.

506 {
507 fRecords.emplace_back(SkPDFUnion::Name(key), SkPDFUnion::Name(name));
508}
const char * name
Definition fuchsia.cc:50

◆ insertName() [2/2]

void SkPDFDict::insertName ( const char  key[],
SkString  nameValue 
)

Definition at line 510 of file SkPDFTypes.cpp.

510 {
511 fRecords.emplace_back(SkPDFUnion::Name(key), SkPDFUnion::Name(std::move(name)));
512}

◆ insertObject() [1/2]

void SkPDFDict::insertObject ( const char  key[],
std::unique_ptr< SkPDFObject > &&  objSp 
)

Add the value to the dictionary with the given key.

Parameters
keyThe text of the key for this dictionary entry.
valueThe value for this dictionary entry.

Definition at line 478 of file SkPDFTypes.cpp.

478 {
479 fRecords.emplace_back(SkPDFUnion::Name(key), SkPDFUnion::Object(std::move(objSp)));
480}
static SkPDFUnion Object(std::unique_ptr< SkPDFObject >)

◆ insertObject() [2/2]

void SkPDFDict::insertObject ( SkString  key,
std::unique_ptr< SkPDFObject > &&  objSp 
)

Definition at line 481 of file SkPDFTypes.cpp.

481 {
482 fRecords.emplace_back(SkPDFUnion::Name(std::move(key)),
483 SkPDFUnion::Object(std::move(objSp)));
484}

◆ insertRef() [1/2]

void SkPDFDict::insertRef ( const char  key[],
SkPDFIndirectReference  ref 
)

Definition at line 470 of file SkPDFTypes.cpp.

470 {
471 fRecords.emplace_back(SkPDFUnion::Name(key), SkPDFUnion::Ref(ref));
472}
static SkPDFUnion Ref(SkPDFIndirectReference)

◆ insertRef() [2/2]

void SkPDFDict::insertRef ( SkString  key,
SkPDFIndirectReference  ref 
)

Definition at line 474 of file SkPDFTypes.cpp.

474 {
475 fRecords.emplace_back(SkPDFUnion::Name(std::move(key)), SkPDFUnion::Ref(ref));
476}

◆ insertScalar()

void SkPDFDict::insertScalar ( const char  key[],
SkScalar  value 
)

Definition at line 502 of file SkPDFTypes.cpp.

502 {
503 fRecords.emplace_back(SkPDFUnion::Name(key), SkPDFUnion::Scalar(value));
504}
static SkPDFUnion Scalar(SkScalar)

◆ insertTextString() [1/2]

void SkPDFDict::insertTextString ( const char  key[],
const char  value[] 
)

Definition at line 518 of file SkPDFTypes.cpp.

518 {
519 fRecords.emplace_back(SkPDFUnion::Name(key), SkPDFUnion::TextString(value));
520}
static SkPDFUnion TextString(const char *)

◆ insertTextString() [2/2]

void SkPDFDict::insertTextString ( const char  key[],
SkString  value 
)

Definition at line 526 of file SkPDFTypes.cpp.

526 {
527 fRecords.emplace_back(SkPDFUnion::Name(key), SkPDFUnion::TextString(std::move(value)));
528}

◆ insertUnion()

void SkPDFDict::insertUnion ( const char  key[],
SkPDFUnion &&  value 
)

Definition at line 530 of file SkPDFTypes.cpp.

530 {
531 fRecords.emplace_back(SkPDFUnion::Name(key), std::move(value));
532}

◆ reserve()

void SkPDFDict::reserve ( int  n)

Preallocate space for n key-value pairs

Definition at line 466 of file SkPDFTypes.cpp.

466 {
467 fRecords.reserve(n);
468}

◆ size()

size_t SkPDFDict::size ( ) const

The size of the dictionary.

Definition at line 464 of file SkPDFTypes.cpp.

464{ return fRecords.size(); }

The documentation for this class was generated from the following files: