Spaces:
Sleeping
Sleeping
processmaker-community / processmaker-files /thirdparty /html2ps_pdf /postscript /box.inline.whitespace.ps
| % $Header: /cvsroot/html2ps/postscript/box.inline.whitespace.ps,v 1.1 2005/12/18 07:21:36 Konstantin Exp $ | |
| % Whitespace flow control function. Do nothing if whitespace is at the beginning of the line box | |
| % make a inline box containining space symbol otherwise. | |
| /flow-whitespace { % => Parent Child | |
| 1 index get-current-x | |
| 2 index get-current-y % => Parent Child X Y | |
| 2 index | |
| move-to-box % => Parent Child | |
| % Check if there are any boxes in parent's line box | |
| 1 index | |
| get-line | |
| length 0 gt { | |
| % there's some boxes in the parent's line box already | |
| % just make a space (if previous inline box wasn't a whitespace!) | |
| 1 index get-line | |
| dup length 1 sub get % => Parent Child LastInlineBox | |
| get-box-dict | |
| /Display get | |
| /inline-whitespace ne { | |
| dup get-default-baseline | |
| 1 index put-baseline | |
| apply-line-height | |
| dup get-vertical-align exec | |
| dup /get-width call-method | |
| 2 index get-current-x | |
| add | |
| 2 index put-current-x | |
| } { | |
| % Duplicate whitespace boxes should not offset further content and affect the line box length | |
| 0 1 index put-width | |
| % Make whitespace correctly aligned relative to the baseline | |
| dup get-vertical-align exec | |
| } ifelse | |
| } { | |
| % The very first whitespace in the line box should not affect neither height nor baseline of the line box; | |
| % because following boxes can be smaller that assumed whitespace height | |
| % Example: <br>[whitespace]<img height="2" width="2"><br>; whitespace can overextend this line | |
| 0 1 index put-height | |
| % Aslo, the very first whitespace should not offset further content and affect the line box length | |
| 0 1 index put-width | |
| } ifelse | |
| dup 2 index append-line | |
| % dup get-baseline | |
| % 1 index get-default-baseline | |
| % sub | |
| % 1 index get-full-height | |
| % add | |
| dup get-full-height | |
| exch pop | |
| extend-height % => Parent | |
| pop | |
| } def | |
| /make-whitespace-box { % => FontSize FontName | |
| ( ) | |
| 2 index 2 index | |
| make-text-box % => FontSize FontName Box | |
| {flow-whitespace} | |
| 1 index put-flow-fun % => FontSize FontName Box | |
| dup get-box-dict | |
| /Display /inline-whitespace put | |
| 3 1 roll | |
| pop pop | |
| } def | |