diff options
Diffstat (limited to 'src/pdf')
-rw-r--r-- | src/pdf/SkPDFCatalog.cpp | 8 | ||||
-rw-r--r-- | src/pdf/SkPDFTypes.cpp | 22 |
2 files changed, 28 insertions, 2 deletions
diff --git a/src/pdf/SkPDFCatalog.cpp b/src/pdf/SkPDFCatalog.cpp index dd3cd7eab6..1349da1317 100644 --- a/src/pdf/SkPDFCatalog.cpp +++ b/src/pdf/SkPDFCatalog.cpp @@ -18,6 +18,14 @@ #include "SkPDFTypes.h" #include "SkStream.h" +SkPDFCatalog::SkPDFCatalog() + : fNextObjNum(1), + fStartedAssigningObjNums(false), + fAssigningFirstPageObjNums(false) { +} + +SkPDFCatalog::~SkPDFCatalog() {} + void SkPDFCatalog::addObject(SkPDFObject* obj, bool onFirstPage) { SkASSERT(findObjectIndex(obj) == -1); SkASSERT(!fStartedAssigningObjNums); diff --git a/src/pdf/SkPDFTypes.cpp b/src/pdf/SkPDFTypes.cpp index 83f133eda2..f5f23ca709 100644 --- a/src/pdf/SkPDFTypes.cpp +++ b/src/pdf/SkPDFTypes.cpp @@ -18,6 +18,9 @@ #include "SkPDFTypes.h" #include "SkStream.h" +SkPDFObject::SkPDFObject() {} +SkPDFObject::~SkPDFObject() {} + size_t SkPDFObject::getOutputSize(SkPDFCatalog* catalog, bool indirect) { SkDynamicMemoryWStream buffer; emitObject(&buffer, catalog, indirect); @@ -31,6 +34,9 @@ void SkPDFObject::emitIndirectObject(SkWStream* stream, SkPDFCatalog* catalog) { stream->writeText("\nendobj\n"); } +SkPDFObjRef::SkPDFObjRef(SkPDFObject* obj) : fObj(obj) {} +SkPDFObjRef::~SkPDFObjRef() {} + size_t SkPDFObject::getIndirectOutputSize(SkPDFCatalog* catalog) { return catalog->getObjectNumberSize(this) + strlen(" obj\n") + this->getOutputSize(catalog, false) + strlen("\nendobj\n"); @@ -48,6 +54,9 @@ size_t SkPDFObjRef::getOutputSize(SkPDFCatalog* catalog, bool indirect) { return catalog->getObjectNumberSize(fObj.get()) + strlen(" R"); } +SkPDFInt::SkPDFInt(int32_t value) : fValue(value) {} +SkPDFInt::~SkPDFInt() {} + void SkPDFInt::emitObject(SkWStream* stream, SkPDFCatalog* catalog, bool indirect) { if (indirect) @@ -55,6 +64,9 @@ void SkPDFInt::emitObject(SkWStream* stream, SkPDFCatalog* catalog, stream->writeDecAsText(fValue); } +SkPDFScalar::SkPDFScalar(SkScalar value) : fValue(value) {} +SkPDFScalar::~SkPDFScalar() {} + void SkPDFScalar::emitObject(SkWStream* stream, SkPDFCatalog* catalog, bool indirect) { if (indirect) @@ -70,6 +82,8 @@ SkPDFString::SkPDFString(const SkString& value) : fValue(formatString(value)) { } +SkPDFString::~SkPDFString() {} + void SkPDFString::emitObject(SkWStream* stream, SkPDFCatalog* catalog, bool indirect) { if (indirect) @@ -90,7 +104,7 @@ SkString SkPDFString::formatString(const SkString& input) { // a 7-bit clean string should require little escaping. bool sevenBitClean = true; for (size_t i = 0; i < input.size(); i++) { - if (input[i] > 0x7F || input[i] < ' ') { + if (input[i] & 0x80 || input[i] < ' ') { sevenBitClean = false; break; } @@ -117,6 +131,7 @@ SkString SkPDFString::formatString(const SkString& input) { SkPDFName::SkPDFName(const char name[]) : fValue(formatName(SkString(name))) {} SkPDFName::SkPDFName(const SkString& name) : fValue(formatName(name)) {} +SkPDFName::~SkPDFName() {} void SkPDFName::emitObject(SkWStream* stream, SkPDFCatalog* catalog, bool indirect) { @@ -129,12 +144,13 @@ size_t SkPDFName::getOutputSize(SkPDFCatalog* catalog, bool indirect) { return fValue.size(); } +// static SkString SkPDFName::formatName(const SkString& input) { SkASSERT(input.size() <= kMaxLen); SkString result("/"); for (size_t i = 0; i < input.size(); i++) { - if (input[i] > 0x7F || input[i] < '!' || input[i] == '#') { + if (input[i] & 0x80 || input[i] < '!' || input[i] == '#') { result.append("#"); result.appendHex(input[i], 2); } else { @@ -145,6 +161,7 @@ SkString SkPDFName::formatName(const SkString& input) { return result; } +SkPDFArray::SkPDFArray() {} SkPDFArray::~SkPDFArray() { fValue.safeUnrefAll(); } @@ -193,6 +210,7 @@ void SkPDFArray::append(SkPDFObject* value) { fValue.push(value); } +SkPDFDict::SkPDFDict() {} SkPDFDict::~SkPDFDict() { for (int i = 0; i < fValue.count(); i++) { SkSafeUnref(fValue[i].key); |