Sha256: fa0d054f84b047ae68c3992e047d94dd36f7f0174d54960f5fe2dafd5a3fa800
Contents?: true
Size: 1.31 KB
Versions: 3
Compression:
Stored size: 1.31 KB
Contents
# # Column Box # # This example shows how [HexaPDF::Layout::ColumnBox] can be used to place # contents into columns. # # Three boxes are placed repeatedly onto the frame until it is filled: two # floating boxes (one left, one right) and a text box. The text box is styled to # flow its content around the other two boxes. # # Usage: # : `ruby column_box.rb` # require 'hexapdf' doc = HexaPDF::Document.new page = doc.pages.add page_box = page.box frame = HexaPDF::Layout::Frame.new(page_box.left + 20, page_box.bottom + 20, page_box.width - 40, page_box.height - 40) polygon = Geom2D::Polygon([200, 350], [400, 350], [400, 450], [200, 450]) frame.remove_area(polygon) page.canvas.draw(:geom2d, object: polygon) columns = doc.layout.column(columns: 2, style: {position: :flow}) do |column| 5.times do column.image(File.join(__dir__, 'machupicchu.jpg'), width: 100, style: {margin: [10, 30], position: :float}) column.box(:base, width: 50, height: 50, style: {margin: 20, position: :float, position_hint: :right, border: {width: 1, color: [[255, 0, 0]]}}) column.lorem_ipsum(count: 2, position: :flow, align: :justify) end end result = frame.fit(columns) frame.draw(page.canvas, result) doc.write("column_box.pdf", optimize: true)
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
hexapdf-0.32.2 | examples/020-column_box.rb |
hexapdf-0.32.1 | examples/020-column_box.rb |
hexapdf-0.32.0 | examples/020-column_box.rb |