Spaces:
Sleeping
Sleeping
processmaker-community / processmaker-files /thirdparty /html2ps_pdf /postscript /background.image.ps
| /background-image-create { % => Data-or-/null | |
| dup /null eq { % => /null | |
| } { % => Mask Image Init SY SX | |
| image-create | |
| } ifelse | |
| } def | |
| /background-image-show { % => Position Repeat Box Viewport Image | |
| dup /null ne { | |
| % Setup clipping region for padding area | |
| gsave | |
| 2 index get-left-padding | |
| 3 index get-bottom-padding | |
| 4 index get-right-padding | |
| 5 index get-left-padding sub | |
| 5 index get-top-padding | |
| 6 index get-bottom-padding sub | |
| rectclip | |
| % Determine the vertical an horizontal offset for the image | |
| 2 index /get-width call-method | |
| 3 index get-padding-left add | |
| 3 index get-padding-right add % => Position Repeat box viewport Image PaddingWidth | |
| 3 index get-height | |
| 4 index get-padding-top add | |
| 4 index get-padding-bottom add % => Position Repeat box viewport Image PaddingWidth PadingHeight | |
| 6 index /x get /percentage get { | |
| 1 index % => Position Repeat box viewport Image PaddingWidth PadingHeight PaddingWidth | |
| 3 index /SX get px sub % => Position Repeat box viewport Image PaddingWidth PadingHeight (PaddingWidth-ImageWidth*px) | |
| 7 index /x get /value get mul 100 div | |
| } { | |
| 6 index /x get /value get | |
| } ifelse % => Position Repeat box viewport Image PaddingWidth PadingHeight XOffset | |
| 7 index /y get /percentage get { | |
| 1 index % => Position Repeat box viewport Image PaddingWidth PadingHeight XOffset PaddingHeight | |
| 4 index /SY get px sub | |
| 8 index /y get /value get mul 100 div | |
| } { | |
| 7 index /y get /value get | |
| } ifelse % => Position Repeat box viewport Image PaddingWidth PadingHeight XOffset YOffset | |
| % NOTE: px2pt(1) make a scaing factor for PDF output | |
| % NOTE: background-image is positioned relative to PADDING corner and drawn in the PADDING area! | |
| { % => Position Repeat box viewport Image PaddingWidth PadingHeight XOffset YOffset | |
| 7 index % => Position Repeat box viewport Image PaddingWidth PadingHeight XOffset YOffset Repeat | |
| dup /no-repeat eq { | |
| pop | |
| 1 px % => Position Repeat box viewport Image PaddingWidth PadingHeight XOffset YOffset Scale | |
| 7 index get-top-padding | |
| 6 index /SY get px sub | |
| 1 index sub % => Position Repeat box viewport Image PaddingWidth PadingHeight XOffset YOffset Scale Y | |
| 8 index get-left-padding | |
| 4 index add % => Position Repeat box viewport Image PaddingWidth PadingHeight XOffset YOffset Scale Y X | |
| 7 index | |
| image-show-simple | |
| exit | |
| } if | |
| dup /repeat-x eq { | |
| pop | |
| 1 px % => Position Repeat box viewport Image PaddingWidth PadingHeight XOffset YOffset Scale | |
| 1 index | |
| 3 index % => Position Repeat box viewport Image PaddingWidth PadingHeight XOffset YOffset | |
| % Scale YOffset XOffset | |
| 9 index get-right-padding % => Position Repeat box viewport Image PaddingWidth PadingHeight XOffset YOffset | |
| % Scale YOffset XOffset TX | |
| 8 index /SX get px % => Position Repeat box viewport Image PaddingWidth PadingHeight XOffset YOffset | |
| % Scale YOffset XOffset TX SX | |
| 11 index get-top-padding | |
| 10 index /SY get px sub | |
| 4 index sub % => Position Repeat box viewport Image PaddingWidth PadingHeight XOffset YOffset | |
| % Scale YOffset XOffset TX SX Y | |
| 12 index get-left-padding | |
| 4 index add % => Position Repeat box viewport Image PaddingWidth PadingHeight XOffset YOffset | |
| % Scale YOffset XOffset TX SX Y X | |
| 11 index % => Position Repeat box viewport Image PaddingWidth PadingHeight XOffset YOffset | |
| % Scale YOffset XOffset TX SX Y X Image | |
| image-show-repeat-x | |
| exit | |
| } if | |
| dup /repeat-y eq { | |
| pop | |
| 1 px % => Position Repeat box viewport Image PaddingWidth PadingHeight XOffset YOffset Scale | |
| 1 index | |
| 3 index % => Position Repeat box viewport Image PaddingWidth PadingHeight XOffset YOffset | |
| % Scale YOffset XOffset | |
| 9 index get-bottom-padding % => Position Repeat box viewport Image PaddingWidth PadingHeight XOffset YOffset | |
| % Scale YOffset XOffset TX | |
| 8 index /SY get px % => Position Repeat box viewport Image PaddingWidth PadingHeight XOffset YOffset | |
| % Scale YOffset XOffset TX SX | |
| 11 index get-top-padding | |
| 10 index /SY get px sub | |
| 4 index sub % => Position Repeat box viewport Image PaddingWidth PadingHeight XOffset YOffset | |
| % Scale YOffset XOffset TX SX Y | |
| 12 index get-left-padding | |
| 4 index add % => Position Repeat box viewport Image PaddingWidth PadingHeight XOffset YOffset | |
| % Scale YOffset XOffset TX SX Y X | |
| 11 index % => Position Repeat box viewport Image PaddingWidth PadingHeight XOffset YOffset | |
| % Scale YOffset XOffset TX SX Y X Image | |
| image-show-repeat-y | |
| exit | |
| } if | |
| % /repeat (default) | |
| pop | |
| 1 px % => Position Repeat box viewport Image PaddingWidth PadingHeight XOffset YOffset | |
| % Scale | |
| 1 index 3 index % => Position Repeat box viewport Image PaddingWidth PadingHeight XOffset YOffset | |
| % Scale YOffset XOffset | |
| 9 index get-bottom-padding % => Position Repeat box viewport Image PaddingWidth PadingHeight XOffset YOffset | |
| % Scale YOffset XOffset TY | |
| 10 index get-right-padding % => Position Repeat box viewport Image PaddingWidth PadingHeight XOffset YOffset | |
| % Scale YOffset XOffset TY TX | |
| 9 index /SY get px % => Position Repeat box viewport Image PaddingWidth PadingHeight XOffset YOffset | |
| % Scale YOffset XOffset TY TX SY | |
| 10 index /SX get px % => Position Repeat box viewport Image PaddingWidth PadingHeight XOffset YOffset | |
| % Scale YOffset XOffset TY TX SY SX | |
| 13 index get-top-padding | |
| 12 index /SY get px sub | |
| 6 index add % => Position Repeat box viewport Image PaddingWidth PadingHeight XOffset YOffset | |
| % Scale YOffset XOffset TY TX SY SX Y | |
| 14 index get-left-padding | |
| 6 index add % => Position Repeat box viewport Image PaddingWidth PadingHeight XOffset YOffset | |
| % Scale YOffset XOffset TY TX SY SX Y X | |
| 13 index % => Position Repeat box viewport Image PaddingWidth PadingHeight XOffset YOffset | |
| % Scale YOffset XOffset TY TX SY SX Y X | |
| image-show-repeat-xy % => Position Repeat box viewport Image PaddingWidth PadingHeight XOffset YOffset | |
| exit | |
| } loop % => Position Repeat box viewport Image PaddingWidth PadingHeight XOffset YOffset | |
| pop pop pop pop | |
| % return to the previous clipping area | |
| grestore | |
| } if % => Position Repeat Box Viewport Image | |
| pop pop pop pop pop | |
| } def |