File: line_wrapping.rb

package info (click to toggle)
ruby-prawn 2.2.0%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 4,320 kB
  • sloc: ruby: 15,654; sh: 43; makefile: 20
file content (57 lines) | stat: -rw-r--r-- 3,069 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# Line wrapping happens on white space or hyphens. Soft hyphens can be used to
# indicate where words can be hyphenated. Non-breaking spaces can be used to
# display space without allowing for a break.
#
# For writing styles that do not make use of spaces, the zero width space serves
# to mark word boundaries. Zero width spaces are available only with TTF fonts.

require_relative '../example_helper'

filename = File.basename(__FILE__).gsub('.rb', '.pdf')
Prawn::ManualBuilder::Example.generate(filename) do
  text "Hard hyphens:\n" \
    'Slip-sliding away, slip sliding awaaaay. You know the ' \
    "nearer your destination the more you're slip-sliding away."
  move_down 20

  shy = Prawn::Text::SHY
  text "Soft hyphens:\n" \
    "Slip slid#{shy}ing away, slip slid#{shy}ing away. You know the " \
    "nearer your destinat#{shy}ion the more you're slip slid#{shy}ing away."
  move_down 20

  nbsp = Prawn::Text::NBSP
  text "Non-breaking spaces:\n" \
    "Slip#{nbsp}sliding away, slip#{nbsp}sliding awaaaay. You know the " \
    "nearer your destination the more you're slip#{nbsp}sliding away."
  move_down 20

  font("/usr/share/fonts/truetype/arphic-gkai00mp/gkai00mp.ttf", size: 16) do
    long_text = "No word boundaries:\n更可怕的是,"\
      '同质化竞争对手可以按照URL中后面这个ID来遍历您的DB中的内容,'\
      '写个小爬虫把你的页面上的关键信息顺次爬下来也不是什么难事,'\
      '这样的话,你就非常被动了。更可怕的是,'\
      '同质化竞争对手可以按照URL中后面这个ID来遍历您的DB中的内容,'\
      '写个小爬虫把你的页面上的关键信息顺次爬下来也不是什么难事,'\
      '这样的话,你就非常被动了。'
    text long_text
    move_down 20

    zwsp = Prawn::Text::ZWSP
    long_text = "Invisible word boundaries:\n更#{zwsp}可怕的#{zwsp}是,"\
      "#{zwsp}同质化#{zwsp}竞争#{zwsp}对#{zwsp}手#{zwsp}可以#{zwsp}按照#{zwsp}"\
      "URL#{zwsp}中#{zwsp}后面#{zwsp}这个#{zwsp}ID#{zwsp}来#{zwsp}遍历#{zwsp}"\
      "您的#{zwsp}DB#{zwsp}中的#{zwsp}内容,#{zwsp}写个#{zwsp}小爬虫#{zwsp}把"\
      "#{zwsp}你的#{zwsp}页面#{zwsp}上的#{zwsp}关#{zwsp}键#{zwsp}信#{zwsp}息顺"\
      "#{zwsp}次#{zwsp}爬#{zwsp}下来#{zwsp}也#{zwsp}不是#{zwsp}什么#{zwsp}"\
      "难事,#{zwsp}这样的话,#{zwsp}你#{zwsp}就#{zwsp}非常#{zwsp}被动了。"\
      "#{zwsp}更#{zwsp}可怕的#{zwsp}是,#{zwsp}同质化#{zwsp}竞争#{zwsp}对"\
      "#{zwsp}手#{zwsp}可以#{zwsp}按照#{zwsp}URL#{zwsp}中#{zwsp}后面#{zwsp}"\
      "这个#{zwsp}ID#{zwsp}来#{zwsp}遍历#{zwsp}您的#{zwsp}DB#{zwsp}中的#{zwsp}"\
      "内容,#{zwsp}写个#{zwsp}小爬虫#{zwsp}把#{zwsp}你的#{zwsp}页面#{zwsp}"\
      "上的#{zwsp}关#{zwsp}键#{zwsp}信#{zwsp}息顺#{zwsp}次#{zwsp}爬#{zwsp}下来"\
      "#{zwsp}也#{zwsp}不是#{zwsp}什么#{zwsp}难事,#{zwsp}这样的话,#{zwsp}你"\
      "#{zwsp}就#{zwsp}非常#{zwsp}被动了。"
    text long_text
  end
end