Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3740)

Unified Diff: experimental/PdfViewer/pdfparser/podofo/SkPodofoUtils.cpp

Issue 18518005: RIP podofo (Closed) Base URL: http://skia.googlecode.com/svn/trunk/
Patch Set: Created 7 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « experimental/PdfViewer/pdfparser/podofo/SkPodofoUtils.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: experimental/PdfViewer/pdfparser/podofo/SkPodofoUtils.cpp
===================================================================
--- experimental/PdfViewer/pdfparser/podofo/SkPodofoUtils.cpp (revision 9961)
+++ experimental/PdfViewer/pdfparser/podofo/SkPodofoUtils.cpp (working copy)
@@ -1,414 +0,0 @@
-
-#include "SkPodofoUtils.h"
-#include "SkMatrix.h"
-#include "SkPdfHeaders_autogen.h"
-#include "SkPdfMapper_autogen.h"
-
-#include "podofo.h"
-
-const PoDoFo::PdfObject* resolveReferenceObject(const SkPodofoParsedPDF* pdfDoc,
- const PoDoFo::PdfObject* obj,
- bool resolveOneElementArrays) {
- while (obj && (obj->IsReference() || (resolveOneElementArrays &&
- obj->IsArray() &&
- obj->GetArray().GetSize() == 1))) {
- if (obj->IsReference()) {
- // We need to force the non const, the only update we will do is for recurssion checks.
- PoDoFo::PdfReference& ref = (PoDoFo::PdfReference&)obj->GetReference();
- obj = pdfDoc->podofo()->GetObjects().GetObject(ref);
- } else {
- obj = &obj->GetArray()[0];
- }
- }
-
- return obj;
-}
-
-// TODO(edisonn): deal with synonyms (/BPC == /BitsPerComponent), here or in GetKey?
-// Always pass long form in key, and have a map of long -> short key
-bool LongFromDictionary(const SkPodofoParsedPDF* pdfDoc,
- const PoDoFo::PdfDictionary& dict,
- const char* key,
- long* data) {
- const PoDoFo::PdfObject* value = resolveReferenceObject(pdfDoc,
- dict.GetKey(PoDoFo::PdfName(key)));
-
- if (value == NULL || !value->IsNumber()) {
- return false;
- }
- if (data == NULL) {
- return true;
- }
-
- *data = value->GetNumber();
- return true;
-}
-
-bool LongFromDictionary(const SkPodofoParsedPDF* pdfDoc,
- const PoDoFo::PdfDictionary& dict,
- const char* key,
- const char* abr,
- long* data) {
- if (LongFromDictionary(pdfDoc, dict, key, data)) return true;
- if (abr == NULL || *abr == '\0') return false;
- return LongFromDictionary(pdfDoc, dict, abr, data);
-}
-
-bool DoubleFromDictionary(const SkPodofoParsedPDF* pdfDoc,
- const PoDoFo::PdfDictionary& dict,
- const char* key,
- double* data) {
- const PoDoFo::PdfObject* value = resolveReferenceObject(pdfDoc,
- dict.GetKey(PoDoFo::PdfName(key)));
-
- if (value == NULL || (!value->IsReal() && !value->IsNumber())) {
- return false;
- }
- if (data == NULL) {
- return true;
- }
-
- *data = value->GetReal();
- return true;
-}
-
-bool DoubleFromDictionary(const SkPodofoParsedPDF* pdfDoc,
- const PoDoFo::PdfDictionary& dict,
- const char* key,
- const char* abr,
- double* data) {
- if (DoubleFromDictionary(pdfDoc, dict, key, data)) return true;
- if (abr == NULL || *abr == '\0') return false;
- return DoubleFromDictionary(pdfDoc, dict, abr, data);
-}
-
-
-bool BoolFromDictionary(const SkPodofoParsedPDF* pdfDoc,
- const PoDoFo::PdfDictionary& dict,
- const char* key,
- bool* data) {
- const PoDoFo::PdfObject* value = resolveReferenceObject(pdfDoc,
- dict.GetKey(PoDoFo::PdfName(key)));
-
- if (value == NULL || !value->IsBool()) {
- return false;
- }
- if (data == NULL) {
- return true;
- }
-
- *data = value->GetBool();
- return true;
-}
-
-bool BoolFromDictionary(const SkPodofoParsedPDF* pdfDoc,
- const PoDoFo::PdfDictionary& dict,
- const char* key,
- const char* abr,
- bool* data) {
- if (BoolFromDictionary(pdfDoc, dict, key, data)) return true;
- if (abr == NULL || *abr == '\0') return false;
- return BoolFromDictionary(pdfDoc, dict, abr, data);
-}
-
-bool NameFromDictionary(const SkPodofoParsedPDF* pdfDoc,
- const PoDoFo::PdfDictionary& dict,
- const char* key,
- std::string* data) {
- const PoDoFo::PdfObject* value = resolveReferenceObject(pdfDoc,
- dict.GetKey(PoDoFo::PdfName(key)),
- true);
- if (value == NULL || !value->IsName()) {
- return false;
- }
- if (data == NULL) {
- return true;
- }
-
- *data = value->GetName().GetName();
- return true;
-}
-
-bool NameFromDictionary(const SkPodofoParsedPDF* pdfDoc,
- const PoDoFo::PdfDictionary& dict,
- const char* key,
- const char* abr,
- std::string* data) {
- if (NameFromDictionary(pdfDoc, dict, key, data)) return true;
- if (abr == NULL || *abr == '\0') return false;
- return NameFromDictionary(pdfDoc, dict, abr, data);
-}
-
-bool StringFromDictionary(const SkPodofoParsedPDF* pdfDoc,
- const PoDoFo::PdfDictionary& dict,
- const char* key,
- std::string* data) {
- const PoDoFo::PdfObject* value = resolveReferenceObject(pdfDoc,
- dict.GetKey(PoDoFo::PdfName(key)),
- true);
- if (value == NULL || (!value->IsString() && !value->IsHexString())) {
- return false;
- }
- if (data == NULL) {
- return true;
- }
-
- *data = value->GetString().GetString();
- return true;
-}
-
-bool StringFromDictionary(const SkPodofoParsedPDF* pdfDoc,
- const PoDoFo::PdfDictionary& dict,
- const char* key,
- const char* abr,
- std::string* data) {
- if (StringFromDictionary(pdfDoc, dict, key, data)) return true;
- if (abr == NULL || *abr == '\0') return false;
- return StringFromDictionary(pdfDoc, dict, abr, data);
-}
-
-
-bool SkMatrixFromDictionary(const SkPodofoParsedPDF* pdfDoc,
- const PoDoFo::PdfDictionary& dict,
- const char* key,
- SkMatrix** matrix) {
- const PoDoFo::PdfObject* value = resolveReferenceObject(pdfDoc,
- dict.GetKey(PoDoFo::PdfName(key)));
-
- if (value == NULL || !value->IsArray()) {
- return false;
- }
-
- if (value->GetArray().GetSize() != 6) {
- return false;
- }
-
- double array[6];
- for (int i = 0; i < 6; i++) {
- const PoDoFo::PdfObject* elem = resolveReferenceObject(pdfDoc, &value->GetArray()[i]);
- if (elem == NULL || (!elem->IsReal() && !elem->IsNumber())) {
- return false;
- }
- array[i] = elem->GetReal();
- }
-
- *matrix = new SkMatrix();
- **matrix = SkMatrixFromPdfMatrix(array);
- return true;
-}
-
-bool SkMatrixFromDictionary(const SkPodofoParsedPDF* pdfDoc,
- const PoDoFo::PdfDictionary& dict,
- const char* key,
- const char* abr,
- SkMatrix** data) {
- if (SkMatrixFromDictionary(pdfDoc, dict, key, data)) return true;
- if (abr == NULL || *abr == '\0') return false;
- return SkMatrixFromDictionary(pdfDoc, dict, abr, data);
-
-}
-
-bool SkRectFromDictionary(const SkPodofoParsedPDF* pdfDoc,
- const PoDoFo::PdfDictionary& dict,
- const char* key,
- SkRect** rect) {
- const PoDoFo::PdfObject* value = resolveReferenceObject(pdfDoc,
- dict.GetKey(PoDoFo::PdfName(key)));
-
- if (value == NULL || !value->IsArray()) {
- return false;
- }
-
- if (value->GetArray().GetSize() != 4) {
- return false;
- }
-
- double array[4];
- for (int i = 0; i < 4; i++) {
- const PoDoFo::PdfObject* elem = resolveReferenceObject(pdfDoc, &value->GetArray()[i]);
- if (elem == NULL || (!elem->IsReal() && !elem->IsNumber())) {
- return false;
- }
- array[i] = elem->GetReal();
- }
-
- *rect = new SkRect();
- **rect = SkRect::MakeLTRB(SkDoubleToScalar(array[0]),
- SkDoubleToScalar(array[1]),
- SkDoubleToScalar(array[2]),
- SkDoubleToScalar(array[3]));
- return true;
-}
-
-bool SkRectFromDictionary(const SkPodofoParsedPDF* pdfDoc,
- const PoDoFo::PdfDictionary& dict,
- const char* key,
- const char* abr,
- SkRect** data) {
- if (SkRectFromDictionary(pdfDoc, dict, key, data)) return true;
- if (abr == NULL || *abr == '\0') return false;
- return SkRectFromDictionary(pdfDoc, dict, abr, data);
-
-}
-
-
-SkPdfObject* get(const SkPdfObject* obj, const char* key, const char* abr = "") {
- PoDoFo::PdfObject* podofoObj = NULL;
- if (obj == NULL) return NULL;
- const SkPdfDictionary* dict = obj->asDictionary();
- if (dict == NULL) return NULL;
- if (!dict->podofo()->IsDictionary()) return NULL;
- ObjectFromDictionary(dict->doc(), dict->podofo()->GetDictionary(), key, abr, &podofoObj);
- SkPdfObject* ret = NULL;
- obj->doc()->mapper()->mapObject(podofoObj, &ret);
- return ret;
-}
-
-bool ArrayFromDictionary(const SkPodofoParsedPDF* pdfDoc,
- const PoDoFo::PdfDictionary& dict,
- const char* key,
- const char* abr,
- SkPdfArray* data) {return false;}
-
-bool FileSpecFromDictionary(const SkPodofoParsedPDF* pdfDoc,
- const PoDoFo::PdfDictionary& dict,
- const char* key,
- const char* abr,
- SkPdfFileSpec* data) {return false;}
-
-bool StreamFromDictionary(const SkPodofoParsedPDF* pdfDoc,
- const PoDoFo::PdfDictionary& dict,
- const char* key,
- const char* abr,
- SkPdfStream** data);
-
-bool TreeFromDictionary(const SkPodofoParsedPDF* pdfDoc,
- const PoDoFo::PdfDictionary& dict,
- const char* key,
- const char* abr,
- SkPdfTree** data) {return false;}
-
-bool DateFromDictionary(const SkPodofoParsedPDF* pdfDoc,
- const PoDoFo::PdfDictionary& dict,
- const char* key,
- const char* abr,
- SkPdfDate* data) {return false;}
-
-bool FunctionFromDictionary(const SkPodofoParsedPDF* pdfDoc,
- const PoDoFo::PdfDictionary& dict,
- const char* key,
- const char* abr,
- SkPdfFunction* data) {return false;}
-
-
-
-
-bool ArrayFromDictionary(const SkPodofoParsedPDF* pdfDoc,
- const PoDoFo::PdfDictionary& dict,
- const char* key,
- SkPdfArray** data) {
- const PoDoFo::PdfObject* value = resolveReferenceObject(pdfDoc,
- dict.GetKey(PoDoFo::PdfName(key)),
- true);
- if (value == NULL || !value->IsArray()) {
- return false;
- }
- if (data == NULL) {
- return true;
- }
-
- return pdfDoc->mapper()->mapArray(value, data);
-}
-
-
-bool ArrayFromDictionary(const SkPodofoParsedPDF* pdfDoc,
- const PoDoFo::PdfDictionary& dict,
- const char* key,
- const char* abr,
- SkPdfArray** data) {
- if (ArrayFromDictionary(pdfDoc, dict, key, data)) return true;
- if (abr == NULL || *abr == '\0') return false;
- return ArrayFromDictionary(pdfDoc, dict, abr, data);
-}
-
-/*
-bool DictionaryFromDictionary(const SkPodofoParsedPDF* pdfDoc,
- const PoDoFo::PdfDictionary& dict,
- const char* key,
- SkPoDoFo::PdfDictionary** data) {
- const PoDoFo::PdfObject* value = resolveReferenceObject(pdfDoc,
- dict.GetKey(PoDoFo::PdfName(key)),
- true);
- if (value == NULL || !value->IsDictionary()) {
- return false;
- }
- if (data == NULL) {
- return true;
- }
-
- return pdfDoc->mapper()->mapDictionary(value, data);
-}
-
-bool DictionaryFromDictionary(const SkPodofoParsedPDF* pdfDoc,
- const PoDoFo::PdfDictionary& dict,
- const char* key,
- const char* abr,
- SkPoDoFo::PdfDictionary** data) {
- if (DictionaryFromDictionary(pdfDoc, dict, key, data)) return true;
- if (abr == NULL || *abr == '\0') return false;
- return DictionaryFromDictionary(pdfDoc, dict, abr, data);
-}
-*/
-
-bool ObjectFromDictionary(const SkPodofoParsedPDF* pdfDoc,
- const PoDoFo::PdfDictionary& dict,
- const char* key,
- PoDoFo::PdfObject** data) {
- const PoDoFo::PdfObject* value = resolveReferenceObject(pdfDoc,
- dict.GetKey(PoDoFo::PdfName(key)),
- true);
- if (value == NULL) {
- return false;
- }
- if (data == NULL) {
- return true;
- }
- *data = (PoDoFo::PdfObject*)value;
- return true;
-}
-
-bool ObjectFromDictionary(const SkPodofoParsedPDF* pdfDoc,
- const PoDoFo::PdfDictionary& dict,
- const char* key,
- const char* abr,
- PoDoFo::PdfObject** data) {
- if (ObjectFromDictionary(pdfDoc, dict, key, data)) return true;
- if (abr == NULL || *abr == '\0') return false;
- return ObjectFromDictionary(pdfDoc, dict, abr, data);
-}
-
-bool StreamFromDictionary(const SkPodofoParsedPDF* pdfDoc,
- const PoDoFo::PdfDictionary& dict,
- const char* key,
- SkPdfStream** data) {
- const PoDoFo::PdfObject* value = resolveReferenceObject(pdfDoc,
- dict.GetKey(PoDoFo::PdfName(key)),
- true);
- if (value == NULL) {
- return false;
- }
- if (data == NULL) {
- return true;
- }
- return pdfDoc->mapper()->mapStream(value, data);
-}
-
-bool StreamFromDictionary(const SkPodofoParsedPDF* pdfDoc,
- const PoDoFo::PdfDictionary& dict,
- const char* key,
- const char* abr,
- SkPdfStream** data) {
- if (StreamFromDictionary(pdfDoc, dict, key, data)) return true;
- if (abr == NULL || *abr == '\0') return false;
- return StreamFromDictionary(pdfDoc, dict, abr, data);
-}
« no previous file with comments | « experimental/PdfViewer/pdfparser/podofo/SkPodofoUtils.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698