GD::Text::Wrap.3pm
上传用户:qdrechuli
上传日期:2022-08-01
资源大小:917k
文件大小:9k
源码类别:

视频捕捉/采集

开发平台:

Visual C++

  1. ." Automatically generated by Pod::Man version 1.15
  2. ." Tue Oct  8 11:46:53 2002
  3. ."
  4. ." Standard preamble:
  5. ." ======================================================================
  6. .de Sh " Subsection heading
  7. .br
  8. .if t .Sp
  9. .ne 5
  10. .PP
  11. fB\$1fR
  12. .PP
  13. ..
  14. .de Sp " Vertical space (when we can't use .PP)
  15. .if t .sp .5v
  16. .if n .sp
  17. ..
  18. .de Ip " List item
  19. .br
  20. .ie \n(.$>=3 .ne \$3
  21. .el .ne 3
  22. .IP "\$1" \$2
  23. ..
  24. .de Vb " Begin verbatim text
  25. .ft CW
  26. .nf
  27. .ne \$1
  28. ..
  29. .de Ve " End verbatim text
  30. .ft R
  31. .fi
  32. ..
  33. ." Set up some character translations and predefined strings.  *(-- will
  34. ." give an unbreakable dash, *(PI will give pi, *(L" will give a left
  35. ." double quote, and *(R" will give a right double quote.  | will give a
  36. ." real vertical bar.  *(C+ will give a nicer C++.  Capital omega is used
  37. ." to do unbreakable dashes and therefore won't be available.  *(C` and
  38. ." *(C' expand to `' in nroff, nothing in troff, for use with C<>
  39. .tr (*W-|(bv*(Tr
  40. .ds C+ Cv'-.1v'h'-1p's-2+h'-1p'+s0v'.1v'h'-1p'
  41. .ie n {
  42. .    ds -- (*W-
  43. .    ds PI pi
  44. .    if (n(.H=4u)&(1m=24u) .ds -- (*Wh'-12u'(*Wh'-12u'-" diablo 10 pitch
  45. .    if (n(.H=4u)&(1m=20u) .ds -- (*Wh'-12u'(*Wh'-8u'-"  diablo 12 pitch
  46. .    ds L" ""
  47. .    ds R" ""
  48. .    ds C` ""
  49. .    ds C' ""
  50. 'br}
  51. .el{
  52. .    ds -- |(em|
  53. .    ds PI (*p
  54. .    ds L" ``
  55. .    ds R" ''
  56. 'br}
  57. ."
  58. ." If the F register is turned on, we'll generate index entries on stderr
  59. ." for titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and
  60. ." index entries marked with X<> in POD.  Of course, you'll have to process
  61. ." the output yourself in some meaningful fashion.
  62. .if nF {
  63. .    de IX
  64. .    tm Index:\$1t\n%t"\$2"
  65. ..
  66. .    nr % 0
  67. .    rr F
  68. .}
  69. ."
  70. ." For nroff, turn off justification.  Always turn off hyphenation; it
  71. ." makes way too many mistakes in technical documents.
  72. .hy 0
  73. .if n .na
  74. ."
  75. ." Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
  76. ." Fear.  Run.  Save yourself.  No user-serviceable parts.
  77. .bd B 3
  78. .    " fudge factors for nroff and troff
  79. .if n {
  80. .    ds #H 0
  81. .    ds #V .8m
  82. .    ds #F .3m
  83. .    ds #[ f1
  84. .    ds #] fP
  85. .}
  86. .if t {
  87. .    ds #H ((1u-(\\n(.fu%2u))*.13m)
  88. .    ds #V .6m
  89. .    ds #F 0
  90. .    ds #[ &
  91. .    ds #] &
  92. .}
  93. .    " simple accents for nroff and troff
  94. .if n {
  95. .    ds ' &
  96. .    ds ` &
  97. .    ds ^ &
  98. .    ds , &
  99. .    ds ~ ~
  100. .    ds /
  101. .}
  102. .if t {
  103. .    ds ' \k:h'-(\n(.wu*8/10-*(#H)''h"|\n:u"
  104. .    ds ` \k:h'-(\n(.wu*8/10-*(#H)'`h'|\n:u'
  105. .    ds ^ \k:h'-(\n(.wu*10/11-*(#H)'^h'|\n:u'
  106. .    ds , \k:h'-(\n(.wu*8/10)',h'|\n:u'
  107. .    ds ~ \k:h'-(\n(.wu-*(#H-.1m)'~h'|\n:u'
  108. .    ds / \k:h'-(\n(.wu*8/10-*(#H)'z(slh'|\n:u'
  109. .}
  110. .    " troff and (daisy-wheel) nroff accents
  111. .ds : \k:h'-(\n(.wu*8/10-*(#H+.1m+*(#F)'v'-*(#V'z.h'.2m+*(#F'.h'|\n:u'v'*(#V'
  112. .ds 8 h'*(#H'(*bh'-*(#H'
  113. .ds o \k:h'-(\n(.wu+w'(de'u-*(#H)/2u'v'-.3n'*(#[z(dev'.3n'h'|\n:u'*(#]
  114. .ds d- h'*(#H'(pdh'-w'~'u'v'-.25m'f2(hyfPv'.25m'h'-*(#H'
  115. .ds D- D\k:h'-w'D'u'v'-.11m'z(hyv'.11m'h'|\n:u'
  116. .ds th *(#[v'.3m's+1Is-1v'-.3m'h'-(w'I'u*2/3)'s-1os+1*(#]
  117. .ds Th *(#[s+2Is-2h'-w'I'u*3/5'v'-.3m'ov'.3m'*(#]
  118. .ds ae ah'-(w'a'u*4/10)'e
  119. .ds Ae Ah'-(w'A'u*4/10)'E
  120. .    " corrections for vroff
  121. .if v .ds ~ \k:h'-(\n(.wu*9/10-*(#H)'s-2u~ds+2h'|\n:u'
  122. .if v .ds ^ \k:h'-(\n(.wu*10/11-*(#H)'v'-.4m'^v'.4m'h'|\n:u'
  123. .    " for low resolution devices (crt and lpr)
  124. .if n(.H>23 .if n(.V>19 
  125. {
  126. .    ds : e
  127. .    ds 8 ss
  128. .    ds o a
  129. .    ds d- dh'-1'(ga
  130. .    ds D- Dh'-1'(hy
  131. .    ds th o'bp'
  132. .    ds Th o'LP'
  133. .    ds ae ae
  134. .    ds Ae AE
  135. .}
  136. .rm #[ #] #H #V #F C
  137. ." ======================================================================
  138. ."
  139. .IX Title "Text::Wrap 3"
  140. .TH Text::Wrap 3 "perl v5.6.1" "2000-09-18" "User Contributed Perl Documentation"
  141. .UC
  142. .SH "NAME"
  143. &s-1GD:s0:Text::Wrap - Wrap strings in boxes
  144. .SH "SYNOPSIS"
  145. .IX Header "SYNOPSIS"
  146. .Vb 2
  147. &  use GD;
  148. &  use GD::Text::Wrap;
  149. .Ve
  150. .Vb 2
  151. &  my $gd = GD::Image->new(800,600);
  152. &  # allocate colours, do other things.
  153. .Ve
  154. .Vb 5
  155. &  my $text = <<EOSTR;
  156. &  Lorem ipsum dolor sit amet, consectetuer adipiscing elit, 
  157. &  sed diam nonummy nibh euismod tincidunt ut laoreet dolore 
  158. &  magna aliquam erat volutpat.
  159. &  EOSTR
  160. .Ve
  161. .Vb 9
  162. &  my $wrapbox = GDTextWrap->new( $gd,
  163. &      line_space  => 4,
  164. &      color       => $black,
  165. &      text        => $text,
  166. &  );
  167. &  $wrapbox->set_font(gdMediumBoldFont);
  168. &  $wrapbox->set_font('cetus.ttf', 12);
  169. &  $wrapbox->set(align => 'left', width => 120);
  170. &  $wrapbox->draw(10,140);
  171. .Ve
  172. .Vb 1
  173. &  $gd->rectangle($wrap_box->get_bounds(10,140), $color);
  174. .Ve
  175. .SH "DESCRIPTION"
  176. .IX Header "DESCRIPTION"
  177. &s-1GD:s0:Text::Wrap provides an object that draws a formatted paragraph of
  178. text in a box on a s-1GD:s0:Image canvas, using either a builtin s-1GDs0 font
  179. or a TrueType font.
  180. .SH "METHODS"
  181. .IX Header "METHODS"
  182. This class doesn't inherit from s-1GD:s0:Text directly, but delegates most of
  183. its work to it (in fact to a s-1GD:s0:Text::Align object. That means that
  184. most of the s-1GD:s0:Text::Align methods are available for this class,
  185. specifically f(CW*(C`set_font*(C'fR and f(CW*(C`font_path*(C'fR. Other methods and methods
  186. with a different interface are described here:
  187. .Sh "s-1GD:s0:Text::Wrap->new( f(CW$gd_objectfP, attribute => value, ... )"
  188. .IX Subsection "GD::Text::Wrap->new( $gd_object, attribute => value, ... )"
  189. Create a new object. The first argument to new has to be a valid
  190. &s-1GD:s0:Image object. The other arguments will be passed to the fIset()fR method
  191. for initialisation of the attributes.
  192. .Sh "$wrapbox->set( attribute => value, ... )"
  193. .IX Subsection "$wrapbox->set( attribute => value, ... )"
  194. set the value for an attribute. Valid attributes are:
  195. .Ip "width" 4
  196. .IX Item "width"
  197. The width of the box to draw the text in. If unspecified, they will
  198. default to the width of the s-1GD:s0:Image object.
  199. .Ip "line_space" 4
  200. .IX Item "line_space"
  201. The number of pixels between lines. Defaults to 2.
  202. .Ip "para_space, paragraph_space" 4
  203. .IX Item "para_space, paragraph_space"
  204. The number of extra pixels between paragraphs, above line_space.
  205. Defaults to 0.
  206. .Ip "color, colour" 4
  207. .IX Item "color, colour"
  208. Synonyms. The colour to use when drawing the font. Will be initialised
  209. to the last colour in the s-1GDs0 object's palette.
  210. .Ip "align, alignment" 4
  211. .IX Item "align, alignment"
  212. Synonyms. One of 'justified' (the default), 'left', 'right' or 'center'.
  213. .Ip "text" 4
  214. .IX Item "text"
  215. The text to draw. This is the only attribute that you absolutely have to
  216. set.
  217. .Ip "preserve_nl" 4
  218. .IX Item "preserve_nl"
  219. If set to a true value, newlines in the text will cause a line break.
  220. Note that lines will still be justified. If only one word appears on
  221. the line, it could get ugly.
  222. Defaults to 0.
  223. .PP
  224. As with the methods, attributes unknown to this class get delegated to
  225. the s-1GD:s0:Text::Align class. 
  226. .Sh "$wrapbox->get( attribute );"
  227. .IX Subsection "$wrapbox->get( attribute );"
  228. Get the current value of an attribute. All attributes mentioned under
  229. the f(CW*(C`set()*(C'fR method can be retrieved
  230. .Sh "$wrapbox->fIget_bounds()fP"
  231. .IX Subsection "$wrapbox->get_bounds()"
  232. Returns the bounding box of the box that will be drawn with the current
  233. attribute settings as a list. The values returned are the coordinates of
  234. the upper left and lower right corner.
  235. .PP
  236. .Vb 1
  237. &        ($left, $top, $right, $bottom) = $wrapbox->get_bounds();
  238. .Ve
  239. Returns an empty list on error.
  240. .PP
  241. &s-1NOTE:s0 The return list of this method may change in a future
  242. implementation that allows angled boxes.
  243. .Sh "$wrapbox->draw(x, y)"
  244. .IX Subsection "$wrapbox->draw(x, y)"
  245. Draw the box, with (x,y) as the top right corner. 
  246. Returns the same values as the f(CW*(C`getbounds()*(C'fR method.
  247. .PP
  248. &s-1NOTE:s0 The return list of this method may change in a future
  249. implementation that allows angled boxes.
  250. .SH "NOTES"
  251. .IX Header "NOTES"
  252. As with all Modules for Perl: Please stick to using the interface. If
  253. you try to fiddle too much with knowledge of the internals of this
  254. module, you may get burned. I may change them at any time.
  255. .PP
  256. You can only use TrueType fonts with version of s-1GDs0 > 1.20, and then
  257. only if compiled with support for this. If you attempt to do it
  258. anyway, you will get errors.
  259. .PP
  260. Even though this module lives in the s-1GD:s0:Text namespace, it is not a
  261. &s-1GD:s0:Text. It does however delegate a lot of its functionality to a
  262. contained object that is one (s-1GD:s0:Text::Align).
  263. .SH "BUGS"
  264. .IX Header "BUGS"
  265. None that I know of, but that doesn't mean much. There may be some
  266. problems with exotic fonts, or locales and character encodings that I am
  267. not used to.
  268. .SH "TODO"
  269. .IX Header "TODO"
  270. Angled boxes.
  271. .PP
  272. At the moment, the only bit of the box that is allowed to be unspecified
  273. and in fact must be unspecified, is the bottom. If there is enough need
  274. for it, I might implement more flexibility, in that that you need to
  275. only specify three of the four sides of the box, and the fourth will
  276. be calculated.
  277. .PP
  278. Automatic resizing of a TrueType font to fit inside a box when four
  279. sides are specified, or maybe some other nifty things.
  280. .PP
  281. More flexibility in the interface. Especially draw needs some thought.
  282. .PP
  283. More and better error handling.
  284. .PP
  285. Warnings for lines that are too long and stick out of the box.
  286. Warning for emptyish lines?
  287. .SH "COPYRIGHT"
  288. .IX Header "COPYRIGHT"
  289. copyright 1999
  290. Martien Verbruggen (mgjv@comdyn.com.au)
  291. .SH "SEE ALSO"
  292. .IX Header "SEE ALSO"
  293. the GD manpage, the GD::Text manpage, the GD::Text::Align manpage