Sha256: f559489b316e6c7721f24546240b8cf19582626610b518cd9e381e7d11a6498b
Contents?: true
Size: 1.41 KB
Versions: 5
Compression:
Stored size: 1.41 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) boxes = [] 5.times do boxes << doc.layout.image_box(File.join(__dir__, 'machupicchu.jpg'), width: 100, style: {margin: [10, 30], position: :float}) boxes << HexaPDF::Layout::Box.create(width: 50, height: 50, margin: 20, position: :float, position_hint: :right, border: {width: 1, color: [[255, 0, 0]]}) boxes << doc.layout.lorem_ipsum_box(count: 2, position: :flow, align: :justify) end polygon = Geom2D::Polygon([200, 350], [400, 350], [400, 450], [200, 450]) frame.remove_area(polygon) page.canvas.draw(:geom2d, object: polygon) columns = doc.layout.box(:column, children: boxes, columns: 2, style: {position: :flow}) result = frame.fit(columns) frame.draw(page.canvas, result) doc.write("column_box.pdf", optimize: true)
Version data entries
5 entries across 5 versions & 1 rubygems