| OLD | NEW |
| 1 #ifndef __DEFINED__SkPdfGraphicsStateDictionary | 1 #ifndef __DEFINED__SkPdfGraphicsStateDictionary |
| 2 #define __DEFINED__SkPdfGraphicsStateDictionary | 2 #define __DEFINED__SkPdfGraphicsStateDictionary |
| 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 a graphics state parameter dictionary |
| 8 class SkPdfGraphicsStateDictionary : public SkPdfDictionary { | 9 class SkPdfGraphicsStateDictionary : public SkPdfDictionary { |
| 9 public: | 10 public: |
| 10 virtual SkPdfObjectType getType() const { return kGraphicsStateDictionary_SkPd
fObjectType;} | 11 virtual SkPdfObjectType getType() const { return kGraphicsStateDictionary_SkPd
fObjectType;} |
| 11 virtual SkPdfObjectType getTypeEnd() const { return (SkPdfObjectType)(kGraphic
sStateDictionary_SkPdfObjectType + 1);} | 12 virtual SkPdfObjectType getTypeEnd() const { return (SkPdfObjectType)(kGraphic
sStateDictionary_SkPdfObjectType + 1);} |
| 12 public: | 13 public: |
| 13 virtual SkPdfGraphicsStateDictionary* asGraphicsStateDictionary() {return this
;} | 14 virtual SkPdfGraphicsStateDictionary* asGraphicsStateDictionary() {return this
;} |
| 14 virtual const SkPdfGraphicsStateDictionary* asGraphicsStateDictionary() const
{return this;} | 15 virtual const SkPdfGraphicsStateDictionary* asGraphicsStateDictionary() 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 SkPdfGraphicsStateDictionary(const PdfMemDocument* podofoDoc = NULL, const Pdf
Object* podofoObj = NULL) : SkPdfDictionary(podofoDoc, podofoObj) {} | 519 SkPdfGraphicsStateDictionary(const PdfMemDocument* podofoDoc = NULL, const Pdf
Object* podofoObj = NULL) : SkPdfDictionary(podofoDoc, podofoObj) {} |
| 519 | 520 |
| 520 virtual bool valid() const {return true;} | 521 virtual bool valid() const {return true;} |
| 521 | 522 |
| 522 SkPdfGraphicsStateDictionary& operator=(const SkPdfGraphicsStateDictionary& fr
om) {this->fPodofoDoc = from.fPodofoDoc; this->fPodofoObj = from.fPodofoObj; ret
urn *this;} | 523 SkPdfGraphicsStateDictionary& operator=(const SkPdfGraphicsStateDictionary& fr
om) {this->fPodofoDoc = from.fPodofoDoc; this->fPodofoObj = from.fPodofoObj; ret
urn *this;} |
| 523 | 524 |
| 525 /** (Optional) The type of PDF object that this dictionary describes; must be |
| 526 * ExtGState for a graphics state parameter 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.3) The line width (see "Line Width" on page 152). |
| 540 **/ |
| 541 bool has_LW() const { |
| 542 return (ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "LW",
"", NULL)); |
| 543 } |
| 544 |
| 531 double LW() const { | 545 double LW() const { |
| 532 double ret; | 546 double ret; |
| 533 if (DoubleFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "LW", "",
&ret)) return ret; | 547 if (DoubleFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "LW", "",
&ret)) return ret; |
| 534 // TODO(edisonn): warn about missing required field, assert for known good p
dfs | 548 // TODO(edisonn): warn about missing required field, assert for known good p
dfs |
| 535 return 0; | 549 return 0; |
| 536 } | 550 } |
| 537 | 551 |
| 552 /** (Optional; PDF 1.3) The line cap style (see "Line Cap Style" on page 153). |
| 553 **/ |
| 554 bool has_LC() const { |
| 555 return (ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "LC",
"", NULL)); |
| 556 } |
| 557 |
| 538 long LC() const { | 558 long LC() const { |
| 539 long ret; | 559 long ret; |
| 540 if (LongFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "LC", "", &r
et)) return ret; | 560 if (LongFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "LC", "", &r
et)) return ret; |
| 541 // TODO(edisonn): warn about missing required field, assert for known good p
dfs | 561 // TODO(edisonn): warn about missing required field, assert for known good p
dfs |
| 542 return 0; | 562 return 0; |
| 543 } | 563 } |
| 544 | 564 |
| 565 /** (Optional; PDF 1.3) The line join style (see "Line Join Style" on page 153). |
| 566 **/ |
| 567 bool has_LJ() const { |
| 568 return (ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "LJ",
"", NULL)); |
| 569 } |
| 570 |
| 545 long LJ() const { | 571 long LJ() const { |
| 546 long ret; | 572 long ret; |
| 547 if (LongFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "LJ", "", &r
et)) return ret; | 573 if (LongFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "LJ", "", &r
et)) return ret; |
| 548 // TODO(edisonn): warn about missing required field, assert for known good p
dfs | 574 // TODO(edisonn): warn about missing required field, assert for known good p
dfs |
| 549 return 0; | 575 return 0; |
| 550 } | 576 } |
| 551 | 577 |
| 578 /** (Optional; PDF 1.3) The miter limit (see "Miter Limit" on page 153). |
| 579 **/ |
| 580 bool has_ML() const { |
| 581 return (ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "ML",
"", NULL)); |
| 582 } |
| 583 |
| 552 double ML() const { | 584 double ML() const { |
| 553 double ret; | 585 double ret; |
| 554 if (DoubleFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "ML", "",
&ret)) return ret; | 586 if (DoubleFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "ML", "",
&ret)) return ret; |
| 555 // TODO(edisonn): warn about missing required field, assert for known good p
dfs | 587 // TODO(edisonn): warn about missing required field, assert for known good p
dfs |
| 556 return 0; | 588 return 0; |
| 557 } | 589 } |
| 558 | 590 |
| 591 /** (Optional; PDF 1.3) The line dash pattern, expressed as an array of the form |
| 592 * [dashArray dashPhase], where dashArray is itself an array and dashPhase is a
n |
| 593 * integer (see "Line Dash Pattern" on page 155). |
| 594 **/ |
| 595 bool has_D() const { |
| 596 return (ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "D", "
", NULL)); |
| 597 } |
| 598 |
| 559 SkPdfArray D() const { | 599 SkPdfArray D() const { |
| 560 SkPdfArray ret; | 600 SkPdfArray ret; |
| 561 if (ArrayFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "D", "", &r
et)) return ret; | 601 if (ArrayFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "D", "", &r
et)) return ret; |
| 562 // TODO(edisonn): warn about missing required field, assert for known good p
dfs | 602 // TODO(edisonn): warn about missing required field, assert for known good p
dfs |
| 563 return SkPdfArray(); | 603 return SkPdfArray(); |
| 564 } | 604 } |
| 565 | 605 |
| 606 /** (Optional; PDF 1.3) The name of the rendering intent (see "Rendering |
| 607 * Intents" on page 197). |
| 608 **/ |
| 609 bool has_RI() const { |
| 610 return (ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "RI",
"", NULL)); |
| 611 } |
| 612 |
| 566 std::string RI() const { | 613 std::string RI() const { |
| 567 std::string ret; | 614 std::string ret; |
| 568 if (NameFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "RI", "", &r
et)) return ret; | 615 if (NameFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "RI", "", &r
et)) return ret; |
| 569 // TODO(edisonn): warn about missing required field, assert for known good p
dfs | 616 // TODO(edisonn): warn about missing required field, assert for known good p
dfs |
| 570 return ""; | 617 return ""; |
| 571 } | 618 } |
| 572 | 619 |
| 620 /** (Optional) A flag specifying whether to apply overprint (see Section 4.5.6, |
| 621 * "Overprint Control"). In PDF 1.2 and earlier, there is a single overprint |
| 622 * parameter that applies to all painting operations. Beginning with PDF 1.3, |
| 623 * there are two separate overprint parameters: one for stroking and one for al
l |
| 624 * other painting operations. Specifying an OP entry sets both parameters un- |
| 625 * less there is also an op entry in the same graphics state parameter dictiona
ry, |
| 626 * in which case the OP entry sets only the overprint parameter for stroking. |
| 627 **/ |
| 628 bool has_OP() const { |
| 629 return (ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "OP",
"", NULL)); |
| 630 } |
| 631 |
| 573 bool OP() const { | 632 bool OP() const { |
| 574 bool ret; | 633 bool ret; |
| 575 if (BoolFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "OP", "", &r
et)) return ret; | 634 if (BoolFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "OP", "", &r
et)) return ret; |
| 576 // TODO(edisonn): warn about missing required field, assert for known good p
dfs | 635 // TODO(edisonn): warn about missing required field, assert for known good p
dfs |
| 577 return false; | 636 return false; |
| 578 } | 637 } |
| 579 | 638 |
| 639 /** (Optional; PDF 1.3) A flag specifying whether to apply overprint (see Sectio
n |
| 640 * 4.5.6, "Overprint Control") for painting operations other than stroking. If |
| 641 * this entry is absent, the OP entry, if any, sets this parameter. |
| 642 **/ |
| 643 bool has_op() const { |
| 644 return (ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "op",
"", NULL)); |
| 645 } |
| 646 |
| 580 bool op() const { | 647 bool op() const { |
| 581 bool ret; | 648 bool ret; |
| 582 if (BoolFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "op", "", &r
et)) return ret; | 649 if (BoolFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "op", "", &r
et)) return ret; |
| 583 // TODO(edisonn): warn about missing required field, assert for known good p
dfs | 650 // TODO(edisonn): warn about missing required field, assert for known good p
dfs |
| 584 return false; | 651 return false; |
| 585 } | 652 } |
| 586 | 653 |
| 654 /** (Optional; PDF 1.3) The overprint mode (see Section 4.5.6, "Overprint Con- |
| 655 * trol"). |
| 656 **/ |
| 657 bool has_OPM() const { |
| 658 return (ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "OPM",
"", NULL)); |
| 659 } |
| 660 |
| 587 long OPM() const { | 661 long OPM() const { |
| 588 long ret; | 662 long ret; |
| 589 if (LongFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "OPM", "", &
ret)) return ret; | 663 if (LongFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "OPM", "", &
ret)) return ret; |
| 590 // TODO(edisonn): warn about missing required field, assert for known good p
dfs | 664 // TODO(edisonn): warn about missing required field, assert for known good p
dfs |
| 591 return 0; | 665 return 0; |
| 592 } | 666 } |
| 593 | 667 |
| 668 /** (Optional; PDF 1.3) An array of the form [font size], where font is an indir
ect |
| 669 * reference to a font dictionary and size is a number expressed in text space |
| 670 * units. These two objects correspond to the operands of the Tf operator (see |
| 671 * Section 5.2, "Text State Parameters and Operators"); however, the first oper
- |
| 672 * and is an indirect object reference instead of a resource name. |
| 673 **/ |
| 674 bool has_Font() const { |
| 675 return (ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "Font"
, "", NULL)); |
| 676 } |
| 677 |
| 594 SkPdfArray Font() const { | 678 SkPdfArray Font() const { |
| 595 SkPdfArray ret; | 679 SkPdfArray ret; |
| 596 if (ArrayFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "Font", "",
&ret)) return ret; | 680 if (ArrayFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "Font", "",
&ret)) return ret; |
| 597 // TODO(edisonn): warn about missing required field, assert for known good p
dfs | 681 // TODO(edisonn): warn about missing required field, assert for known good p
dfs |
| 598 return SkPdfArray(); | 682 return SkPdfArray(); |
| 599 } | 683 } |
| 600 | 684 |
| 685 /** (Optional) The black-generation function, which maps the interval [0.0 1.0] |
| 686 * to the interval [0.0 1.0] (see Section 6.2.3, "Conversion from DeviceRGB to |
| 687 * DeviceCMYK"). |
| 688 **/ |
| 689 bool has_BG() const { |
| 690 return (ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "BG",
"", NULL)); |
| 691 } |
| 692 |
| 601 SkPdfFunction BG() const { | 693 SkPdfFunction BG() const { |
| 602 SkPdfFunction ret; | 694 SkPdfFunction ret; |
| 603 if (FunctionFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "BG", ""
, &ret)) return ret; | 695 if (FunctionFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "BG", ""
, &ret)) return ret; |
| 604 // 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 |
| 605 return SkPdfFunction(); | 697 return SkPdfFunction(); |
| 606 } | 698 } |
| 607 | 699 |
| 700 /** (Optional; PDF 1.3) Same as BG except that the value may also be the name |
| 701 * Default, denoting the black-generation function that was in effect at the st
art |
| 702 * of the page. If both BG and BG2 are present in the same graphics state param
- |
| 703 * eter dictionary, BG2 takes precedence. |
| 704 **/ |
| 705 bool has_BG2() const { |
| 706 return (ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "BG2",
"", NULL)); |
| 707 } |
| 708 |
| 608 bool isBG2AFunction() const { | 709 bool isBG2AFunction() const { |
| 609 SkPdfObject* ret = NULL; | 710 SkPdfObject* ret = NULL; |
| 610 if (!ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "BG2", ""
, &ret)) return false; | 711 if (!ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "BG2", ""
, &ret)) return false; |
| 611 return ret->podofo()->GetDataType() == ePdfDataType_Reference; | 712 return ret->podofo()->GetDataType() == ePdfDataType_Reference; |
| 612 } | 713 } |
| 613 | 714 |
| 614 SkPdfFunction getBG2AsFunction() const { | 715 SkPdfFunction getBG2AsFunction() const { |
| 615 SkPdfFunction ret = SkPdfFunction(); | 716 SkPdfFunction ret = SkPdfFunction(); |
| 616 if (FunctionFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "BG2", "
", &ret)) return ret; | 717 if (FunctionFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "BG2", "
", &ret)) return ret; |
| 617 // TODO(edisonn): warn about missing required field, assert for known good p
dfs | 718 // TODO(edisonn): warn about missing required field, assert for known good p
dfs |
| 618 return SkPdfFunction(); | 719 return SkPdfFunction(); |
| 619 } | 720 } |
| 620 | 721 |
| 621 bool isBG2AName() const { | 722 bool isBG2AName() const { |
| 622 SkPdfObject* ret = NULL; | 723 SkPdfObject* ret = NULL; |
| 623 if (!ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "BG2", ""
, &ret)) return false; | 724 if (!ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "BG2", ""
, &ret)) return false; |
| 624 return ret->podofo()->GetDataType() == ePdfDataType_Name; | 725 return ret->podofo()->GetDataType() == ePdfDataType_Name; |
| 625 } | 726 } |
| 626 | 727 |
| 627 std::string getBG2AsName() const { | 728 std::string getBG2AsName() const { |
| 628 std::string ret = ""; | 729 std::string ret = ""; |
| 629 if (NameFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "BG2", "", &
ret)) return ret; | 730 if (NameFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "BG2", "", &
ret)) return ret; |
| 630 // TODO(edisonn): warn about missing required field, assert for known good p
dfs | 731 // TODO(edisonn): warn about missing required field, assert for known good p
dfs |
| 631 return ""; | 732 return ""; |
| 632 } | 733 } |
| 633 | 734 |
| 735 /** (Optional) The undercolor-removal function, which maps the interval |
| 736 * [0.0 1.0] to the interval [-1.0 1.0] (see Section 6.2.3, "Conversion from |
| 737 * DeviceRGB to DeviceCMYK"). |
| 738 **/ |
| 739 bool has_UCR() const { |
| 740 return (ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "UCR",
"", NULL)); |
| 741 } |
| 742 |
| 634 SkPdfFunction UCR() const { | 743 SkPdfFunction UCR() const { |
| 635 SkPdfFunction ret; | 744 SkPdfFunction ret; |
| 636 if (FunctionFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "UCR", "
", &ret)) return ret; | 745 if (FunctionFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "UCR", "
", &ret)) return ret; |
| 637 // TODO(edisonn): warn about missing required field, assert for known good p
dfs | 746 // TODO(edisonn): warn about missing required field, assert for known good p
dfs |
| 638 return SkPdfFunction(); | 747 return SkPdfFunction(); |
| 639 } | 748 } |
| 640 | 749 |
| 750 /** (Optional; PDF 1.3) Same as UCR except that the value may also be the name |
| 751 * Default, denoting the undercolor-removal function that was in effect at the |
| 752 * start of the page. If both UCR and UCR2 are present in the same graphics sta
te |
| 753 * parameter dictionary, UCR2 takes precedence. |
| 754 **/ |
| 755 bool has_UCR2() const { |
| 756 return (ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "UCR2"
, "", NULL)); |
| 757 } |
| 758 |
| 641 bool isUCR2AFunction() const { | 759 bool isUCR2AFunction() const { |
| 642 SkPdfObject* ret = NULL; | 760 SkPdfObject* ret = NULL; |
| 643 if (!ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "UCR2", "
", &ret)) return false; | 761 if (!ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "UCR2", "
", &ret)) return false; |
| 644 return ret->podofo()->GetDataType() == ePdfDataType_Reference; | 762 return ret->podofo()->GetDataType() == ePdfDataType_Reference; |
| 645 } | 763 } |
| 646 | 764 |
| 647 SkPdfFunction getUCR2AsFunction() const { | 765 SkPdfFunction getUCR2AsFunction() const { |
| 648 SkPdfFunction ret = SkPdfFunction(); | 766 SkPdfFunction ret = SkPdfFunction(); |
| 649 if (FunctionFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "UCR2",
"", &ret)) return ret; | 767 if (FunctionFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "UCR2",
"", &ret)) return ret; |
| 650 // TODO(edisonn): warn about missing required field, assert for known good p
dfs | 768 // TODO(edisonn): warn about missing required field, assert for known good p
dfs |
| 651 return SkPdfFunction(); | 769 return SkPdfFunction(); |
| 652 } | 770 } |
| 653 | 771 |
| 654 bool isUCR2AName() const { | 772 bool isUCR2AName() const { |
| 655 SkPdfObject* ret = NULL; | 773 SkPdfObject* ret = NULL; |
| 656 if (!ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "UCR2", "
", &ret)) return false; | 774 if (!ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "UCR2", "
", &ret)) return false; |
| 657 return ret->podofo()->GetDataType() == ePdfDataType_Name; | 775 return ret->podofo()->GetDataType() == ePdfDataType_Name; |
| 658 } | 776 } |
| 659 | 777 |
| 660 std::string getUCR2AsName() const { | 778 std::string getUCR2AsName() const { |
| 661 std::string ret = ""; | 779 std::string ret = ""; |
| 662 if (NameFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "UCR2", "",
&ret)) return ret; | 780 if (NameFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "UCR2", "",
&ret)) return ret; |
| 663 // TODO(edisonn): warn about missing required field, assert for known good p
dfs | 781 // TODO(edisonn): warn about missing required field, assert for known good p
dfs |
| 664 return ""; | 782 return ""; |
| 665 } | 783 } |
| 666 | 784 |
| 785 /** (Optional) The transfer function, which maps the interval [0.0 1.0] to the |
| 786 * interval [0.0 1.0] (see Section 6.3, "Transfer Functions"). The value is eit
her |
| 787 * a single function (which applies to all process colorants) or an array of fo
ur |
| 788 * functions (which apply to the process colorants individually). The name |
| 789 * Identity may be used to represent the identity function. |
| 790 **/ |
| 791 bool has_TR() const { |
| 792 return (ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "TR",
"", NULL)); |
| 793 } |
| 794 |
| 667 bool isTRAFunction() const { | 795 bool isTRAFunction() const { |
| 668 SkPdfObject* ret = NULL; | 796 SkPdfObject* ret = NULL; |
| 669 if (!ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "TR", "",
&ret)) return false; | 797 if (!ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "TR", "",
&ret)) return false; |
| 670 return ret->podofo()->GetDataType() == ePdfDataType_Reference; | 798 return ret->podofo()->GetDataType() == ePdfDataType_Reference; |
| 671 } | 799 } |
| 672 | 800 |
| 673 SkPdfFunction getTRAsFunction() const { | 801 SkPdfFunction getTRAsFunction() const { |
| 674 SkPdfFunction ret = SkPdfFunction(); | 802 SkPdfFunction ret = SkPdfFunction(); |
| 675 if (FunctionFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "TR", ""
, &ret)) return ret; | 803 if (FunctionFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "TR", ""
, &ret)) return ret; |
| 676 // TODO(edisonn): warn about missing required field, assert for known good p
dfs | 804 // TODO(edisonn): warn about missing required field, assert for known good p
dfs |
| (...skipping 19 matching lines...) Expand all Loading... |
| 696 return ret->podofo()->GetDataType() == ePdfDataType_Name; | 824 return ret->podofo()->GetDataType() == ePdfDataType_Name; |
| 697 } | 825 } |
| 698 | 826 |
| 699 std::string getTRAsName() const { | 827 std::string getTRAsName() const { |
| 700 std::string ret = ""; | 828 std::string ret = ""; |
| 701 if (NameFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "TR", "", &r
et)) return ret; | 829 if (NameFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "TR", "", &r
et)) return ret; |
| 702 // TODO(edisonn): warn about missing required field, assert for known good p
dfs | 830 // TODO(edisonn): warn about missing required field, assert for known good p
dfs |
| 703 return ""; | 831 return ""; |
| 704 } | 832 } |
| 705 | 833 |
| 834 /** (Optional; PDF 1.3) Same as TR except that the value may also be the name |
| 835 * Default, denoting the transfer function that was in effect at the start of t
he |
| 836 * page. If both TR and TR2 are present in the same graphics state parameter di
c- |
| 837 * tionary, TR2 takes precedence. |
| 838 **/ |
| 839 bool has_TR2() const { |
| 840 return (ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "TR2",
"", NULL)); |
| 841 } |
| 842 |
| 706 bool isTR2AFunction() const { | 843 bool isTR2AFunction() const { |
| 707 SkPdfObject* ret = NULL; | 844 SkPdfObject* ret = NULL; |
| 708 if (!ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "TR2", ""
, &ret)) return false; | 845 if (!ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "TR2", ""
, &ret)) return false; |
| 709 return ret->podofo()->GetDataType() == ePdfDataType_Reference; | 846 return ret->podofo()->GetDataType() == ePdfDataType_Reference; |
| 710 } | 847 } |
| 711 | 848 |
| 712 SkPdfFunction getTR2AsFunction() const { | 849 SkPdfFunction getTR2AsFunction() const { |
| 713 SkPdfFunction ret = SkPdfFunction(); | 850 SkPdfFunction ret = SkPdfFunction(); |
| 714 if (FunctionFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "TR2", "
", &ret)) return ret; | 851 if (FunctionFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "TR2", "
", &ret)) return ret; |
| 715 // 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 |
| (...skipping 19 matching lines...) Expand all Loading... |
| 735 return ret->podofo()->GetDataType() == ePdfDataType_Name; | 872 return ret->podofo()->GetDataType() == ePdfDataType_Name; |
| 736 } | 873 } |
| 737 | 874 |
| 738 std::string getTR2AsName() const { | 875 std::string getTR2AsName() const { |
| 739 std::string ret = ""; | 876 std::string ret = ""; |
| 740 if (NameFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "TR2", "", &
ret)) return ret; | 877 if (NameFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "TR2", "", &
ret)) return ret; |
| 741 // TODO(edisonn): warn about missing required field, assert for known good p
dfs | 878 // TODO(edisonn): warn about missing required field, assert for known good p
dfs |
| 742 return ""; | 879 return ""; |
| 743 } | 880 } |
| 744 | 881 |
| 882 /** (Optional) The halftone dictionary or stream (see Section 6.4, "Halftones") |
| 883 * or the name Default, denoting the halftone that was in effect at the start o
f the |
| 884 * page. |
| 885 **/ |
| 886 bool has_HT() const { |
| 887 return (ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "HT",
"", NULL)); |
| 888 } |
| 889 |
| 745 bool isHTADictionary() const { | 890 bool isHTADictionary() const { |
| 746 SkPdfObject* ret = NULL; | 891 SkPdfObject* ret = NULL; |
| 747 if (!ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "HT", "",
&ret)) return false; | 892 if (!ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "HT", "",
&ret)) return false; |
| 748 return ret->podofo()->GetDataType() == ePdfDataType_Dictionary; | 893 return ret->podofo()->GetDataType() == ePdfDataType_Dictionary; |
| 749 } | 894 } |
| 750 | 895 |
| 751 SkPdfDictionary* getHTAsDictionary() const { | 896 SkPdfDictionary* getHTAsDictionary() const { |
| 752 SkPdfDictionary* ret = NULL; | 897 SkPdfDictionary* ret = NULL; |
| 753 if (DictionaryFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "HT",
"", &ret)) return ret; | 898 if (DictionaryFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "HT",
"", &ret)) return ret; |
| 754 // 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 |
| (...skipping 19 matching lines...) Expand all Loading... |
| 774 return ret->podofo()->GetDataType() == ePdfDataType_Name; | 919 return ret->podofo()->GetDataType() == ePdfDataType_Name; |
| 775 } | 920 } |
| 776 | 921 |
| 777 std::string getHTAsName() const { | 922 std::string getHTAsName() const { |
| 778 std::string ret = ""; | 923 std::string ret = ""; |
| 779 if (NameFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "HT", "", &r
et)) return ret; | 924 if (NameFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "HT", "", &r
et)) return ret; |
| 780 // TODO(edisonn): warn about missing required field, assert for known good p
dfs | 925 // TODO(edisonn): warn about missing required field, assert for known good p
dfs |
| 781 return ""; | 926 return ""; |
| 782 } | 927 } |
| 783 | 928 |
| 929 /** (Optional; PDF 1.3) The flatness tolerance (see Section 6.5.1, "Flatness Tol
er- |
| 930 * ance"). |
| 931 **/ |
| 932 bool has_FL() const { |
| 933 return (ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "FL",
"", NULL)); |
| 934 } |
| 935 |
| 784 double FL() const { | 936 double FL() const { |
| 785 double ret; | 937 double ret; |
| 786 if (DoubleFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "FL", "",
&ret)) return ret; | 938 if (DoubleFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "FL", "",
&ret)) return ret; |
| 787 // TODO(edisonn): warn about missing required field, assert for known good p
dfs | 939 // TODO(edisonn): warn about missing required field, assert for known good p
dfs |
| 788 return 0; | 940 return 0; |
| 789 } | 941 } |
| 790 | 942 |
| 943 /** (Optional; PDF 1.3) The smoothness tolerance (see Section 6.5.2, "Smooth- |
| 944 * ness Tolerance"). |
| 945 **/ |
| 946 bool has_SM() const { |
| 947 return (ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "SM",
"", NULL)); |
| 948 } |
| 949 |
| 791 double SM() const { | 950 double SM() const { |
| 792 double ret; | 951 double ret; |
| 793 if (DoubleFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "SM", "",
&ret)) return ret; | 952 if (DoubleFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "SM", "",
&ret)) return ret; |
| 794 // TODO(edisonn): warn about missing required field, assert for known good p
dfs | 953 // TODO(edisonn): warn about missing required field, assert for known good p
dfs |
| 795 return 0; | 954 return 0; |
| 796 } | 955 } |
| 797 | 956 |
| 957 /** (Optional) A flag specifying whether to apply automatic stroke adjustment |
| 958 * (see Section 6.5.4, "Automatic Stroke Adjustment"). |
| 959 **/ |
| 960 bool has_SA() const { |
| 961 return (ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "SA",
"", NULL)); |
| 962 } |
| 963 |
| 798 bool SA() const { | 964 bool SA() const { |
| 799 bool ret; | 965 bool ret; |
| 800 if (BoolFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "SA", "", &r
et)) return ret; | 966 if (BoolFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "SA", "", &r
et)) return ret; |
| 801 // TODO(edisonn): warn about missing required field, assert for known good p
dfs | 967 // TODO(edisonn): warn about missing required field, assert for known good p
dfs |
| 802 return false; | 968 return false; |
| 803 } | 969 } |
| 804 | 970 |
| 971 /** (Optional; PDF 1.4) The current blend mode to be used in the transparent |
| 972 * imaging model (see Sections 7.2.4, "Blend Mode," and 7.5.2, "Specifying |
| 973 * Blending Color Space and Blend Mode"). |
| 974 **/ |
| 975 bool has_BM() const { |
| 976 return (ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "BM",
"", NULL)); |
| 977 } |
| 978 |
| 805 bool isBMAName() const { | 979 bool isBMAName() const { |
| 806 SkPdfObject* ret = NULL; | 980 SkPdfObject* ret = NULL; |
| 807 if (!ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "BM", "",
&ret)) return false; | 981 if (!ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "BM", "",
&ret)) return false; |
| 808 return ret->podofo()->GetDataType() == ePdfDataType_Name; | 982 return ret->podofo()->GetDataType() == ePdfDataType_Name; |
| 809 } | 983 } |
| 810 | 984 |
| 811 std::string getBMAsName() const { | 985 std::string getBMAsName() const { |
| 812 std::string ret = ""; | 986 std::string ret = ""; |
| 813 if (NameFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "BM", "", &r
et)) return ret; | 987 if (NameFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "BM", "", &r
et)) return ret; |
| 814 // TODO(edisonn): warn about missing required field, assert for known good p
dfs | 988 // TODO(edisonn): warn about missing required field, assert for known good p
dfs |
| 815 return ""; | 989 return ""; |
| 816 } | 990 } |
| 817 | 991 |
| 818 bool isBMAArray() const { | 992 bool isBMAArray() const { |
| 819 SkPdfObject* ret = NULL; | 993 SkPdfObject* ret = NULL; |
| 820 if (!ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "BM", "",
&ret)) return false; | 994 if (!ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "BM", "",
&ret)) return false; |
| 821 return ret->podofo()->GetDataType() == ePdfDataType_Array; | 995 return ret->podofo()->GetDataType() == ePdfDataType_Array; |
| 822 } | 996 } |
| 823 | 997 |
| 824 SkPdfArray getBMAsArray() const { | 998 SkPdfArray getBMAsArray() const { |
| 825 SkPdfArray ret = SkPdfArray(); | 999 SkPdfArray ret = SkPdfArray(); |
| 826 if (ArrayFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "BM", "", &
ret)) return ret; | 1000 if (ArrayFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "BM", "", &
ret)) return ret; |
| 827 // TODO(edisonn): warn about missing required field, assert for known good p
dfs | 1001 // TODO(edisonn): warn about missing required field, assert for known good p
dfs |
| 828 return SkPdfArray(); | 1002 return SkPdfArray(); |
| 829 } | 1003 } |
| 830 | 1004 |
| 1005 /** (Optional; PDF 1.4) The current soft mask, specifying the mask shape or |
| 1006 * mask opacity values to be used in the transparent imaging model (see |
| 1007 * "Source Shape and Opacity" on page 421 and "Mask Shape and Opacity" on |
| 1008 * page 443). |
| 1009 * Note: Although the current soft mask is sometimes referred to as a "soft cli
p," |
| 1010 * altering it with the gs operator completely replaces the old value with the
new |
| 1011 * one, rather than intersecting the two as is done with the current clipping p
ath |
| 1012 * parameter (see Section 4.4.3, "Clipping Path Operators"). |
| 1013 **/ |
| 1014 bool has_SMask() const { |
| 1015 return (ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "SMask
", "", NULL)); |
| 1016 } |
| 1017 |
| 831 bool isSMaskADictionary() const { | 1018 bool isSMaskADictionary() const { |
| 832 SkPdfObject* ret = NULL; | 1019 SkPdfObject* ret = NULL; |
| 833 if (!ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "SMask",
"", &ret)) return false; | 1020 if (!ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "SMask",
"", &ret)) return false; |
| 834 return ret->podofo()->GetDataType() == ePdfDataType_Dictionary; | 1021 return ret->podofo()->GetDataType() == ePdfDataType_Dictionary; |
| 835 } | 1022 } |
| 836 | 1023 |
| 837 SkPdfDictionary* getSMaskAsDictionary() const { | 1024 SkPdfDictionary* getSMaskAsDictionary() const { |
| 838 SkPdfDictionary* ret = NULL; | 1025 SkPdfDictionary* ret = NULL; |
| 839 if (DictionaryFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "SMask
", "", &ret)) return ret; | 1026 if (DictionaryFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "SMask
", "", &ret)) return ret; |
| 840 // TODO(edisonn): warn about missing required field, assert for known good p
dfs | 1027 // TODO(edisonn): warn about missing required field, assert for known good p
dfs |
| 841 return NULL; | 1028 return NULL; |
| 842 } | 1029 } |
| 843 | 1030 |
| 844 bool isSMaskAName() const { | 1031 bool isSMaskAName() const { |
| 845 SkPdfObject* ret = NULL; | 1032 SkPdfObject* ret = NULL; |
| 846 if (!ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "SMask",
"", &ret)) return false; | 1033 if (!ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "SMask",
"", &ret)) return false; |
| 847 return ret->podofo()->GetDataType() == ePdfDataType_Name; | 1034 return ret->podofo()->GetDataType() == ePdfDataType_Name; |
| 848 } | 1035 } |
| 849 | 1036 |
| 850 std::string getSMaskAsName() const { | 1037 std::string getSMaskAsName() const { |
| 851 std::string ret = ""; | 1038 std::string ret = ""; |
| 852 if (NameFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "SMask", "",
&ret)) return ret; | 1039 if (NameFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "SMask", "",
&ret)) return ret; |
| 853 // TODO(edisonn): warn about missing required field, assert for known good p
dfs | 1040 // TODO(edisonn): warn about missing required field, assert for known good p
dfs |
| 854 return ""; | 1041 return ""; |
| 855 } | 1042 } |
| 856 | 1043 |
| 1044 /** (Optional; PDF 1.4) The current stroking alpha constant, specifying the con- |
| 1045 * stant shape or constant opacity value to be used for stroking operations in
the |
| 1046 * transparent imaging model (see "Source Shape and Opacity" on page 421 |
| 1047 * and "Constant Shape and Opacity" on page 444). |
| 1048 **/ |
| 1049 bool has_CA() const { |
| 1050 return (ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "CA",
"", NULL)); |
| 1051 } |
| 1052 |
| 857 double CA() const { | 1053 double CA() const { |
| 858 double ret; | 1054 double ret; |
| 859 if (DoubleFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "CA", "",
&ret)) return ret; | 1055 if (DoubleFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "CA", "",
&ret)) return ret; |
| 860 // TODO(edisonn): warn about missing required field, assert for known good p
dfs | 1056 // TODO(edisonn): warn about missing required field, assert for known good p
dfs |
| 861 return 0; | 1057 return 0; |
| 862 } | 1058 } |
| 863 | 1059 |
| 1060 /** (Optional; PDF 1.4) Same as CA, but for nonstroking operations. |
| 1061 **/ |
| 1062 bool has_ca() const { |
| 1063 return (ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "ca",
"", NULL)); |
| 1064 } |
| 1065 |
| 864 double ca() const { | 1066 double ca() const { |
| 865 double ret; | 1067 double ret; |
| 866 if (DoubleFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "ca", "",
&ret)) return ret; | 1068 if (DoubleFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "ca", "",
&ret)) return ret; |
| 867 // TODO(edisonn): warn about missing required field, assert for known good p
dfs | 1069 // TODO(edisonn): warn about missing required field, assert for known good p
dfs |
| 868 return 0; | 1070 return 0; |
| 869 } | 1071 } |
| 870 | 1072 |
| 1073 /** (Optional; PDF 1.4) The alpha source flag ("alpha is shape"), specifying |
| 1074 * whether the current soft mask and alpha constant are to be interpreted as |
| 1075 * shape values (true) or opacity values (false). |
| 1076 **/ |
| 1077 bool has_AIS() const { |
| 1078 return (ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "AIS",
"", NULL)); |
| 1079 } |
| 1080 |
| 871 bool AIS() const { | 1081 bool AIS() const { |
| 872 bool ret; | 1082 bool ret; |
| 873 if (BoolFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "AIS", "", &
ret)) return ret; | 1083 if (BoolFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "AIS", "", &
ret)) return ret; |
| 874 // TODO(edisonn): warn about missing required field, assert for known good p
dfs | 1084 // TODO(edisonn): warn about missing required field, assert for known good p
dfs |
| 875 return false; | 1085 return false; |
| 876 } | 1086 } |
| 877 | 1087 |
| 1088 /** (Optional; PDF 1.4) The text knockout flag, which determines the behavior |
| 1089 * of overlapping glyphs within a text object in the transparent imaging model |
| 1090 * (see Section 5.2.7, "Text Knockout"). |
| 1091 **/ |
| 1092 bool has_TK() const { |
| 1093 return (ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "TK",
"", NULL)); |
| 1094 } |
| 1095 |
| 878 bool TK() const { | 1096 bool TK() const { |
| 879 bool ret; | 1097 bool ret; |
| 880 if (BoolFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "TK", "", &r
et)) return ret; | 1098 if (BoolFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "TK", "", &r
et)) return ret; |
| 881 // TODO(edisonn): warn about missing required field, assert for known good p
dfs | 1099 // TODO(edisonn): warn about missing required field, assert for known good p
dfs |
| 882 return false; | 1100 return false; |
| 883 } | 1101 } |
| 884 | 1102 |
| 885 }; | 1103 }; |
| 886 | 1104 |
| 887 #endif // __DEFINED__SkPdfGraphicsStateDictionary | 1105 #endif // __DEFINED__SkPdfGraphicsStateDictionary |
| OLD | NEW |