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