Compare commits
5 Commits
feature/st
...
29ebb9a8d1
| Author | SHA1 | Date | |
|---|---|---|---|
| 29ebb9a8d1 | |||
| 6cbc9e4d98 | |||
| c7020140f4 | |||
| f551a22819 | |||
| e9a3908ea6 |
@@ -67,13 +67,13 @@ module Ezdoc
|
||||
end
|
||||
|
||||
def register_built_in_styles
|
||||
# Headings
|
||||
define_style :heading1, size: 24, bold: true
|
||||
define_style :heading2, size: 18, bold: true
|
||||
define_style :heading3, size: 14, bold: true
|
||||
define_style :heading4, size: 12, bold: true
|
||||
define_style :heading5, size: 11, bold: true, italic: true
|
||||
define_style :heading6, size: 10, bold: true, italic: true
|
||||
# Headings (spacing_before ensures they're rendered as paragraph styles)
|
||||
define_style :heading1, size: 24, bold: true, spacing_before: 240, spacing_after: 120
|
||||
define_style :heading2, size: 18, bold: true, spacing_before: 200, spacing_after: 100
|
||||
define_style :heading3, size: 14, bold: true, spacing_before: 160, spacing_after: 80
|
||||
define_style :heading4, size: 12, bold: true, spacing_before: 120, spacing_after: 60
|
||||
define_style :heading5, size: 11, bold: true, italic: true, spacing_before: 100, spacing_after: 40
|
||||
define_style :heading6, size: 10, bold: true, italic: true, spacing_before: 80, spacing_after: 40
|
||||
|
||||
# Other built-in styles
|
||||
define_style :title, size: 26, bold: true, align: :center
|
||||
|
||||
@@ -130,27 +130,38 @@ module Ezdoc
|
||||
end
|
||||
|
||||
def render_table(xml, table)
|
||||
column_count = table.rows.first&.cells&.size || 1
|
||||
col_width = 5000 / column_count
|
||||
|
||||
xml["w"].tbl do
|
||||
xml["w"].tblPr do
|
||||
xml["w"].tblW("w:w" => "0", "w:type" => "auto")
|
||||
xml["w"].tblW("w:w" => "5000", "w:type" => "pct")
|
||||
xml["w"].tblBorders do
|
||||
%w[top left bottom right insideH insideV].each do |border|
|
||||
xml["w"].send(border, "w:val" => "single", "w:sz" => "4", "w:color" => "000000")
|
||||
xml["w"].send(border, "w:val" => "single", "w:sz" => "4", "w:space" => "0", "w:color" => "000000")
|
||||
end
|
||||
end
|
||||
end
|
||||
table.rows.each { |row| render_table_row(xml, row) }
|
||||
xml["w"].tblGrid do
|
||||
column_count.times do
|
||||
xml["w"].gridCol("w:w" => col_width.to_s)
|
||||
end
|
||||
end
|
||||
table.rows.each { |row| render_table_row(xml, row, col_width) }
|
||||
end
|
||||
end
|
||||
|
||||
def render_table_row(xml, row)
|
||||
def render_table_row(xml, row, col_width)
|
||||
xml["w"].tr do
|
||||
row.cells.each { |cell| render_table_cell(xml, cell) }
|
||||
row.cells.each { |cell| render_table_cell(xml, cell, col_width) }
|
||||
end
|
||||
end
|
||||
|
||||
def render_table_cell(xml, cell)
|
||||
def render_table_cell(xml, cell, col_width)
|
||||
xml["w"].tc do
|
||||
xml["w"].tcPr do
|
||||
xml["w"].tcW("w:w" => col_width.to_s, "w:type" => "pct")
|
||||
end
|
||||
xml["w"].p do
|
||||
cell.runs.each { |run| render_run(xml, run) }
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user