| OLD | NEW |
| 1 #ifndef __DEFINED__SkPdfCatalogDictionary | 1 #ifndef __DEFINED__SkPdfCatalogDictionary |
| 2 #define __DEFINED__SkPdfCatalogDictionary | 2 #define __DEFINED__SkPdfCatalogDictionary |
| 3 | 3 |
| 4 #include "SkPdfEnums_autogen.h" | 4 #include "SkPdfEnums_autogen.h" |
| 5 #include "SkPdfArray_autogen.h" | 5 #include "SkPdfArray_autogen.h" |
| 6 #include "SkPdfDictionary_autogen.h" | 6 #include "SkPdfDictionary_autogen.h" |
| 7 | 7 |
| 8 // Entries in the catalog dictionary |
| 8 class SkPdfCatalogDictionary : public SkPdfDictionary { | 9 class SkPdfCatalogDictionary : public SkPdfDictionary { |
| 9 public: | 10 public: |
| 10 virtual SkPdfObjectType getType() const { return kCatalogDictionary_SkPdfObjec
tType;} | 11 virtual SkPdfObjectType getType() const { return kCatalogDictionary_SkPdfObjec
tType;} |
| 11 virtual SkPdfObjectType getTypeEnd() const { return (SkPdfObjectType)(kCatalog
Dictionary_SkPdfObjectType + 1);} | 12 virtual SkPdfObjectType getTypeEnd() const { return (SkPdfObjectType)(kCatalog
Dictionary_SkPdfObjectType + 1);} |
| 12 public: | 13 public: |
| 13 virtual SkPdfCatalogDictionary* asCatalogDictionary() {return this;} | 14 virtual SkPdfCatalogDictionary* asCatalogDictionary() {return this;} |
| 14 virtual const SkPdfCatalogDictionary* asCatalogDictionary() const {return this
;} | 15 virtual const SkPdfCatalogDictionary* asCatalogDictionary() const {return this
;} |
| 15 | 16 |
| 16 private: | 17 private: |
| 17 virtual SkPdfALinkAnnotationDictionary* asALinkAnnotationDictionary() {return
NULL;} | 18 virtual SkPdfALinkAnnotationDictionary* asALinkAnnotationDictionary() {return
NULL;} |
| (...skipping 496 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 514 | 515 |
| 515 public: | 516 public: |
| 516 private: | 517 private: |
| 517 public: | 518 public: |
| 518 SkPdfCatalogDictionary(const PdfMemDocument* podofoDoc = NULL, const PdfObject
* podofoObj = NULL) : SkPdfDictionary(podofoDoc, podofoObj) {} | 519 SkPdfCatalogDictionary(const PdfMemDocument* podofoDoc = NULL, const PdfObject
* podofoObj = NULL) : SkPdfDictionary(podofoDoc, podofoObj) {} |
| 519 | 520 |
| 520 virtual bool valid() const {return true;} | 521 virtual bool valid() const {return true;} |
| 521 | 522 |
| 522 SkPdfCatalogDictionary& operator=(const SkPdfCatalogDictionary& from) {this->f
PodofoDoc = from.fPodofoDoc; this->fPodofoObj = from.fPodofoObj; return *this;} | 523 SkPdfCatalogDictionary& operator=(const SkPdfCatalogDictionary& from) {this->f
PodofoDoc = from.fPodofoDoc; this->fPodofoObj = from.fPodofoObj; return *this;} |
| 523 | 524 |
| 525 /** (Required) The type of PDF object that this dictionary describes; must |
| 526 * be Catalog for the catalog dictionary. |
| 527 **/ |
| 528 bool has_Type() const { |
| 529 return (ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "Type"
, "", NULL)); |
| 530 } |
| 531 |
| 524 std::string Type() const { | 532 std::string Type() const { |
| 525 std::string ret; | 533 std::string ret; |
| 526 if (NameFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "Type", "",
&ret)) return ret; | 534 if (NameFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "Type", "",
&ret)) return ret; |
| 527 // TODO(edisonn): warn about missing required field, assert for known good p
dfs | 535 // TODO(edisonn): warn about missing required field, assert for known good p
dfs |
| 528 return ""; | 536 return ""; |
| 529 } | 537 } |
| 530 | 538 |
| 539 /** (Optional; PDF 1.4) The version of the PDF specification to which the |
| 540 * document conforms (for example, 1.4), if later than the version specified |
| 541 * in the file's header (see Section 3.4.1, "File Header"). If the header speci
- |
| 542 * fies a later version, or if this entry is absent, the document conforms to |
| 543 * the version specified in the header. This entry enables a PDF producer |
| 544 * application to update the version using an incremental update; see Sec- |
| 545 * tion 3.4.5, "Incremental Updates." (See implementation note 18 in Ap- |
| 546 * pendix H.) |
| 547 * Note: The value of this entry is a name object, not a number, and so must |
| 548 * be preceded by a slash character (/) when written in the PDF file (for ex- |
| 549 * ample, /1.4). |
| 550 **/ |
| 551 bool has_Version() const { |
| 552 return (ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "Versi
on", "", NULL)); |
| 553 } |
| 554 |
| 531 std::string Version() const { | 555 std::string Version() const { |
| 532 std::string ret; | 556 std::string ret; |
| 533 if (NameFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "Version", "
", &ret)) return ret; | 557 if (NameFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "Version", "
", &ret)) return ret; |
| 534 // TODO(edisonn): warn about missing required field, assert for known good p
dfs | 558 // TODO(edisonn): warn about missing required field, assert for known good p
dfs |
| 535 return ""; | 559 return ""; |
| 536 } | 560 } |
| 537 | 561 |
| 562 /** (Required; must be an indirect reference) The page tree node that is the |
| 563 * root of the document's page tree (see Section 3.6.2, "Page Tree"). |
| 564 **/ |
| 565 bool has_Pages() const { |
| 566 return (ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "Pages
", "", NULL)); |
| 567 } |
| 568 |
| 538 SkPdfDictionary* Pages() const { | 569 SkPdfDictionary* Pages() const { |
| 539 SkPdfDictionary* ret; | 570 SkPdfDictionary* ret; |
| 540 if (DictionaryFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "Pages
", "", &ret)) return ret; | 571 if (DictionaryFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "Pages
", "", &ret)) return ret; |
| 541 // TODO(edisonn): warn about missing required field, assert for known good p
dfs | 572 // TODO(edisonn): warn about missing required field, assert for known good p
dfs |
| 542 return NULL; | 573 return NULL; |
| 543 } | 574 } |
| 544 | 575 |
| 576 /** (Optional; PDF 1.3) A number tree (see Section 3.8.5, "Number Trees") |
| 577 * defining the page labeling for the document. The keys in this tree are |
| 578 * page indices; the corresponding values are page label dictionaries (see |
| 579 * Section 8.3.1, "Page Labels"). Each page index denotes the first page in a |
| 580 * labeling range to which the specified page label dictionary applies. The |
| 581 * tree must include a value for page index 0. |
| 582 **/ |
| 583 bool has_PageLabels() const { |
| 584 return (ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "PageL
abels", "", NULL)); |
| 585 } |
| 586 |
| 545 bool isPageLabelsANumber() const { | 587 bool isPageLabelsANumber() const { |
| 546 SkPdfObject* ret = NULL; | 588 SkPdfObject* ret = NULL; |
| 547 if (!ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "PageLabe
ls", "", &ret)) return false; | 589 if (!ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "PageLabe
ls", "", &ret)) return false; |
| 548 return ret->podofo()->GetDataType() == ePdfDataType_Real || ret->podofo()->G
etDataType() == ePdfDataType_Number; | 590 return ret->podofo()->GetDataType() == ePdfDataType_Real || ret->podofo()->G
etDataType() == ePdfDataType_Number; |
| 549 } | 591 } |
| 550 | 592 |
| 551 double getPageLabelsAsNumber() const { | 593 double getPageLabelsAsNumber() const { |
| 552 double ret = 0; | 594 double ret = 0; |
| 553 if (DoubleFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "PageLabel
s", "", &ret)) return ret; | 595 if (DoubleFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "PageLabel
s", "", &ret)) return ret; |
| 554 // TODO(edisonn): warn about missing required field, assert for known good p
dfs | 596 // TODO(edisonn): warn about missing required field, assert for known good p
dfs |
| 555 return 0; | 597 return 0; |
| 556 } | 598 } |
| 557 | 599 |
| 558 bool isPageLabelsATree() const { | 600 bool isPageLabelsATree() const { |
| 559 SkPdfObject* ret = NULL; | 601 SkPdfObject* ret = NULL; |
| 560 if (!ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "PageLabe
ls", "", &ret)) return false; | 602 if (!ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "PageLabe
ls", "", &ret)) return false; |
| 561 return ret->podofo()->GetDataType() == ePdfDataType_Reference; | 603 return ret->podofo()->GetDataType() == ePdfDataType_Reference; |
| 562 } | 604 } |
| 563 | 605 |
| 564 SkPdfTree* getPageLabelsAsTree() const { | 606 SkPdfTree* getPageLabelsAsTree() const { |
| 565 SkPdfTree* ret = NULL; | 607 SkPdfTree* ret = NULL; |
| 566 if (TreeFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "PageLabels"
, "", &ret)) return ret; | 608 if (TreeFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "PageLabels"
, "", &ret)) return ret; |
| 567 // TODO(edisonn): warn about missing required field, assert for known good p
dfs | 609 // TODO(edisonn): warn about missing required field, assert for known good p
dfs |
| 568 return NULL; | 610 return NULL; |
| 569 } | 611 } |
| 570 | 612 |
| 613 /** (Optional; PDF 1.2) The document's name dictionary (see Section 3.6.3, |
| 614 * "Name Dictionary"). |
| 615 **/ |
| 616 bool has_Names() const { |
| 617 return (ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "Names
", "", NULL)); |
| 618 } |
| 619 |
| 571 SkPdfDictionary* Names() const { | 620 SkPdfDictionary* Names() const { |
| 572 SkPdfDictionary* ret; | 621 SkPdfDictionary* ret; |
| 573 if (DictionaryFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "Names
", "", &ret)) return ret; | 622 if (DictionaryFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "Names
", "", &ret)) return ret; |
| 574 // TODO(edisonn): warn about missing required field, assert for known good p
dfs | 623 // TODO(edisonn): warn about missing required field, assert for known good p
dfs |
| 575 return NULL; | 624 return NULL; |
| 576 } | 625 } |
| 577 | 626 |
| 627 /** (Optional; PDF 1.1; must be an indirect reference) A dictionary of names |
| 628 * and corresponding destinations (see "Named Destinations" on page |
| 629 * 476). |
| 630 **/ |
| 631 bool has_Dests() const { |
| 632 return (ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "Dests
", "", NULL)); |
| 633 } |
| 634 |
| 578 SkPdfDictionary* Dests() const { | 635 SkPdfDictionary* Dests() const { |
| 579 SkPdfDictionary* ret; | 636 SkPdfDictionary* ret; |
| 580 if (DictionaryFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "Dests
", "", &ret)) return ret; | 637 if (DictionaryFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "Dests
", "", &ret)) return ret; |
| 581 // TODO(edisonn): warn about missing required field, assert for known good p
dfs | 638 // TODO(edisonn): warn about missing required field, assert for known good p
dfs |
| 582 return NULL; | 639 return NULL; |
| 583 } | 640 } |
| 584 | 641 |
| 642 /** (Optional; PDF 1.2) A viewer preferences dictionary (see Section 8.1, |
| 643 * "Viewer Preferences") specifying the way the document is to be dis- |
| 644 * played on the screen. If this entry is absent, viewer applications should |
| 645 * use their own current user preference settings. |
| 646 **/ |
| 647 bool has_ViewerPreferences() const { |
| 648 return (ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "Viewe
rPreferences", "", NULL)); |
| 649 } |
| 650 |
| 585 SkPdfDictionary* ViewerPreferences() const { | 651 SkPdfDictionary* ViewerPreferences() const { |
| 586 SkPdfDictionary* ret; | 652 SkPdfDictionary* ret; |
| 587 if (DictionaryFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "Viewe
rPreferences", "", &ret)) return ret; | 653 if (DictionaryFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "Viewe
rPreferences", "", &ret)) return ret; |
| 588 // TODO(edisonn): warn about missing required field, assert for known good p
dfs | 654 // TODO(edisonn): warn about missing required field, assert for known good p
dfs |
| 589 return NULL; | 655 return NULL; |
| 590 } | 656 } |
| 591 | 657 |
| 658 /** (Optional) A name object specifying the page layout to be used when the |
| 659 * document is opened: |
| 660 * SinglePage Display one page at a time. |
| 661 * OneColumn Display the pages in one column. |
| 662 * TwoColumnLeft Display the pages in two columns, with odd- |
| 663 * numbered pages on the left. |
| 664 * TwoColumnRight Display the pages in two columns, with odd- |
| 665 * numbered pages on the right. |
| 666 * (See implementation note 19 in Appendix H.) Default value: SinglePage. |
| 667 **/ |
| 668 bool has_PageLayout() const { |
| 669 return (ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "PageL
ayout", "", NULL)); |
| 670 } |
| 671 |
| 592 std::string PageLayout() const { | 672 std::string PageLayout() const { |
| 593 std::string ret; | 673 std::string ret; |
| 594 if (NameFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "PageLayout"
, "", &ret)) return ret; | 674 if (NameFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "PageLayout"
, "", &ret)) return ret; |
| 595 // TODO(edisonn): warn about missing required field, assert for known good p
dfs | 675 // TODO(edisonn): warn about missing required field, assert for known good p
dfs |
| 596 return ""; | 676 return ""; |
| 597 } | 677 } |
| 598 | 678 |
| 679 /** (Optional) A name object specifying how the document should be dis- |
| 680 * played when opened: |
| 681 * UseNone Neither document outline nor thumbnail im- |
| 682 * ages visible |
| 683 * UseOutlines Document outline visible |
| 684 * UseThumbs Thumbnail images visible |
| 685 * FullScreen Full-screen mode, with no menu bar, window |
| 686 * controls, or any other window visible |
| 687 * Default value: UseNone. |
| 688 **/ |
| 689 bool has_PageMode() const { |
| 690 return (ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "PageM
ode", "", NULL)); |
| 691 } |
| 692 |
| 599 std::string PageMode() const { | 693 std::string PageMode() const { |
| 600 std::string ret; | 694 std::string ret; |
| 601 if (NameFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "PageMode",
"", &ret)) return ret; | 695 if (NameFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "PageMode",
"", &ret)) return ret; |
| 602 // TODO(edisonn): warn about missing required field, assert for known good p
dfs | 696 // TODO(edisonn): warn about missing required field, assert for known good p
dfs |
| 603 return ""; | 697 return ""; |
| 604 } | 698 } |
| 605 | 699 |
| 700 /** (Optional; must be an indirect reference) The outline dictionary that is the |
| 701 * root of the document's outline hierarchy (see Section 8.2.2, "Document |
| 702 * Outline"). |
| 703 **/ |
| 704 bool has_Outlines() const { |
| 705 return (ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "Outli
nes", "", NULL)); |
| 706 } |
| 707 |
| 606 SkPdfDictionary* Outlines() const { | 708 SkPdfDictionary* Outlines() const { |
| 607 SkPdfDictionary* ret; | 709 SkPdfDictionary* ret; |
| 608 if (DictionaryFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "Outli
nes", "", &ret)) return ret; | 710 if (DictionaryFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "Outli
nes", "", &ret)) return ret; |
| 609 // TODO(edisonn): warn about missing required field, assert for known good p
dfs | 711 // TODO(edisonn): warn about missing required field, assert for known good p
dfs |
| 610 return NULL; | 712 return NULL; |
| 611 } | 713 } |
| 612 | 714 |
| 715 /** (Optional; PDF 1.1; must be an indirect reference) An array of thread |
| 716 * dictionaries representing the document's article threads (see Section |
| 717 * 8.3.2, "Articles"). |
| 718 **/ |
| 719 bool has_Threads() const { |
| 720 return (ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "Threa
ds", "", NULL)); |
| 721 } |
| 722 |
| 613 SkPdfArray Threads() const { | 723 SkPdfArray Threads() const { |
| 614 SkPdfArray ret; | 724 SkPdfArray ret; |
| 615 if (ArrayFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "Threads",
"", &ret)) return ret; | 725 if (ArrayFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "Threads",
"", &ret)) return ret; |
| 616 // TODO(edisonn): warn about missing required field, assert for known good p
dfs | 726 // TODO(edisonn): warn about missing required field, assert for known good p
dfs |
| 617 return SkPdfArray(); | 727 return SkPdfArray(); |
| 618 } | 728 } |
| 619 | 729 |
| 730 /** (Optional; PDF 1.1) A value specifying a destination to be displayed or |
| 731 * an action to be performed when the document is opened. The value is |
| 732 * either an array defining a destination (see Section 8.2.1, "Destinations") |
| 733 * or an action dictionary representing an action (Section 8.5, "Actions"). If |
| 734 * this entry is absent, the document should be opened to the top of the |
| 735 * first page at the default magnification factor. |
| 736 **/ |
| 737 bool has_OpenAction() const { |
| 738 return (ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "OpenA
ction", "", NULL)); |
| 739 } |
| 740 |
| 620 bool isOpenActionAArray() const { | 741 bool isOpenActionAArray() const { |
| 621 SkPdfObject* ret = NULL; | 742 SkPdfObject* ret = NULL; |
| 622 if (!ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "OpenActi
on", "", &ret)) return false; | 743 if (!ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "OpenActi
on", "", &ret)) return false; |
| 623 return ret->podofo()->GetDataType() == ePdfDataType_Array; | 744 return ret->podofo()->GetDataType() == ePdfDataType_Array; |
| 624 } | 745 } |
| 625 | 746 |
| 626 SkPdfArray getOpenActionAsArray() const { | 747 SkPdfArray getOpenActionAsArray() const { |
| 627 SkPdfArray ret = SkPdfArray(); | 748 SkPdfArray ret = SkPdfArray(); |
| 628 if (ArrayFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "OpenAction
", "", &ret)) return ret; | 749 if (ArrayFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "OpenAction
", "", &ret)) return ret; |
| 629 // TODO(edisonn): warn about missing required field, assert for known good p
dfs | 750 // TODO(edisonn): warn about missing required field, assert for known good p
dfs |
| 630 return SkPdfArray(); | 751 return SkPdfArray(); |
| 631 } | 752 } |
| 632 | 753 |
| 633 bool isOpenActionADictionary() const { | 754 bool isOpenActionADictionary() const { |
| 634 SkPdfObject* ret = NULL; | 755 SkPdfObject* ret = NULL; |
| 635 if (!ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "OpenActi
on", "", &ret)) return false; | 756 if (!ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "OpenActi
on", "", &ret)) return false; |
| 636 return ret->podofo()->GetDataType() == ePdfDataType_Dictionary; | 757 return ret->podofo()->GetDataType() == ePdfDataType_Dictionary; |
| 637 } | 758 } |
| 638 | 759 |
| 639 SkPdfDictionary* getOpenActionAsDictionary() const { | 760 SkPdfDictionary* getOpenActionAsDictionary() const { |
| 640 SkPdfDictionary* ret = NULL; | 761 SkPdfDictionary* ret = NULL; |
| 641 if (DictionaryFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "OpenA
ction", "", &ret)) return ret; | 762 if (DictionaryFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "OpenA
ction", "", &ret)) return ret; |
| 642 // TODO(edisonn): warn about missing required field, assert for known good p
dfs | 763 // TODO(edisonn): warn about missing required field, assert for known good p
dfs |
| 643 return NULL; | 764 return NULL; |
| 644 } | 765 } |
| 645 | 766 |
| 767 /** (Optional; PDF 1.4) An additional-actions dictionary defining the actions |
| 768 * to be taken in response to various trigger events affecting the document |
| 769 * as a whole (see "Trigger Events" on page 514). (See also implementation |
| 770 * note 20 in Appendix H.) |
| 771 **/ |
| 772 bool has_AA() const { |
| 773 return (ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "AA",
"", NULL)); |
| 774 } |
| 775 |
| 646 SkPdfDictionary* AA() const { | 776 SkPdfDictionary* AA() const { |
| 647 SkPdfDictionary* ret; | 777 SkPdfDictionary* ret; |
| 648 if (DictionaryFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "AA",
"", &ret)) return ret; | 778 if (DictionaryFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "AA",
"", &ret)) return ret; |
| 649 // TODO(edisonn): warn about missing required field, assert for known good p
dfs | 779 // TODO(edisonn): warn about missing required field, assert for known good p
dfs |
| 650 return NULL; | 780 return NULL; |
| 651 } | 781 } |
| 652 | 782 |
| 783 /** (Optional) A URI dictionary containing document-level information for |
| 784 * URI (uniform resource identifier) actions (see "URI Actions" on page |
| 785 * 523). |
| 786 **/ |
| 787 bool has_URI() const { |
| 788 return (ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "URI",
"", NULL)); |
| 789 } |
| 790 |
| 653 SkPdfDictionary* URI() const { | 791 SkPdfDictionary* URI() const { |
| 654 SkPdfDictionary* ret; | 792 SkPdfDictionary* ret; |
| 655 if (DictionaryFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "URI",
"", &ret)) return ret; | 793 if (DictionaryFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "URI",
"", &ret)) return ret; |
| 656 // TODO(edisonn): warn about missing required field, assert for known good p
dfs | 794 // TODO(edisonn): warn about missing required field, assert for known good p
dfs |
| 657 return NULL; | 795 return NULL; |
| 658 } | 796 } |
| 659 | 797 |
| 798 /** (Optional; PDF 1.2) The document's interactive form (AcroForm) dic- |
| 799 * tionary (see Section 8.6.1, "Interactive Form Dictionary"). |
| 800 **/ |
| 801 bool has_AcroForm() const { |
| 802 return (ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "AcroF
orm", "", NULL)); |
| 803 } |
| 804 |
| 660 SkPdfDictionary* AcroForm() const { | 805 SkPdfDictionary* AcroForm() const { |
| 661 SkPdfDictionary* ret; | 806 SkPdfDictionary* ret; |
| 662 if (DictionaryFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "AcroF
orm", "", &ret)) return ret; | 807 if (DictionaryFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "AcroF
orm", "", &ret)) return ret; |
| 663 // TODO(edisonn): warn about missing required field, assert for known good p
dfs | 808 // TODO(edisonn): warn about missing required field, assert for known good p
dfs |
| 664 return NULL; | 809 return NULL; |
| 665 } | 810 } |
| 666 | 811 |
| 812 /** (Optional; PDF 1.4; must be an indirect reference) A metadata stream |
| 813 * containing metadata for the document (see Section 9.2.2, "Metadata |
| 814 * Streams"). |
| 815 **/ |
| 816 bool has_Metadata() const { |
| 817 return (ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "Metad
ata", "", NULL)); |
| 818 } |
| 819 |
| 667 SkPdfStream Metadata() const { | 820 SkPdfStream Metadata() const { |
| 668 SkPdfStream ret; | 821 SkPdfStream ret; |
| 669 if (StreamFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "Metadata"
, "", &ret)) return ret; | 822 if (StreamFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "Metadata"
, "", &ret)) return ret; |
| 670 // TODO(edisonn): warn about missing required field, assert for known good p
dfs | 823 // TODO(edisonn): warn about missing required field, assert for known good p
dfs |
| 671 return SkPdfStream(); | 824 return SkPdfStream(); |
| 672 } | 825 } |
| 673 | 826 |
| 827 /** (Optional; PDF 1.3) The document's structure tree root dictionary (see |
| 828 * Section 9.6.1, "Structure Hierarchy"). |
| 829 **/ |
| 830 bool has_StructTreeRoot() const { |
| 831 return (ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "Struc
tTreeRoot", "", NULL)); |
| 832 } |
| 833 |
| 674 SkPdfDictionary* StructTreeRoot() const { | 834 SkPdfDictionary* StructTreeRoot() const { |
| 675 SkPdfDictionary* ret; | 835 SkPdfDictionary* ret; |
| 676 if (DictionaryFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "Struc
tTreeRoot", "", &ret)) return ret; | 836 if (DictionaryFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "Struc
tTreeRoot", "", &ret)) return ret; |
| 677 // TODO(edisonn): warn about missing required field, assert for known good p
dfs | 837 // TODO(edisonn): warn about missing required field, assert for known good p
dfs |
| 678 return NULL; | 838 return NULL; |
| 679 } | 839 } |
| 680 | 840 |
| 841 /** (Optional; PDF 1.4) A mark information dictionary containing informa- |
| 842 * tion about the document's usage of Tagged PDF conventions (see Sec- |
| 843 * tion 9.7.1, "Mark Information Dictionary"). |
| 844 **/ |
| 845 bool has_MarkInfo() const { |
| 846 return (ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "MarkI
nfo", "", NULL)); |
| 847 } |
| 848 |
| 681 SkPdfDictionary* MarkInfo() const { | 849 SkPdfDictionary* MarkInfo() const { |
| 682 SkPdfDictionary* ret; | 850 SkPdfDictionary* ret; |
| 683 if (DictionaryFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "MarkI
nfo", "", &ret)) return ret; | 851 if (DictionaryFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "MarkI
nfo", "", &ret)) return ret; |
| 684 // TODO(edisonn): warn about missing required field, assert for known good p
dfs | 852 // TODO(edisonn): warn about missing required field, assert for known good p
dfs |
| 685 return NULL; | 853 return NULL; |
| 686 } | 854 } |
| 687 | 855 |
| 856 /** (Optional; PDF 1.4) A language identifier specifying the natural language |
| 857 * for all text in the document except where overridden by language speci- |
| 858 * fications for structure elements or marked content (see Section 9.8.1, |
| 859 * "Natural Language Specification"). If this entry is absent, the language is |
| 860 * considered unknown. |
| 861 **/ |
| 862 bool has_Lang() const { |
| 863 return (ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "Lang"
, "", NULL)); |
| 864 } |
| 865 |
| 688 std::string Lang() const { | 866 std::string Lang() const { |
| 689 std::string ret; | 867 std::string ret; |
| 690 if (StringFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "Lang", ""
, &ret)) return ret; | 868 if (StringFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "Lang", ""
, &ret)) return ret; |
| 691 // TODO(edisonn): warn about missing required field, assert for known good p
dfs | 869 // TODO(edisonn): warn about missing required field, assert for known good p
dfs |
| 692 return ""; | 870 return ""; |
| 693 } | 871 } |
| 694 | 872 |
| 873 /** (Optional; PDF 1.3) A Web Capture information dictionary containing |
| 874 * state information used by the Acrobat Web Capture (AcroSpider) plug- |
| 875 * in extension (see Section 9.9.1, "Web Capture Information Dictionary"). |
| 876 **/ |
| 877 bool has_SpiderInfo() const { |
| 878 return (ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "Spide
rInfo", "", NULL)); |
| 879 } |
| 880 |
| 695 SkPdfDictionary* SpiderInfo() const { | 881 SkPdfDictionary* SpiderInfo() const { |
| 696 SkPdfDictionary* ret; | 882 SkPdfDictionary* ret; |
| 697 if (DictionaryFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "Spide
rInfo", "", &ret)) return ret; | 883 if (DictionaryFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "Spide
rInfo", "", &ret)) return ret; |
| 698 // TODO(edisonn): warn about missing required field, assert for known good p
dfs | 884 // TODO(edisonn): warn about missing required field, assert for known good p
dfs |
| 699 return NULL; | 885 return NULL; |
| 700 } | 886 } |
| 701 | 887 |
| 888 /** (Optional; PDF 1.4) An array of output intent dictionaries describing the |
| 889 * color characteristics of output devices on which the document might be |
| 890 * rendered (see "Output Intents" on page 684). |
| 891 **/ |
| 892 bool has_OutputIntents() const { |
| 893 return (ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "Outpu
tIntents", "", NULL)); |
| 894 } |
| 895 |
| 702 SkPdfArray OutputIntents() const { | 896 SkPdfArray OutputIntents() const { |
| 703 SkPdfArray ret; | 897 SkPdfArray ret; |
| 704 if (ArrayFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "OutputInte
nts", "", &ret)) return ret; | 898 if (ArrayFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "OutputInte
nts", "", &ret)) return ret; |
| 705 // TODO(edisonn): warn about missing required field, assert for known good p
dfs | 899 // TODO(edisonn): warn about missing required field, assert for known good p
dfs |
| 706 return SkPdfArray(); | 900 return SkPdfArray(); |
| 707 } | 901 } |
| 708 | 902 |
| 709 }; | 903 }; |
| 710 | 904 |
| 711 #endif // __DEFINED__SkPdfCatalogDictionary | 905 #endif // __DEFINED__SkPdfCatalogDictionary |
| OLD | NEW |