From f0b33fa19b196957e369b562eaa073b2eb21f783 Mon Sep 17 00:00:00 2001 From: bokuweb Date: Wed, 13 Nov 2019 13:55:58 +0900 Subject: [PATCH] fix: Table property --- docx-core/src/documents/elements/table.rs | 2 +- .../src/documents/elements/table_borders.rs | 8 +- .../src/documents/elements/table_cell.rs | 7 +- .../documents/elements/table_cell_borders.rs | 22 +- .../documents/elements/table_cell_property.rs | 29 +- .../src/documents/elements/table_property.rs | 12 +- docx-core/src/documents/elements/table_row.rs | 2 +- docx-core/src/documents/mod.rs | 5 + docx-core/src/types/mod.rs | 2 + docx-core/src/types/table_alignment_type.rs | 20 ++ docx-core/src/types/width_type.rs | 2 + docx-core/tests/lib.rs | 19 ++ fixtures/table_docx/[Content_Types].xml | 1 + fixtures/table_docx/_rels/.rels | 1 + fixtures/table_docx/docProps/app.xml | 1 + fixtures/table_docx/docProps/core.xml | 1 + fixtures/table_docx/table.docx | Bin 0 -> 6529 bytes .../table_docx/word/_rels/document.xml.rels | 1 + .../table_docx/word/_rels/footer1.xml.rels | 1 + .../table_docx/word/_rels/header1.xml.rels | 1 + fixtures/table_docx/word/document.xml | 185 +++++++++++++ fixtures/table_docx/word/footer1.xml | 1 + fixtures/table_docx/word/footnotes.xml | 1 + fixtures/table_docx/word/header1.xml | 1 + fixtures/table_docx/word/numbering.xml | 1 + fixtures/table_docx/word/settings.xml | 1 + fixtures/table_docx/word/styles.xml | 1 + fixtures/table_libre_office/table.docx | Bin 4499 -> 4523 bytes .../table_word_online/[Content_Types].xml | 1 + fixtures/table_word_online/_rels/.rels | 1 + fixtures/table_word_online/docProps/app.xml | 1 + fixtures/table_word_online/docProps/core.xml | 1 + fixtures/table_word_online/table.docx | Bin 0 -> 11807 bytes .../word/_rels/document2.xml.rels | 1 + fixtures/table_word_online/word/document2.xml | 119 ++++++++ fixtures/table_word_online/word/fontTable.xml | 1 + fixtures/table_word_online/word/settings.xml | 1 + fixtures/table_word_online/word/styles.xml | 1 + .../table_word_online/word/theme/theme1.xml | 259 ++++++++++++++++++ .../table_word_online/word/webSettings.xml | 2 + 40 files changed, 663 insertions(+), 53 deletions(-) create mode 100644 docx-core/src/types/table_alignment_type.rs create mode 100644 fixtures/table_docx/[Content_Types].xml create mode 100644 fixtures/table_docx/_rels/.rels create mode 100644 fixtures/table_docx/docProps/app.xml create mode 100644 fixtures/table_docx/docProps/core.xml create mode 100644 fixtures/table_docx/table.docx create mode 100644 fixtures/table_docx/word/_rels/document.xml.rels create mode 100644 fixtures/table_docx/word/_rels/footer1.xml.rels create mode 100644 fixtures/table_docx/word/_rels/header1.xml.rels create mode 100644 fixtures/table_docx/word/document.xml create mode 100644 fixtures/table_docx/word/footer1.xml create mode 100644 fixtures/table_docx/word/footnotes.xml create mode 100644 fixtures/table_docx/word/header1.xml create mode 100644 fixtures/table_docx/word/numbering.xml create mode 100644 fixtures/table_docx/word/settings.xml create mode 100644 fixtures/table_docx/word/styles.xml create mode 100644 fixtures/table_word_online/[Content_Types].xml create mode 100644 fixtures/table_word_online/_rels/.rels create mode 100644 fixtures/table_word_online/docProps/app.xml create mode 100644 fixtures/table_word_online/docProps/core.xml create mode 100644 fixtures/table_word_online/table.docx create mode 100644 fixtures/table_word_online/word/_rels/document2.xml.rels create mode 100644 fixtures/table_word_online/word/document2.xml create mode 100644 fixtures/table_word_online/word/fontTable.xml create mode 100644 fixtures/table_word_online/word/settings.xml create mode 100644 fixtures/table_word_online/word/styles.xml create mode 100644 fixtures/table_word_online/word/theme/theme1.xml create mode 100644 fixtures/table_word_online/word/webSettings.xml diff --git a/docx-core/src/documents/elements/table.rs b/docx-core/src/documents/elements/table.rs index fdcfdab..dcc4bba 100644 --- a/docx-core/src/documents/elements/table.rs +++ b/docx-core/src/documents/elements/table.rs @@ -38,7 +38,7 @@ mod tests { let b = Table::new(vec![TableRow::new(vec![])]).build(); assert_eq!( str::from_utf8(&b).unwrap(), - r#" + r#" diff --git a/docx-core/src/documents/elements/table_borders.rs b/docx-core/src/documents/elements/table_borders.rs index 72df3bc..65ef846 100644 --- a/docx-core/src/documents/elements/table_borders.rs +++ b/docx-core/src/documents/elements/table_borders.rs @@ -96,9 +96,9 @@ impl Default for TableBorders { top: Some(TableBorder::new(BorderPosition::Top)), left: Some(TableBorder::new(BorderPosition::Left)), bottom: Some(TableBorder::new(BorderPosition::Bottom)), - right: None, + right: Some(TableBorder::new(BorderPosition::Right)), inside_h: Some(TableBorder::new(BorderPosition::IndideH)), - inside_v: None, + inside_v: Some(TableBorder::new(BorderPosition::IndideV)), } } } @@ -161,7 +161,7 @@ mod tests { let b = TableBorders::new().build(); assert_eq!( str::from_utf8(&b).unwrap(), - r#""# + r#""# ); } @@ -173,7 +173,7 @@ mod tests { .build(); assert_eq!( str::from_utf8(&b).unwrap(), - r#""# + r#""# ); } } diff --git a/docx-core/src/documents/elements/table_cell.rs b/docx-core/src/documents/elements/table_cell.rs index 784ec4f..ae60cac 100644 --- a/docx-core/src/documents/elements/table_cell.rs +++ b/docx-core/src/documents/elements/table_cell.rs @@ -51,10 +51,7 @@ mod tests { #[test] fn test_cell() { let b = TableCell::new().build(); - assert_eq!( - str::from_utf8(&b).unwrap(), - r#""# - ); + assert_eq!(str::from_utf8(&b).unwrap(), r#""#); } #[test] @@ -64,7 +61,7 @@ mod tests { .build(); assert_eq!( str::from_utf8(&b).unwrap(), - r#"Hello"# + r#"Hello"# ); } } diff --git a/docx-core/src/documents/elements/table_cell_borders.rs b/docx-core/src/documents/elements/table_cell_borders.rs index ca3e167..8e2407d 100644 --- a/docx-core/src/documents/elements/table_cell_borders.rs +++ b/docx-core/src/documents/elements/table_cell_borders.rs @@ -84,9 +84,9 @@ impl Default for TableCellBorders { top: Some(TableCellBorder::new(BorderPosition::Top)), left: Some(TableCellBorder::new(BorderPosition::Left)), bottom: Some(TableCellBorder::new(BorderPosition::Bottom)), - right: None, + right: Some(TableCellBorder::new(BorderPosition::Right)), inside_h: Some(TableCellBorder::new(BorderPosition::IndideH)), - inside_v: None, + inside_v: Some(TableCellBorder::new(BorderPosition::IndideV)), } } } @@ -135,21 +135,3 @@ impl BuildXML for TableCellBorders { .build() } } - -#[cfg(test)] -mod tests { - - use super::*; - #[cfg(test)] - use pretty_assertions::assert_eq; - use std::str; - - #[test] - fn test_table_borders() { - let b = TableCellBorders::new().build(); - assert_eq!( - str::from_utf8(&b).unwrap(), - r#""# - ); - } -} diff --git a/docx-core/src/documents/elements/table_cell_property.rs b/docx-core/src/documents/elements/table_cell_property.rs index 154595b..f5a3e5e 100644 --- a/docx-core/src/documents/elements/table_cell_property.rs +++ b/docx-core/src/documents/elements/table_cell_property.rs @@ -1,34 +1,34 @@ -use super::TableCellBorders; +use super::{TableCellBorders, TableCellWidth}; use crate::documents::BuildXML; -// use crate::types::*; +use crate::types::*; use crate::xml_builder::*; #[derive(Debug, Clone)] pub struct TableCellProperty { - // width: TableCellWidth, - borders: TableCellBorders, + width: Option, + borders: Option, } impl TableCellProperty { pub fn new() -> TableCellProperty { TableCellProperty { - // width: TableCellWidth::new(w, WidthType::DXA), - borders: TableCellBorders::new(), + width: None, + borders: None, } } - // pub fn width(mut self, v: usize) -> TableCellProperty { - // self.width = TableCellWidth::new(v, WidthType::DXA); - // self - // } + pub fn width(mut self, v: usize, t: WidthType) -> TableCellProperty { + self.width = Some(TableCellWidth::new(v, t)); + self + } } impl BuildXML for TableCellProperty { fn build(&self) -> Vec { XMLBuilder::new() .open_table_cell_property() - // .add_child(&self.width) - .add_child(&self.borders) + .add_optional_child(&self.width) + .add_optional_child(&self.borders) .close() .build() } @@ -46,9 +46,6 @@ mod tests { fn test_default() { let c = TableCellProperty::new(); let b = c.build(); - assert_eq!( - str::from_utf8(&b).unwrap(), - r#""# - ); + assert_eq!(str::from_utf8(&b).unwrap(), r#""#); } } diff --git a/docx-core/src/documents/elements/table_property.rs b/docx-core/src/documents/elements/table_property.rs index a0c1fa2..a764d19 100644 --- a/docx-core/src/documents/elements/table_property.rs +++ b/docx-core/src/documents/elements/table_property.rs @@ -15,7 +15,7 @@ pub struct TableProperty { impl Default for TableProperty { fn default() -> Self { TableProperty { - width: TableWidth::new(9638, WidthType::DXA), + width: TableWidth::new(0, WidthType::AUTO), justification: Justification::new("left"), borders: TableBorders::new(), margins: TableCellMargins::new(), @@ -34,13 +34,13 @@ impl TableProperty { self } - pub fn width(mut self, v: usize) -> TableProperty { - self.width = TableWidth::new(v, WidthType::DXA); + pub fn width(mut self, v: usize, t: WidthType) -> TableProperty { + self.width = TableWidth::new(v, t); self } - pub fn justify(mut self, v: &str) -> TableProperty { - self.justification = Justification::new(v); + pub fn align(mut self, v: TableAlignmentType) -> TableProperty { + self.justification = Justification::new(v.to_string()); self } } @@ -73,7 +73,7 @@ mod tests { let b = c.build(); assert_eq!( str::from_utf8(&b).unwrap(), - r#" + r#" diff --git a/docx-core/src/documents/elements/table_row.rs b/docx-core/src/documents/elements/table_row.rs index 331312c..a525174 100644 --- a/docx-core/src/documents/elements/table_row.rs +++ b/docx-core/src/documents/elements/table_row.rs @@ -38,7 +38,7 @@ mod tests { let b = TableRow::new(vec![TableCell::new()]).build(); assert_eq!( str::from_utf8(&b).unwrap(), - r#""# + r#""# ); } } diff --git a/docx-core/src/documents/mod.rs b/docx-core/src/documents/mod.rs index 97a39ea..1a99abb 100644 --- a/docx-core/src/documents/mod.rs +++ b/docx-core/src/documents/mod.rs @@ -53,6 +53,11 @@ impl Docx { self } + pub fn add_table(mut self, t: Table) -> Docx { + self.document = self.document.add_table(t); + self + } + pub fn build(&self) -> XMLDocx { XMLDocx { content_type: self.content_type.build(), diff --git a/docx-core/src/types/mod.rs b/docx-core/src/types/mod.rs index 3ddca37..0090fa3 100644 --- a/docx-core/src/types/mod.rs +++ b/docx-core/src/types/mod.rs @@ -3,6 +3,7 @@ pub mod border_position; pub mod border_type; pub mod special_indent_type; pub mod style_type; +pub mod table_alignment_type; pub mod width_type; pub use alignment_type::*; @@ -10,4 +11,5 @@ pub use border_position::*; pub use border_type::*; pub use special_indent_type::*; pub use style_type::*; +pub use table_alignment_type::*; pub use width_type::*; diff --git a/docx-core/src/types/table_alignment_type.rs b/docx-core/src/types/table_alignment_type.rs new file mode 100644 index 0000000..1282bdb --- /dev/null +++ b/docx-core/src/types/table_alignment_type.rs @@ -0,0 +1,20 @@ +use std::fmt; +use wasm_bindgen::prelude::*; + +#[wasm_bindgen] +#[derive(Copy, Clone, Debug)] +pub enum TableAlignmentType { + Center, + Left, + Right, +} + +impl fmt::Display for TableAlignmentType { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + match *self { + TableAlignmentType::Center => write!(f, "center"), + TableAlignmentType::Left => write!(f, "left"), + TableAlignmentType::Right => write!(f, "right"), + } + } +} diff --git a/docx-core/src/types/width_type.rs b/docx-core/src/types/width_type.rs index f51bcfc..10c8c4d 100644 --- a/docx-core/src/types/width_type.rs +++ b/docx-core/src/types/width_type.rs @@ -5,12 +5,14 @@ use wasm_bindgen::prelude::*; #[derive(Copy, Clone, Debug)] pub enum WidthType { DXA, + AUTO, } impl fmt::Display for WidthType { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { match *self { WidthType::DXA => write!(f, "dxa"), + WidthType::AUTO => write!(f, "auto"), } } } diff --git a/docx-core/tests/lib.rs b/docx-core/tests/lib.rs index f705007..47d067f 100644 --- a/docx-core/tests/lib.rs +++ b/docx-core/tests/lib.rs @@ -58,3 +58,22 @@ pub fn alignment() -> Result<(), DocxError> { .pack(file)?; Ok(()) } + +#[test] +pub fn table() -> Result<(), DocxError> { + let path = std::path::Path::new("./tests/output/table.docx"); + let file = std::fs::File::create(&path).unwrap(); + + let table = Table::new(vec![ + TableRow::new(vec![ + TableCell::new().add_paragraph(Paragraph::new().add_run(Run::new("Hello"))), + TableCell::new().add_paragraph(Paragraph::new().add_run(Run::new("World"))), + ]), + TableRow::new(vec![ + TableCell::new().add_paragraph(Paragraph::new().add_run(Run::new("Foo"))), + TableCell::new().add_paragraph(Paragraph::new().add_run(Run::new("Bar"))), + ]), + ]); + Docx::new().add_table(table).build().pack(file)?; + Ok(()) +} diff --git a/fixtures/table_docx/[Content_Types].xml b/fixtures/table_docx/[Content_Types].xml new file mode 100644 index 0000000..69b0cff --- /dev/null +++ b/fixtures/table_docx/[Content_Types].xml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/fixtures/table_docx/_rels/.rels b/fixtures/table_docx/_rels/.rels new file mode 100644 index 0000000..3a89e29 --- /dev/null +++ b/fixtures/table_docx/_rels/.rels @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/fixtures/table_docx/docProps/app.xml b/fixtures/table_docx/docProps/app.xml new file mode 100644 index 0000000..6d3e209 --- /dev/null +++ b/fixtures/table_docx/docProps/app.xml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/fixtures/table_docx/docProps/core.xml b/fixtures/table_docx/docProps/core.xml new file mode 100644 index 0000000..a7e79b0 --- /dev/null +++ b/fixtures/table_docx/docProps/core.xml @@ -0,0 +1 @@ +Un-namedUn-named12019-11-13T11:40:18Z2019-11-13T11:40:18Z \ No newline at end of file diff --git a/fixtures/table_docx/table.docx b/fixtures/table_docx/table.docx new file mode 100644 index 0000000000000000000000000000000000000000..3ad3ea0f96a8cb31cdd3f0702071951be1d8fb1c GIT binary patch literal 6529 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 \ No newline at end of file diff --git a/fixtures/table_docx/word/_rels/footer1.xml.rels b/fixtures/table_docx/word/_rels/footer1.xml.rels new file mode 100644 index 0000000..ed9d666 --- /dev/null +++ b/fixtures/table_docx/word/_rels/footer1.xml.rels @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/fixtures/table_docx/word/_rels/header1.xml.rels b/fixtures/table_docx/word/_rels/header1.xml.rels new file mode 100644 index 0000000..ed9d666 --- /dev/null +++ b/fixtures/table_docx/word/_rels/header1.xml.rels @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/fixtures/table_docx/word/document.xml b/fixtures/table_docx/word/document.xml new file mode 100644 index 0000000..68609ff --- /dev/null +++ b/fixtures/table_docx/word/document.xml @@ -0,0 +1,185 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Hello + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/fixtures/table_docx/word/footer1.xml b/fixtures/table_docx/word/footer1.xml new file mode 100644 index 0000000..622cdc7 --- /dev/null +++ b/fixtures/table_docx/word/footer1.xml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/fixtures/table_docx/word/footnotes.xml b/fixtures/table_docx/word/footnotes.xml new file mode 100644 index 0000000..57efcdd --- /dev/null +++ b/fixtures/table_docx/word/footnotes.xml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/fixtures/table_docx/word/header1.xml b/fixtures/table_docx/word/header1.xml new file mode 100644 index 0000000..09f8e4b --- /dev/null +++ b/fixtures/table_docx/word/header1.xml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/fixtures/table_docx/word/numbering.xml b/fixtures/table_docx/word/numbering.xml new file mode 100644 index 0000000..7544091 --- /dev/null +++ b/fixtures/table_docx/word/numbering.xml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/fixtures/table_docx/word/settings.xml b/fixtures/table_docx/word/settings.xml new file mode 100644 index 0000000..9202cef --- /dev/null +++ b/fixtures/table_docx/word/settings.xml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/fixtures/table_docx/word/styles.xml b/fixtures/table_docx/word/styles.xml new file mode 100644 index 0000000..069c8e3 --- /dev/null +++ b/fixtures/table_docx/word/styles.xml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/fixtures/table_libre_office/table.docx b/fixtures/table_libre_office/table.docx index a205c67b718a8df344c77fc83f297de1aef07d53..c2812a58acf457e1f7b3f9fdaef4c8bcf0de629e 100644 GIT binary patch delta 2390 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 diff --git a/fixtures/table_word_online/[Content_Types].xml b/fixtures/table_word_online/[Content_Types].xml new file mode 100644 index 0000000..4d5931e --- /dev/null +++ b/fixtures/table_word_online/[Content_Types].xml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/fixtures/table_word_online/_rels/.rels b/fixtures/table_word_online/_rels/.rels new file mode 100644 index 0000000..0afe5c3 --- /dev/null +++ b/fixtures/table_word_online/_rels/.rels @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/fixtures/table_word_online/docProps/app.xml b/fixtures/table_word_online/docProps/app.xml new file mode 100644 index 0000000..5af8832 --- /dev/null +++ b/fixtures/table_word_online/docProps/app.xml @@ -0,0 +1 @@ +Microsoft Office Word0falsefalsefalse00.0001Normal.dotmfalse \ No newline at end of file diff --git a/fixtures/table_word_online/docProps/core.xml b/fixtures/table_word_online/docProps/core.xml new file mode 100644 index 0000000..796de0d --- /dev/null +++ b/fixtures/table_word_online/docProps/core.xml @@ -0,0 +1 @@ +2019-11-13T02:50:10.0035455Z2019-11-13T02:50:30.2555956ZSatoshi UekiSatoshi Ueki \ No newline at end of file diff --git a/fixtures/table_word_online/table.docx b/fixtures/table_word_online/table.docx new file mode 100644 index 0000000000000000000000000000000000000000..fdfaae402931f767f7d38cc637b1afd39a70b8ee GIT binary patch literal 11807 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 TAU^|6kpVprDOif}=iUDROG<2a literal 0 HcmV?d00001 diff --git a/fixtures/table_word_online/word/_rels/document2.xml.rels b/fixtures/table_word_online/word/_rels/document2.xml.rels new file mode 100644 index 0000000..d9d3612 --- /dev/null +++ b/fixtures/table_word_online/word/_rels/document2.xml.rels @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/fixtures/table_word_online/word/document2.xml b/fixtures/table_word_online/word/document2.xml new file mode 100644 index 0000000..d9ec951 --- /dev/null +++ b/fixtures/table_word_online/word/document2.xml @@ -0,0 +1,119 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Hello + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/fixtures/table_word_online/word/fontTable.xml b/fixtures/table_word_online/word/fontTable.xml new file mode 100644 index 0000000..c25c4bb --- /dev/null +++ b/fixtures/table_word_online/word/fontTable.xml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/fixtures/table_word_online/word/settings.xml b/fixtures/table_word_online/word/settings.xml new file mode 100644 index 0000000..06c4002 --- /dev/null +++ b/fixtures/table_word_online/word/settings.xml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/fixtures/table_word_online/word/styles.xml b/fixtures/table_word_online/word/styles.xml new file mode 100644 index 0000000..ab59613 --- /dev/null +++ b/fixtures/table_word_online/word/styles.xml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/fixtures/table_word_online/word/theme/theme1.xml b/fixtures/table_word_online/word/theme/theme1.xml new file mode 100644 index 0000000..31e6197 --- /dev/null +++ b/fixtures/table_word_online/word/theme/theme1.xml @@ -0,0 +1,259 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/fixtures/table_word_online/word/webSettings.xml b/fixtures/table_word_online/word/webSettings.xml new file mode 100644 index 0000000..be9f295 --- /dev/null +++ b/fixtures/table_word_online/word/webSettings.xml @@ -0,0 +1,2 @@ + + \ No newline at end of file