Add json definitions (#40)
* feat: Add test * fix: bom file * fix: delete serializer * fix: improve json * fix: dxa * fix: fixup ts * 0.0.24main
parent
1ab91a6924
commit
03a6c7e970
File diff suppressed because one or more lines are too long
|
@ -3,7 +3,7 @@ use std::fs::*;
|
||||||
use std::io::Read;
|
use std::io::Read;
|
||||||
|
|
||||||
pub fn main() {
|
pub fn main() {
|
||||||
let mut file = File::open("./run.docx").unwrap();
|
let mut file = File::open("./10.docx").unwrap();
|
||||||
let mut buf = vec![];
|
let mut buf = vec![];
|
||||||
file.read_to_end(&mut buf).unwrap();
|
file.read_to_end(&mut buf).unwrap();
|
||||||
dbg!(read_docx(&buf).unwrap().json());
|
dbg!(read_docx(&buf).unwrap().json());
|
||||||
|
|
|
@ -111,7 +111,7 @@ impl FromXML for ContentTypes {
|
||||||
Ok(XmlEvent::EndElement { .. }) => {
|
Ok(XmlEvent::EndElement { .. }) => {
|
||||||
depth -= 1;
|
depth -= 1;
|
||||||
}
|
}
|
||||||
Err(_) => return Err(ReaderError::XMLReadError),
|
Err(_) => {}
|
||||||
_ => {}
|
_ => {}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -69,6 +69,25 @@ impl Serialize for ParagraphChild {
|
||||||
t.serialize_field("data", r)?;
|
t.serialize_field("data", r)?;
|
||||||
t.end()
|
t.end()
|
||||||
}
|
}
|
||||||
|
ParagraphChild::Delete(ref r) => {
|
||||||
|
let mut t = serializer.serialize_struct("Delete", 2)?;
|
||||||
|
t.serialize_field("type", "delete")?;
|
||||||
|
t.serialize_field("data", r)?;
|
||||||
|
t.end()
|
||||||
|
}
|
||||||
|
ParagraphChild::BookmarkStart(ref r) => {
|
||||||
|
let mut t = serializer.serialize_struct("BookmarkStart", 2)?;
|
||||||
|
t.serialize_field("type", "bookmarkStart")?;
|
||||||
|
t.serialize_field("data", r)?;
|
||||||
|
t.end()
|
||||||
|
}
|
||||||
|
ParagraphChild::BookmarkEnd(ref r) => {
|
||||||
|
let mut t = serializer.serialize_struct("BookmarkEnd", 2)?;
|
||||||
|
t.serialize_field("type", "bookmarkEnd")?;
|
||||||
|
t.serialize_field("data", r)?;
|
||||||
|
t.end()
|
||||||
|
}
|
||||||
|
// TODO: Add comment later
|
||||||
_ => {
|
_ => {
|
||||||
let mut t = serializer.serialize_struct("Unsupported", 2)?;
|
let mut t = serializer.serialize_struct("Unsupported", 2)?;
|
||||||
t.serialize_field("type", "unsupported")?;
|
t.serialize_field("type", "unsupported")?;
|
||||||
|
|
|
@ -29,8 +29,8 @@ pub fn read_document_rels(
|
||||||
.ok_or(ReaderError::DocumentRelsNotFoundError)?;
|
.ok_or(ReaderError::DocumentRelsNotFoundError)?;
|
||||||
let p = find_rels_filename(&main_path)?;
|
let p = find_rels_filename(&main_path)?;
|
||||||
let p = p.to_str().ok_or(ReaderError::DocumentRelsNotFoundError)?;
|
let p = p.to_str().ok_or(ReaderError::DocumentRelsNotFoundError)?;
|
||||||
let rels_xml = archive.by_name(&p)?;
|
let data = read_zip(archive, &p)?;
|
||||||
let rels = read_rels_xml(rels_xml, dir)?;
|
let rels = read_rels_xml(&data[..], dir)?;
|
||||||
Ok(rels)
|
Ok(rels)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -9,6 +9,7 @@ mod level;
|
||||||
mod numbering_property;
|
mod numbering_property;
|
||||||
mod numberings;
|
mod numberings;
|
||||||
mod paragraph;
|
mod paragraph;
|
||||||
|
mod read_zip;
|
||||||
mod rels;
|
mod rels;
|
||||||
mod run;
|
mod run;
|
||||||
mod style;
|
mod style;
|
||||||
|
@ -27,6 +28,7 @@ pub use attributes::*;
|
||||||
pub use document_rels::*;
|
pub use document_rels::*;
|
||||||
pub use errors::ReaderError;
|
pub use errors::ReaderError;
|
||||||
pub use from_xml::*;
|
pub use from_xml::*;
|
||||||
|
pub use read_zip::*;
|
||||||
pub use xml_element::*;
|
pub use xml_element::*;
|
||||||
|
|
||||||
const DOC_RELATIONSHIP_TYPE: &str =
|
const DOC_RELATIONSHIP_TYPE: &str =
|
||||||
|
@ -41,19 +43,26 @@ pub fn read_docx(buf: &[u8]) -> Result<Docx, ReaderError> {
|
||||||
let mut archive = zip::ZipArchive::new(cur)?;
|
let mut archive = zip::ZipArchive::new(cur)?;
|
||||||
// First, the content type for relationship parts and the Main Document part
|
// First, the content type for relationship parts and the Main Document part
|
||||||
// (the only required part) must be defined (physically located at /[Content_Types].xml in the package)
|
// (the only required part) must be defined (physically located at /[Content_Types].xml in the package)
|
||||||
let content_types_xml = archive.by_name("[Content_Types].xml")?;
|
let _content_types = {
|
||||||
let _content_types = ContentTypes::from_xml(content_types_xml)?;
|
let data = read_zip(&mut archive, "[Content_Types].xml")?;
|
||||||
|
ContentTypes::from_xml(&data[..])?
|
||||||
|
};
|
||||||
|
|
||||||
// Next, the single required relationship (the package-level relationship to the Main Document part)
|
// Next, the single required relationship (the package-level relationship to the Main Document part)
|
||||||
// must be defined (physically located at /_rels/.rels in the package)
|
// must be defined (physically located at /_rels/.rels in the package)
|
||||||
let rels_xml = archive.by_name("_rels/.rels")?;
|
let rels = {
|
||||||
let rels = Rels::from_xml(rels_xml)?;
|
let data = read_zip(&mut archive, "_rels/.rels")?;
|
||||||
|
Rels::from_xml(&data[..])?
|
||||||
|
};
|
||||||
// Finally, the minimum content for the Main Document part must be defined
|
// Finally, the minimum content for the Main Document part must be defined
|
||||||
// (physically located at /document.xml in the package):
|
// (physically located at /document.xml in the package):
|
||||||
let main_rel = rels
|
let main_rel = rels
|
||||||
.find_target(DOC_RELATIONSHIP_TYPE)
|
.find_target(DOC_RELATIONSHIP_TYPE)
|
||||||
.ok_or(ReaderError::DocumentNotFoundError)?;
|
.ok_or(ReaderError::DocumentNotFoundError)?;
|
||||||
let document_xml = archive.by_name(&main_rel.2)?;
|
let document = {
|
||||||
let document = Document::from_xml(document_xml)?;
|
let data = read_zip(&mut archive, &main_rel.2)?;
|
||||||
|
Document::from_xml(&data[..])?
|
||||||
|
};
|
||||||
let mut docx = Docx::new().document(document);
|
let mut docx = Docx::new().document(document);
|
||||||
// Read document relationships
|
// Read document relationships
|
||||||
let rels = read_document_rels(&mut archive, &main_rel.2)?;
|
let rels = read_document_rels(&mut archive, &main_rel.2)?;
|
||||||
|
@ -61,16 +70,22 @@ pub fn read_docx(buf: &[u8]) -> Result<Docx, ReaderError> {
|
||||||
// Read styles
|
// Read styles
|
||||||
let style_path = rels.find_target_path(STYLE_RELATIONSHIP_TYPE);
|
let style_path = rels.find_target_path(STYLE_RELATIONSHIP_TYPE);
|
||||||
if let Some(style_path) = style_path {
|
if let Some(style_path) = style_path {
|
||||||
let styles_xml = archive.by_name(style_path.to_str().expect("should have styles"))?;
|
let data = read_zip(
|
||||||
let styles = Styles::from_xml(styles_xml)?;
|
&mut archive,
|
||||||
|
style_path.to_str().expect("should have styles"),
|
||||||
|
)?;
|
||||||
|
let styles = Styles::from_xml(&data[..])?;
|
||||||
docx = docx.styles(styles);
|
docx = docx.styles(styles);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Read numberings
|
// Read numberings
|
||||||
let num_path = rels.find_target_path(NUMBERING_RELATIONSHIP_TYPE);
|
let num_path = rels.find_target_path(NUMBERING_RELATIONSHIP_TYPE);
|
||||||
if let Some(num_path) = num_path {
|
if let Some(num_path) = num_path {
|
||||||
let num_xml = archive.by_name(num_path.to_str().expect("should have numberings"))?;
|
let data = read_zip(
|
||||||
let nums = Numberings::from_xml(num_xml)?;
|
&mut archive,
|
||||||
|
num_path.to_str().expect("should have numberings"),
|
||||||
|
)?;
|
||||||
|
let nums = Numberings::from_xml(&data[..])?;
|
||||||
docx = docx.numberings(nums);
|
docx = docx.numberings(nums);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -122,8 +122,7 @@ mod tests {
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_read_indent() {
|
fn test_read_indent() {
|
||||||
let c =
|
let c = r#"<w:document xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">
|
||||||
r#"<w:document xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">
|
|
||||||
<w:p>
|
<w:p>
|
||||||
<w:pPr>
|
<w:pPr>
|
||||||
<w:ind w:left="1470" w:right="1270" w:hanging="0"/>
|
<w:ind w:left="1470" w:right="1270" w:hanging="0"/>
|
||||||
|
@ -161,8 +160,7 @@ mod tests {
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_read_jc() {
|
fn test_read_jc() {
|
||||||
let c =
|
let c = r#"<w:document xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">
|
||||||
r#"<w:document xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">
|
|
||||||
<w:p>
|
<w:p>
|
||||||
<w:pPr>
|
<w:pPr>
|
||||||
<w:jc w:val="left"/>
|
<w:jc w:val="left"/>
|
||||||
|
@ -191,8 +189,7 @@ mod tests {
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_read_numbering() {
|
fn test_read_numbering() {
|
||||||
let c =
|
let c = r#"<w:document xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">
|
||||||
r#"<w:document xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">
|
|
||||||
<w:p>
|
<w:p>
|
||||||
<w:pPr>
|
<w:pPr>
|
||||||
<w:numPr>
|
<w:numPr>
|
||||||
|
@ -227,8 +224,7 @@ mod tests {
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_read_insert() {
|
fn test_read_insert() {
|
||||||
let c =
|
let c = r#"<w:document xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">
|
||||||
r#"<w:document xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">
|
|
||||||
<w:p>
|
<w:p>
|
||||||
<w:ins w:id="0" w:author="unknown" w:date="2019-11-15T14:19:04Z">
|
<w:ins w:id="0" w:author="unknown" w:date="2019-11-15T14:19:04Z">
|
||||||
<w:r>
|
<w:r>
|
||||||
|
@ -264,8 +260,7 @@ mod tests {
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_read_delete() {
|
fn test_read_delete() {
|
||||||
let c =
|
let c = r#"<w:document xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">
|
||||||
r#"<w:document xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">
|
|
||||||
<w:p>
|
<w:p>
|
||||||
<w:del w:id="3" w:author="unknown" w:date="2019-11-15T14:19:04Z">
|
<w:del w:id="3" w:author="unknown" w:date="2019-11-15T14:19:04Z">
|
||||||
<w:r>
|
<w:r>
|
||||||
|
@ -301,8 +296,7 @@ mod tests {
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_read_bookmark() {
|
fn test_read_bookmark() {
|
||||||
let c =
|
let c = r#"<w:document xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">
|
||||||
r#"<w:document xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">
|
|
||||||
<w:p>
|
<w:p>
|
||||||
<w:bookmarkStart w:id="0" w:name="ABCD-1234"/>
|
<w:bookmarkStart w:id="0" w:name="ABCD-1234"/>
|
||||||
<w:r>
|
<w:r>
|
||||||
|
|
|
@ -0,0 +1,24 @@
|
||||||
|
use std::io::{Cursor, Read};
|
||||||
|
use zip;
|
||||||
|
|
||||||
|
use super::ReaderError;
|
||||||
|
|
||||||
|
pub fn read_zip(
|
||||||
|
archive: &mut zip::read::ZipArchive<Cursor<&[u8]>>,
|
||||||
|
name: &str,
|
||||||
|
) -> Result<Vec<u8>, ReaderError> {
|
||||||
|
let mut p = name.to_owned();
|
||||||
|
if p.starts_with('/') {
|
||||||
|
p.remove(0);
|
||||||
|
}
|
||||||
|
let mut xml = archive.by_name(&p)?;
|
||||||
|
let mut data = vec![];
|
||||||
|
xml.read_to_end(&mut data).unwrap();
|
||||||
|
// Remove BOM
|
||||||
|
if (data[0] == 0xef) && (data[1] == 0xbb) && (data[2] == 0xbf) {
|
||||||
|
data.remove(0);
|
||||||
|
data.remove(0);
|
||||||
|
data.remove(0);
|
||||||
|
}
|
||||||
|
Ok(data)
|
||||||
|
}
|
|
@ -47,8 +47,7 @@ mod tests {
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_from_xml() {
|
fn test_from_xml() {
|
||||||
let xml =
|
let xml = r#"<w:styles xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">
|
||||||
r#"<w:styles xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">
|
|
||||||
<w:style w:type="character" w:styleId="FootnoteTextChar">
|
<w:style w:type="character" w:styleId="FootnoteTextChar">
|
||||||
<w:name w:val="Footnote Text Char"></w:name>
|
<w:name w:val="Footnote Text Char"></w:name>
|
||||||
<w:rPr>
|
<w:rPr>
|
||||||
|
|
|
@ -72,8 +72,7 @@ mod tests {
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_read_table_with_width_prop() {
|
fn test_read_table_with_width_prop() {
|
||||||
let c =
|
let c = r#"<w:document xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">
|
||||||
r#"<w:document xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">
|
|
||||||
<w:tbl>
|
<w:tbl>
|
||||||
<w:tblPr>
|
<w:tblPr>
|
||||||
<w:tblW w:w="9638" w:type="dxa"/>
|
<w:tblW w:w="9638" w:type="dxa"/>
|
||||||
|
@ -97,8 +96,7 @@ mod tests {
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_read_table_with_layout() {
|
fn test_read_table_with_layout() {
|
||||||
let c =
|
let c = r#"<w:document xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">
|
||||||
r#"<w:document xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">
|
|
||||||
<w:tbl>
|
<w:tbl>
|
||||||
<w:tblPr>
|
<w:tblPr>
|
||||||
<w:jc w:val="center"/>
|
<w:jc w:val="center"/>
|
||||||
|
|
|
@ -94,8 +94,7 @@ mod tests {
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_read_cell_with_prop() {
|
fn test_read_cell_with_prop() {
|
||||||
let c =
|
let c = r#"<w:document xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">
|
||||||
r#"<w:document xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">
|
|
||||||
<w:tc>
|
<w:tc>
|
||||||
<w:tcPr>
|
<w:tcPr>
|
||||||
<w:tcW w:w="6425" w:type="dxa"/>
|
<w:tcW w:w="6425" w:type="dxa"/>
|
||||||
|
|
|
@ -10,7 +10,9 @@ pub enum AlignmentType {
|
||||||
Center,
|
Center,
|
||||||
Left,
|
Left,
|
||||||
Right,
|
Right,
|
||||||
|
Both,
|
||||||
Justified,
|
Justified,
|
||||||
|
Unsupported,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl fmt::Display for AlignmentType {
|
impl fmt::Display for AlignmentType {
|
||||||
|
@ -19,7 +21,9 @@ impl fmt::Display for AlignmentType {
|
||||||
AlignmentType::Center => write!(f, "center"),
|
AlignmentType::Center => write!(f, "center"),
|
||||||
AlignmentType::Left => write!(f, "left"),
|
AlignmentType::Left => write!(f, "left"),
|
||||||
AlignmentType::Right => write!(f, "right"),
|
AlignmentType::Right => write!(f, "right"),
|
||||||
|
AlignmentType::Both => write!(f, "both"),
|
||||||
AlignmentType::Justified => write!(f, "justified"),
|
AlignmentType::Justified => write!(f, "justified"),
|
||||||
|
_ => write!(f, "unsupported"),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -31,8 +35,9 @@ impl FromStr for AlignmentType {
|
||||||
"left" => Ok(AlignmentType::Left),
|
"left" => Ok(AlignmentType::Left),
|
||||||
"right" => Ok(AlignmentType::Right),
|
"right" => Ok(AlignmentType::Right),
|
||||||
"center" => Ok(AlignmentType::Center),
|
"center" => Ok(AlignmentType::Center),
|
||||||
|
"both" => Ok(AlignmentType::Both),
|
||||||
"justified" => Ok(AlignmentType::Justified),
|
"justified" => Ok(AlignmentType::Justified),
|
||||||
_ => Err(errors::TypeError::FromStrError),
|
_ => Ok(AlignmentType::Unsupported),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,6 +16,7 @@ pub enum BreakType {
|
||||||
Page,
|
Page,
|
||||||
Column,
|
Column,
|
||||||
TextWrapping,
|
TextWrapping,
|
||||||
|
Unsupported,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl fmt::Display for BreakType {
|
impl fmt::Display for BreakType {
|
||||||
|
@ -24,6 +25,7 @@ impl fmt::Display for BreakType {
|
||||||
BreakType::Page => write!(f, "page"),
|
BreakType::Page => write!(f, "page"),
|
||||||
BreakType::Column => write!(f, "column"),
|
BreakType::Column => write!(f, "column"),
|
||||||
BreakType::TextWrapping => write!(f, "textWrapping"),
|
BreakType::TextWrapping => write!(f, "textWrapping"),
|
||||||
|
BreakType::Unsupported => write!(f, "unsupported"),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -35,7 +37,7 @@ impl FromStr for BreakType {
|
||||||
"page" => Ok(BreakType::Page),
|
"page" => Ok(BreakType::Page),
|
||||||
"column" => Ok(BreakType::Column),
|
"column" => Ok(BreakType::Column),
|
||||||
"textWrapping" => Ok(BreakType::TextWrapping),
|
"textWrapping" => Ok(BreakType::TextWrapping),
|
||||||
_ => Err(errors::TypeError::FromStrError),
|
_ => Ok(BreakType::Unsupported),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,6 +12,7 @@ pub enum StyleType {
|
||||||
Paragraph,
|
Paragraph,
|
||||||
Character,
|
Character,
|
||||||
Numbering,
|
Numbering,
|
||||||
|
Table,
|
||||||
Unsupported,
|
Unsupported,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -21,6 +22,7 @@ impl fmt::Display for StyleType {
|
||||||
StyleType::Paragraph => write!(f, "paragraph"),
|
StyleType::Paragraph => write!(f, "paragraph"),
|
||||||
StyleType::Character => write!(f, "character"),
|
StyleType::Character => write!(f, "character"),
|
||||||
StyleType::Numbering => write!(f, "numbering"),
|
StyleType::Numbering => write!(f, "numbering"),
|
||||||
|
StyleType::Table => write!(f, "table"),
|
||||||
StyleType::Unsupported => write!(f, "unsupported"),
|
StyleType::Unsupported => write!(f, "unsupported"),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -33,6 +35,7 @@ impl FromStr for StyleType {
|
||||||
"paragraph" => Ok(StyleType::Paragraph),
|
"paragraph" => Ok(StyleType::Paragraph),
|
||||||
"character" => Ok(StyleType::Character),
|
"character" => Ok(StyleType::Character),
|
||||||
"numbering" => Ok(StyleType::Numbering),
|
"numbering" => Ok(StyleType::Numbering),
|
||||||
|
"table" => Ok(StyleType::Table),
|
||||||
_ => Ok(StyleType::Unsupported),
|
_ => Ok(StyleType::Unsupported),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,6 +9,7 @@ use std::str::FromStr;
|
||||||
pub enum VMergeType {
|
pub enum VMergeType {
|
||||||
Continue,
|
Continue,
|
||||||
Restart,
|
Restart,
|
||||||
|
Unsupported,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl fmt::Display for VMergeType {
|
impl fmt::Display for VMergeType {
|
||||||
|
@ -16,6 +17,7 @@ impl fmt::Display for VMergeType {
|
||||||
match *self {
|
match *self {
|
||||||
VMergeType::Continue => write!(f, "continue"),
|
VMergeType::Continue => write!(f, "continue"),
|
||||||
VMergeType::Restart => write!(f, "restart"),
|
VMergeType::Restart => write!(f, "restart"),
|
||||||
|
VMergeType::Unsupported => write!(f, "unsupported"),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -26,7 +28,7 @@ impl FromStr for VMergeType {
|
||||||
match s {
|
match s {
|
||||||
"continue" => Ok(VMergeType::Continue),
|
"continue" => Ok(VMergeType::Continue),
|
||||||
"restart" => Ok(VMergeType::Restart),
|
"restart" => Ok(VMergeType::Restart),
|
||||||
_ => Err(errors::TypeError::FromStrError),
|
_ => Ok(VMergeType::Unsupported),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,6 +11,7 @@ pub enum WidthType {
|
||||||
DXA,
|
DXA,
|
||||||
Auto,
|
Auto,
|
||||||
Pct,
|
Pct,
|
||||||
|
Unsupported,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl fmt::Display for WidthType {
|
impl fmt::Display for WidthType {
|
||||||
|
@ -19,6 +20,7 @@ impl fmt::Display for WidthType {
|
||||||
WidthType::DXA => write!(f, "dxa"),
|
WidthType::DXA => write!(f, "dxa"),
|
||||||
WidthType::Auto => write!(f, "auto"),
|
WidthType::Auto => write!(f, "auto"),
|
||||||
WidthType::Pct => write!(f, "pct"),
|
WidthType::Pct => write!(f, "pct"),
|
||||||
|
WidthType::Unsupported => write!(f, "unsupported"),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -30,7 +32,7 @@ impl FromStr for WidthType {
|
||||||
"dxa" => Ok(WidthType::DXA),
|
"dxa" => Ok(WidthType::DXA),
|
||||||
"auto" => Ok(WidthType::Auto),
|
"auto" => Ok(WidthType::Auto),
|
||||||
"pct" => Ok(WidthType::Pct),
|
"pct" => Ok(WidthType::Pct),
|
||||||
_ => Err(errors::TypeError::FromStrError),
|
_ => Ok(WidthType::Unsupported),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -33,3 +33,139 @@ pub fn read_numbering() {
|
||||||
file.write_all(json.as_bytes()).unwrap();
|
file.write_all(json.as_bytes()).unwrap();
|
||||||
file.flush().unwrap();
|
file.flush().unwrap();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
pub fn read_decoration() {
|
||||||
|
let mut file = File::open("../fixtures/decoration/decoration.docx").unwrap();
|
||||||
|
let mut buf = vec![];
|
||||||
|
file.read_to_end(&mut buf).unwrap();
|
||||||
|
let json = read_docx(&buf).unwrap().json();
|
||||||
|
|
||||||
|
assert_debug_snapshot!(&json);
|
||||||
|
|
||||||
|
let path = std::path::Path::new("./tests/output/decoration.json");
|
||||||
|
let mut file = std::fs::File::create(&path).unwrap();
|
||||||
|
file.write_all(json.as_bytes()).unwrap();
|
||||||
|
file.flush().unwrap();
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
pub fn read_highlight_and_underline() {
|
||||||
|
let mut file =
|
||||||
|
File::open("../fixtures/highlight_and_underline/highlight_and_underline.docx").unwrap();
|
||||||
|
let mut buf = vec![];
|
||||||
|
file.read_to_end(&mut buf).unwrap();
|
||||||
|
let json = read_docx(&buf).unwrap().json();
|
||||||
|
|
||||||
|
assert_debug_snapshot!(&json);
|
||||||
|
|
||||||
|
let path = std::path::Path::new("./tests/output/highlight_and_underline.json");
|
||||||
|
let mut file = std::fs::File::create(&path).unwrap();
|
||||||
|
file.write_all(json.as_bytes()).unwrap();
|
||||||
|
file.flush().unwrap();
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
pub fn read_history() {
|
||||||
|
let mut file = File::open("../fixtures/history_libre_office/history.docx").unwrap();
|
||||||
|
let mut buf = vec![];
|
||||||
|
file.read_to_end(&mut buf).unwrap();
|
||||||
|
let json = read_docx(&buf).unwrap().json();
|
||||||
|
|
||||||
|
assert_debug_snapshot!(&json);
|
||||||
|
|
||||||
|
let path = std::path::Path::new("./tests/output/history.json");
|
||||||
|
let mut file = std::fs::File::create(&path).unwrap();
|
||||||
|
file.write_all(json.as_bytes()).unwrap();
|
||||||
|
file.flush().unwrap();
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
pub fn read_indent_word_online() {
|
||||||
|
let mut file = File::open("../fixtures/indent_word_online/indent.docx").unwrap();
|
||||||
|
let mut buf = vec![];
|
||||||
|
file.read_to_end(&mut buf).unwrap();
|
||||||
|
let json = read_docx(&buf).unwrap().json();
|
||||||
|
|
||||||
|
assert_debug_snapshot!(&json);
|
||||||
|
|
||||||
|
let path = std::path::Path::new("./tests/output/indent_word_online.json");
|
||||||
|
let mut file = std::fs::File::create(&path).unwrap();
|
||||||
|
file.write_all(json.as_bytes()).unwrap();
|
||||||
|
file.flush().unwrap();
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
pub fn read_tab_and_break() {
|
||||||
|
let mut file = File::open("../fixtures/tab_and_break/tab_and_break.docx").unwrap();
|
||||||
|
let mut buf = vec![];
|
||||||
|
file.read_to_end(&mut buf).unwrap();
|
||||||
|
let json = read_docx(&buf).unwrap().json();
|
||||||
|
|
||||||
|
assert_debug_snapshot!(&json);
|
||||||
|
|
||||||
|
let path = std::path::Path::new("./tests/output/tab_and_break.json");
|
||||||
|
let mut file = std::fs::File::create(&path).unwrap();
|
||||||
|
file.write_all(json.as_bytes()).unwrap();
|
||||||
|
file.flush().unwrap();
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
pub fn read_table_docx() {
|
||||||
|
let mut file = File::open("../fixtures/table_docx/table.docx").unwrap();
|
||||||
|
let mut buf = vec![];
|
||||||
|
file.read_to_end(&mut buf).unwrap();
|
||||||
|
let json = read_docx(&buf).unwrap().json();
|
||||||
|
|
||||||
|
assert_debug_snapshot!(&json);
|
||||||
|
|
||||||
|
let path = std::path::Path::new("./tests/output/table_docx.json");
|
||||||
|
let mut file = std::fs::File::create(&path).unwrap();
|
||||||
|
file.write_all(json.as_bytes()).unwrap();
|
||||||
|
file.flush().unwrap();
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
pub fn read_table_merged_libre_office() {
|
||||||
|
let mut file = File::open("../fixtures/table_merged_libre_office/table_merged.docx").unwrap();
|
||||||
|
let mut buf = vec![];
|
||||||
|
file.read_to_end(&mut buf).unwrap();
|
||||||
|
let json = read_docx(&buf).unwrap().json();
|
||||||
|
|
||||||
|
assert_debug_snapshot!(&json);
|
||||||
|
|
||||||
|
let path = std::path::Path::new("./tests/output/table_merged_libre_office.json");
|
||||||
|
let mut file = std::fs::File::create(&path).unwrap();
|
||||||
|
file.write_all(json.as_bytes()).unwrap();
|
||||||
|
file.flush().unwrap();
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
pub fn read_bom() {
|
||||||
|
let mut file = File::open("../fixtures/bom/bom.docx").unwrap();
|
||||||
|
let mut buf = vec![];
|
||||||
|
file.read_to_end(&mut buf).unwrap();
|
||||||
|
let json = read_docx(&buf).unwrap().json();
|
||||||
|
|
||||||
|
assert_debug_snapshot!(&json);
|
||||||
|
|
||||||
|
let path = std::path::Path::new("./tests/output/bom.json");
|
||||||
|
let mut file = std::fs::File::create(&path).unwrap();
|
||||||
|
file.write_all(json.as_bytes()).unwrap();
|
||||||
|
file.flush().unwrap();
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
pub fn read_bookmark() {
|
||||||
|
let mut file = File::open("../fixtures/bookmark/bookmark.docx").unwrap();
|
||||||
|
let mut buf = vec![];
|
||||||
|
file.read_to_end(&mut buf).unwrap();
|
||||||
|
let json = read_docx(&buf).unwrap().json();
|
||||||
|
|
||||||
|
assert_debug_snapshot!(&json);
|
||||||
|
|
||||||
|
let path = std::path::Path::new("./tests/output/bookmark.json");
|
||||||
|
let mut file = std::fs::File::create(&path).unwrap();
|
||||||
|
file.write_all(json.as_bytes()).unwrap();
|
||||||
|
file.flush().unwrap();
|
||||||
|
}
|
||||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -14,6 +14,7 @@ import { AbstractNumbering } from "./abstract-numbering";
|
||||||
import { Numbering } from "./numbering";
|
import { Numbering } from "./numbering";
|
||||||
import { BookmarkStart } from "./bookmark-start";
|
import { BookmarkStart } from "./bookmark-start";
|
||||||
import { BookmarkEnd } from "./bookmark-end";
|
import { BookmarkEnd } from "./bookmark-end";
|
||||||
|
import { DocxJSON } from "./json";
|
||||||
|
|
||||||
import * as wasm from "../pkg";
|
import * as wasm from "../pkg";
|
||||||
|
|
||||||
|
@ -287,7 +288,7 @@ export class Docx {
|
||||||
}
|
}
|
||||||
|
|
||||||
export const readDocx = (buf: Uint8Array) => {
|
export const readDocx = (buf: Uint8Array) => {
|
||||||
return wasm.readDocx(buf);
|
return JSON.parse(wasm.readDocx(buf)) as DocxJSON;
|
||||||
};
|
};
|
||||||
|
|
||||||
export * from "./paragraph";
|
export * from "./paragraph";
|
||||||
|
@ -307,3 +308,4 @@ export * from "./break";
|
||||||
export * from "./delete-text";
|
export * from "./delete-text";
|
||||||
export * from "./level";
|
export * from "./level";
|
||||||
export * from "./tab";
|
export * from "./tab";
|
||||||
|
export * from "./json";
|
||||||
|
|
|
@ -0,0 +1,7 @@
|
||||||
|
export type BorderJSON = {
|
||||||
|
position: string;
|
||||||
|
borderType: string;
|
||||||
|
size: number;
|
||||||
|
space: number;
|
||||||
|
color: string;
|
||||||
|
};
|
|
@ -0,0 +1,26 @@
|
||||||
|
import { ParagraphJSON } from "./paragraph";
|
||||||
|
import { TableJSON } from "./table";
|
||||||
|
|
||||||
|
export type DocumentChildJSON = ParagraphJSON | TableJSON;
|
||||||
|
|
||||||
|
export type DocumentJSON = {
|
||||||
|
children: DocumentChildJSON[];
|
||||||
|
sectionProperty: {
|
||||||
|
pageSize: {
|
||||||
|
w: number;
|
||||||
|
h: number;
|
||||||
|
};
|
||||||
|
pageMargin: {
|
||||||
|
top: number;
|
||||||
|
left: number;
|
||||||
|
bottom: number;
|
||||||
|
right: number;
|
||||||
|
header: number;
|
||||||
|
footer: number;
|
||||||
|
gutter: number;
|
||||||
|
};
|
||||||
|
columns: number;
|
||||||
|
documentGrid: number;
|
||||||
|
};
|
||||||
|
hasNumbering: boolean;
|
||||||
|
};
|
|
@ -0,0 +1,49 @@
|
||||||
|
import { Styles } from "./styles";
|
||||||
|
|
||||||
|
export type DocxJSON = {
|
||||||
|
contentType: {
|
||||||
|
types: {
|
||||||
|
[k: string]: string;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
rels: [string, string, string][];
|
||||||
|
documentRels: {
|
||||||
|
hasComments: boolean;
|
||||||
|
hasNumberings: boolean;
|
||||||
|
};
|
||||||
|
docProps: {
|
||||||
|
app: {};
|
||||||
|
core: {
|
||||||
|
config: {
|
||||||
|
creator: string | null;
|
||||||
|
description: string | null;
|
||||||
|
language: string | null;
|
||||||
|
lastModifiedBy: string | null;
|
||||||
|
modified: string | null;
|
||||||
|
revision: string | null;
|
||||||
|
subject: string | null;
|
||||||
|
title: string | null;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
styles: Styles;
|
||||||
|
document: {
|
||||||
|
children: any[];
|
||||||
|
};
|
||||||
|
comments: {
|
||||||
|
comments: any[];
|
||||||
|
};
|
||||||
|
numberings: {};
|
||||||
|
settings: {
|
||||||
|
defaultTabStop: number;
|
||||||
|
zoom: number;
|
||||||
|
};
|
||||||
|
fontTable: {};
|
||||||
|
};
|
||||||
|
|
||||||
|
export * from "./styles";
|
||||||
|
export * from "./border";
|
||||||
|
export * from "./document";
|
||||||
|
export * from "./paragraph";
|
||||||
|
export * from "./run";
|
||||||
|
export * from "./table";
|
|
@ -0,0 +1,61 @@
|
||||||
|
import { RunJSON, RunChildJSON } from "./run";
|
||||||
|
|
||||||
|
export type ParagraphChildJSON =
|
||||||
|
| RunJSON
|
||||||
|
| InsertJSON
|
||||||
|
| DeleteJSON
|
||||||
|
| BookmarkStartJSON
|
||||||
|
| BookmarkEndJSON;
|
||||||
|
|
||||||
|
export type NumberingPropertyJSON = {
|
||||||
|
id: number;
|
||||||
|
level: number;
|
||||||
|
};
|
||||||
|
|
||||||
|
export type ParagraphPropertyJSON = {
|
||||||
|
runProperty: RunChildJSON;
|
||||||
|
style: string | null;
|
||||||
|
numberingProperty: NumberingPropertyJSON | null;
|
||||||
|
alignment: "left" | "center" | "right" | "justified" | "both";
|
||||||
|
};
|
||||||
|
|
||||||
|
export type ParagraphJSON = {
|
||||||
|
type: "paragraph";
|
||||||
|
data: {
|
||||||
|
property: ParagraphPropertyJSON;
|
||||||
|
children: ParagraphChildJSON[];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
export type InsertJSON = {
|
||||||
|
type: "insert";
|
||||||
|
data: {
|
||||||
|
run: RunJSON;
|
||||||
|
author: string;
|
||||||
|
data: string;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
export type DeleteJSON = {
|
||||||
|
type: "delete";
|
||||||
|
data: {
|
||||||
|
run: RunJSON;
|
||||||
|
author: string;
|
||||||
|
data: string;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
export type BookmarkStartJSON = {
|
||||||
|
type: "bookmarkStart";
|
||||||
|
data: {
|
||||||
|
id: number;
|
||||||
|
name: string;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
export type BookmarkEndJSON = {
|
||||||
|
type: "bookmarkEnd";
|
||||||
|
data: {
|
||||||
|
id: number;
|
||||||
|
};
|
||||||
|
};
|
|
@ -0,0 +1,49 @@
|
||||||
|
export type RunPropertyJSON = {
|
||||||
|
sz: number | null;
|
||||||
|
szCs: number | null;
|
||||||
|
color: string | null;
|
||||||
|
highlight: string | null;
|
||||||
|
underline: string | null;
|
||||||
|
bold: boolean | null;
|
||||||
|
boldCs: boolean | null;
|
||||||
|
italic: boolean | null;
|
||||||
|
italicCs: boolean | null;
|
||||||
|
vanish: boolean | null;
|
||||||
|
};
|
||||||
|
|
||||||
|
export type RunChildJSON = TextJSON | DeleteTextJSON | TabJSON | BreakJSON;
|
||||||
|
|
||||||
|
export type TextJSON = {
|
||||||
|
type: "text";
|
||||||
|
data: {
|
||||||
|
preserveSpace: boolean;
|
||||||
|
text: string;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
export type DeleteTextJSON = {
|
||||||
|
type: "deleteText";
|
||||||
|
data: {
|
||||||
|
preserveSpace: boolean;
|
||||||
|
text: string;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
export type TabJSON = {
|
||||||
|
type: "tab";
|
||||||
|
};
|
||||||
|
|
||||||
|
export type BreakJSON = {
|
||||||
|
type: "break";
|
||||||
|
data: {
|
||||||
|
breakType: "page" | "column" | "textWrapping";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
export type RunJSON = {
|
||||||
|
type: "run";
|
||||||
|
data: {
|
||||||
|
runProperty: RunPropertyJSON;
|
||||||
|
children: RunChildJSON[];
|
||||||
|
};
|
||||||
|
};
|
|
@ -0,0 +1,17 @@
|
||||||
|
import { RunPropertyJSON } from "./run";
|
||||||
|
import { ParagraphPropertyJSON } from "./paragraph";
|
||||||
|
|
||||||
|
export type StyleJSON = {
|
||||||
|
styleId: string;
|
||||||
|
name: string;
|
||||||
|
styleType: string;
|
||||||
|
runProperty: RunPropertyJSON;
|
||||||
|
paragraphProperty: ParagraphPropertyJSON;
|
||||||
|
};
|
||||||
|
|
||||||
|
export type Styles = {
|
||||||
|
docDefaults: {
|
||||||
|
runPropertyDefault: RunPropertyJSON;
|
||||||
|
};
|
||||||
|
styles: StyleJSON[];
|
||||||
|
};
|
|
@ -0,0 +1,62 @@
|
||||||
|
import { ParagraphJSON } from "./paragraph";
|
||||||
|
import { BorderJSON } from "./border";
|
||||||
|
|
||||||
|
export type TableCellChildJSON = ParagraphJSON;
|
||||||
|
|
||||||
|
export type WidthType = "DXA" | "Auto" | "Pct";
|
||||||
|
|
||||||
|
export type TableCellPropertyJSON = {
|
||||||
|
width: {
|
||||||
|
width: number;
|
||||||
|
widthType: WidthType;
|
||||||
|
} | null;
|
||||||
|
borders: any | null;
|
||||||
|
gridSpan: number | null;
|
||||||
|
verticalMerge: "restart" | "continue" | null;
|
||||||
|
hasNumbering: boolean;
|
||||||
|
};
|
||||||
|
|
||||||
|
export type TableCellJSON = {
|
||||||
|
children: TableCellChildJSON[];
|
||||||
|
property: TableCellPropertyJSON;
|
||||||
|
};
|
||||||
|
|
||||||
|
export type TableRowJSON = {
|
||||||
|
cells: TableCellJSON[];
|
||||||
|
};
|
||||||
|
|
||||||
|
export type TablePropertyJSON = {
|
||||||
|
width: {
|
||||||
|
width: number;
|
||||||
|
widthType: WidthType;
|
||||||
|
} | null;
|
||||||
|
justification: "left" | "center" | "right";
|
||||||
|
borders: {
|
||||||
|
top: BorderJSON;
|
||||||
|
left: BorderJSON;
|
||||||
|
bottom: BorderJSON;
|
||||||
|
right: BorderJSON;
|
||||||
|
insideH: BorderJSON;
|
||||||
|
insideV: BorderJSON;
|
||||||
|
} | null;
|
||||||
|
margins: {
|
||||||
|
top: number;
|
||||||
|
left: number;
|
||||||
|
bottom: number;
|
||||||
|
right: number;
|
||||||
|
} | null;
|
||||||
|
indent: {
|
||||||
|
width: number;
|
||||||
|
widthType: WidthType;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
export type TableJSON = {
|
||||||
|
type: "table";
|
||||||
|
data: {
|
||||||
|
rows: TableRowJSON[];
|
||||||
|
grid: number[];
|
||||||
|
hasNumbering: boolean;
|
||||||
|
property: TablePropertyJSON;
|
||||||
|
};
|
||||||
|
};
|
|
@ -1,12 +1,13 @@
|
||||||
{
|
{
|
||||||
"name": "docx-wasm",
|
"name": "docx-wasm",
|
||||||
"version": "0.0.23",
|
"version": "0.0.24",
|
||||||
"main": "dist/index.js",
|
"main": "dist/index.js",
|
||||||
"author": "bokuweb <bokuweb12@gmail.com>",
|
"author": "bokuweb <bokuweb12@gmail.com>",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "tsc -p .",
|
"build": "tsc -p . && wasm-pack build",
|
||||||
"serve": "webpack-dev-server --open --config webpack.dev.js"
|
"serve": "webpack-dev-server --open --config webpack.dev.js",
|
||||||
|
"prepublishOnly": "npm run build"
|
||||||
},
|
},
|
||||||
"resolutions": {
|
"resolutions": {
|
||||||
"**/serialize-javascript": "2.1.2"
|
"**/serialize-javascript": "2.1.2"
|
||||||
|
|
Binary file not shown.
|
@ -1 +1,13 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?><Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types"><Default Extension="rels" ContentType="application/vnd.openxmlformats-package.relationships+xml" /><Default Extension="xml" ContentType="application/xml" /><Override PartName="/word/document2.xml" ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml" /><Override PartName="/word/styles.xml" ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml" /><Override PartName="/word/settings.xml" ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml" /><Override PartName="/word/webSettings.xml" ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.webSettings+xml" /><Override PartName="/word/fontTable.xml" ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.fontTable+xml" /><Override PartName="/word/theme/theme1.xml" ContentType="application/vnd.openxmlformats-officedocument.theme+xml" /><Override PartName="/docProps/core.xml" ContentType="application/vnd.openxmlformats-package.core-properties+xml" /><Override PartName="/docProps/app.xml" ContentType="application/vnd.openxmlformats-officedocument.extended-properties+xml" /></Types>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types">
|
||||||
|
<Default Extension="rels" ContentType="application/vnd.openxmlformats-package.relationships+xml" />
|
||||||
|
<Default Extension="xml" ContentType="application/xml" />
|
||||||
|
<Override PartName="/word/document2.xml" ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml" />
|
||||||
|
<Override PartName="/word/styles.xml" ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml" />
|
||||||
|
<Override PartName="/word/settings.xml" ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml" />
|
||||||
|
<Override PartName="/word/webSettings.xml" ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.webSettings+xml" />
|
||||||
|
<Override PartName="/word/fontTable.xml" ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.fontTable+xml" />
|
||||||
|
<Override PartName="/word/theme/theme1.xml" ContentType="application/vnd.openxmlformats-officedocument.theme+xml" />
|
||||||
|
<Override PartName="/docProps/core.xml" ContentType="application/vnd.openxmlformats-package.core-properties+xml" />
|
||||||
|
<Override PartName="/docProps/app.xml" ContentType="application/vnd.openxmlformats-officedocument.extended-properties+xml" />
|
||||||
|
</Types>
|
|
@ -24,14 +24,14 @@
|
||||||
</w:tblBorders>
|
</w:tblBorders>
|
||||||
<w:tblCellMar>
|
<w:tblCellMar>
|
||||||
<w:top w:w="55" w:type="dxa"/>
|
<w:top w:w="55" w:type="dxa"/>
|
||||||
<w:left w:w="54" w:type="dxa"/>
|
<w:left w:w="53" w:type="dxa"/>
|
||||||
<w:bottom w:w="55" w:type="dxa"/>
|
<w:bottom w:w="55" w:type="dxa"/>
|
||||||
<w:right w:w="55" w:type="dxa"/>
|
<w:right w:w="55" w:type="dxa"/>
|
||||||
</w:tblCellMar>
|
</w:tblCellMar>
|
||||||
</w:tblPr>
|
</w:tblPr>
|
||||||
<w:tblGrid>
|
<w:tblGrid>
|
||||||
<w:gridCol w:w="4818"/>
|
<w:gridCol w:w="4818"/>
|
||||||
<w:gridCol w:w="4820"/>
|
<w:gridCol w:w="4819"/>
|
||||||
</w:tblGrid>
|
</w:tblGrid>
|
||||||
<w:tr>
|
<w:tr>
|
||||||
<w:trPr></w:trPr>
|
<w:trPr></w:trPr>
|
||||||
|
@ -59,7 +59,7 @@
|
||||||
</w:tc>
|
</w:tc>
|
||||||
<w:tc>
|
<w:tc>
|
||||||
<w:tcPr>
|
<w:tcPr>
|
||||||
<w:tcW w:w="4820" w:type="dxa"/>
|
<w:tcW w:w="4819" w:type="dxa"/>
|
||||||
<w:tcBorders>
|
<w:tcBorders>
|
||||||
<w:top w:val="single" w:sz="2" w:space="0" w:color="000000"/>
|
<w:top w:val="single" w:sz="2" w:space="0" w:color="000000"/>
|
||||||
<w:left w:val="single" w:sz="2" w:space="0" w:color="000000"/>
|
<w:left w:val="single" w:sz="2" w:space="0" w:color="000000"/>
|
||||||
|
@ -88,6 +88,7 @@
|
||||||
<w:tcPr>
|
<w:tcPr>
|
||||||
<w:tcW w:w="4818" w:type="dxa"/>
|
<w:tcW w:w="4818" w:type="dxa"/>
|
||||||
<w:tcBorders>
|
<w:tcBorders>
|
||||||
|
<w:top w:val="single" w:sz="2" w:space="0" w:color="000000"/>
|
||||||
<w:left w:val="single" w:sz="2" w:space="0" w:color="000000"/>
|
<w:left w:val="single" w:sz="2" w:space="0" w:color="000000"/>
|
||||||
<w:bottom w:val="single" w:sz="2" w:space="0" w:color="000000"/>
|
<w:bottom w:val="single" w:sz="2" w:space="0" w:color="000000"/>
|
||||||
<w:insideH w:val="single" w:sz="2" w:space="0" w:color="000000"/>
|
<w:insideH w:val="single" w:sz="2" w:space="0" w:color="000000"/>
|
||||||
|
@ -107,8 +108,9 @@
|
||||||
</w:tc>
|
</w:tc>
|
||||||
<w:tc>
|
<w:tc>
|
||||||
<w:tcPr>
|
<w:tcPr>
|
||||||
<w:tcW w:w="4820" w:type="dxa"/>
|
<w:tcW w:w="4819" w:type="dxa"/>
|
||||||
<w:tcBorders>
|
<w:tcBorders>
|
||||||
|
<w:top w:val="single" w:sz="2" w:space="0" w:color="000000"/>
|
||||||
<w:left w:val="single" w:sz="2" w:space="0" w:color="000000"/>
|
<w:left w:val="single" w:sz="2" w:space="0" w:color="000000"/>
|
||||||
<w:bottom w:val="single" w:sz="2" w:space="0" w:color="000000"/>
|
<w:bottom w:val="single" w:sz="2" w:space="0" w:color="000000"/>
|
||||||
<w:right w:val="single" w:sz="2" w:space="0" w:color="000000"/>
|
<w:right w:val="single" w:sz="2" w:space="0" w:color="000000"/>
|
||||||
|
@ -139,5 +141,14 @@
|
||||||
<w:rPr></w:rPr>
|
<w:rPr></w:rPr>
|
||||||
</w:r>
|
</w:r>
|
||||||
</w:p>
|
</w:p>
|
||||||
|
<w:sectPr>
|
||||||
|
<w:type w:val="nextPage"/>
|
||||||
|
<w:pgSz w:w="11906" w:h="16838"/>
|
||||||
|
<w:pgMar w:left="1134" w:right="1134" w:header="0" w:top="1134" w:footer="0" w:bottom="1134" w:gutter="0"/>
|
||||||
|
<w:pgNumType w:fmt="decimal"/>
|
||||||
|
<w:formProt w:val="false"/>
|
||||||
|
<w:textDirection w:val="lrTb"/>
|
||||||
|
<w:docGrid w:type="default" w:linePitch="600" w:charSpace="32768"/>
|
||||||
|
</w:sectPr>
|
||||||
</w:body>
|
</w:body>
|
||||||
</w:document>
|
</w:document>
|
|
@ -1,2 +1,2 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||||
<w:fonts xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships"><w:font w:name="Times New Roman"><w:charset w:val="00"/><w:family w:val="roman"/><w:pitch w:val="variable"/></w:font><w:font w:name="Symbol"><w:charset w:val="02"/><w:family w:val="roman"/><w:pitch w:val="variable"/></w:font><w:font w:name="Arial"><w:charset w:val="00"/><w:family w:val="swiss"/><w:pitch w:val="variable"/></w:font><w:font w:name="Liberation Serif"><w:altName w:val="Times New Roman"/><w:charset w:val="01"/><w:family w:val="roman"/><w:pitch w:val="variable"/></w:font><w:font w:name="Liberation Sans"><w:altName w:val="Arial"/><w:charset w:val="01"/><w:family w:val="swiss"/><w:pitch w:val="variable"/></w:font></w:fonts>
|
<w:fonts xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships"><w:font w:name="Times New Roman"><w:charset w:val="00"/><w:family w:val="roman"/><w:pitch w:val="variable"/></w:font><w:font w:name="Symbol"><w:charset w:val="02"/><w:family w:val="roman"/><w:pitch w:val="variable"/></w:font><w:font w:name="Arial"><w:charset w:val="00"/><w:family w:val="swiss"/><w:pitch w:val="variable"/></w:font><w:font w:name="Liberation Serif"><w:altName w:val="Times New Roman"/><w:charset w:val="01"/><w:family w:val="roman"/><w:pitch w:val="variable"/></w:font><w:font w:name="Liberation Sans"><w:altName w:val="Arial"/><w:charset w:val="01"/><w:family w:val="roman"/><w:pitch w:val="variable"/></w:font></w:fonts>
|
|
@ -1,2 +1,2 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||||
<w:settings xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main"><w:zoom w:percent="100"/><w:defaultTabStop w:val="709"/><w:compat><w:doNotExpandShiftReturn/></w:compat></w:settings>
|
<w:settings xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main"><w:zoom w:percent="100"/><w:defaultTabStop w:val="709"/><w:compat><w:doNotExpandShiftReturn/></w:compat><w:compat></w:compat><w:themeFontLang w:val="" w:eastAsia="" w:bidi=""/></w:settings>
|
|
@ -1,107 +1,2 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||||
<w:styles xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main"
|
<w:styles xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:w14="http://schemas.microsoft.com/office/word/2010/wordml" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="w14"><w:docDefaults><w:rPrDefault><w:rPr><w:rFonts w:ascii="Liberation Serif" w:hAnsi="Liberation Serif" w:eastAsia="Noto Sans CJK JP" w:cs="Lohit Devanagari"/><w:kern w:val="2"/><w:szCs w:val="24"/><w:lang w:val="en-US" w:eastAsia="ja-JP" w:bidi="hi-IN"/></w:rPr></w:rPrDefault><w:pPrDefault><w:pPr></w:pPr></w:pPrDefault></w:docDefaults><w:style w:type="paragraph" w:styleId="Normal"><w:name w:val="Normal"/><w:qFormat/><w:pPr><w:widowControl/><w:overflowPunct w:val="false"/><w:bidi w:val="0"/><w:jc w:val="left"/></w:pPr><w:rPr><w:rFonts w:ascii="Liberation Serif" w:hAnsi="Liberation Serif" w:eastAsia="Noto Sans CJK JP" w:cs="Lohit Devanagari"/><w:color w:val="auto"/><w:kern w:val="2"/><w:sz w:val="24"/><w:szCs w:val="24"/><w:lang w:val="en-US" w:eastAsia="ja-JP" w:bidi="hi-IN"/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="Style14"><w:name w:val="見出し"/><w:basedOn w:val="Normal"/><w:next w:val="Style15"/><w:qFormat/><w:pPr><w:keepNext w:val="true"/><w:spacing w:before="240" w:after="120"/></w:pPr><w:rPr><w:rFonts w:ascii="Liberation Sans" w:hAnsi="Liberation Sans" w:eastAsia="Noto Sans CJK JP" w:cs="Lohit Devanagari"/><w:sz w:val="28"/><w:szCs w:val="28"/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="Style15"><w:name w:val="Body Text"/><w:basedOn w:val="Normal"/><w:pPr><w:spacing w:lineRule="auto" w:line="276" w:before="0" w:after="140"/></w:pPr><w:rPr></w:rPr></w:style><w:style w:type="paragraph" w:styleId="Style16"><w:name w:val="List"/><w:basedOn w:val="Style15"/><w:pPr></w:pPr><w:rPr><w:rFonts w:cs="Lohit Devanagari"/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="Style17"><w:name w:val="Caption"/><w:basedOn w:val="Normal"/><w:qFormat/><w:pPr><w:suppressLineNumbers/><w:spacing w:before="120" w:after="120"/></w:pPr><w:rPr><w:rFonts w:cs="Lohit Devanagari"/><w:i/><w:iCs/><w:sz w:val="24"/><w:szCs w:val="24"/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="Style18"><w:name w:val="索引"/><w:basedOn w:val="Normal"/><w:qFormat/><w:pPr><w:suppressLineNumbers/></w:pPr><w:rPr><w:rFonts w:cs="Lohit Devanagari"/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="Style19"><w:name w:val="表の内容"/><w:basedOn w:val="Normal"/><w:qFormat/><w:pPr><w:suppressLineNumbers/></w:pPr><w:rPr></w:rPr></w:style></w:styles>
|
||||||
xmlns:w14="http://schemas.microsoft.com/office/word/2010/wordml"
|
|
||||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="w14">
|
|
||||||
<w:docDefaults>
|
|
||||||
<w:rPrDefault>
|
|
||||||
<w:rPr>
|
|
||||||
<w:rFonts w:ascii="Liberation Serif" w:hAnsi="Liberation Serif" w:eastAsia="Noto Sans CJK JP" w:cs="Lohit Devanagari"/>
|
|
||||||
<w:kern w:val="2"/>
|
|
||||||
<w:sz w:val="24"/>
|
|
||||||
<w:szCs w:val="24"/>
|
|
||||||
<w:lang w:val="en-US" w:eastAsia="ja-JP" w:bidi="hi-IN"/>
|
|
||||||
</w:rPr>
|
|
||||||
</w:rPrDefault>
|
|
||||||
<w:pPrDefault>
|
|
||||||
<w:pPr>
|
|
||||||
<w:widowControl/>
|
|
||||||
</w:pPr>
|
|
||||||
</w:pPrDefault>
|
|
||||||
</w:docDefaults>
|
|
||||||
<w:style w:type="paragraph" w:styleId="Normal">
|
|
||||||
<w:name w:val="Normal"/>
|
|
||||||
<w:qFormat/>
|
|
||||||
<w:pPr>
|
|
||||||
<w:widowControl/>
|
|
||||||
<w:kinsoku w:val="true"/>
|
|
||||||
<w:overflowPunct w:val="true"/>
|
|
||||||
<w:autoSpaceDE w:val="true"/>
|
|
||||||
<w:bidi w:val="0"/>
|
|
||||||
</w:pPr>
|
|
||||||
<w:rPr>
|
|
||||||
<w:rFonts w:ascii="Liberation Serif" w:hAnsi="Liberation Serif" w:eastAsia="Noto Sans CJK JP" w:cs="Lohit Devanagari"/>
|
|
||||||
<w:color w:val="auto"/>
|
|
||||||
<w:kern w:val="2"/>
|
|
||||||
<w:sz w:val="24"/>
|
|
||||||
<w:szCs w:val="24"/>
|
|
||||||
<w:lang w:val="en-US" w:eastAsia="ja-JP" w:bidi="hi-IN"/>
|
|
||||||
</w:rPr>
|
|
||||||
</w:style>
|
|
||||||
<w:style w:type="paragraph" w:styleId="Style14">
|
|
||||||
<w:name w:val="見出し"/>
|
|
||||||
<w:basedOn w:val="Normal"/>
|
|
||||||
<w:next w:val="Style15"/>
|
|
||||||
<w:qFormat/>
|
|
||||||
<w:pPr>
|
|
||||||
<w:keepNext w:val="true"/>
|
|
||||||
<w:spacing w:before="240" w:after="120"/>
|
|
||||||
</w:pPr>
|
|
||||||
<w:rPr>
|
|
||||||
<w:rFonts w:ascii="Liberation Sans" w:hAnsi="Liberation Sans" w:eastAsia="Noto Sans CJK JP" w:cs="Lohit Devanagari"/>
|
|
||||||
<w:sz w:val="28"/>
|
|
||||||
<w:szCs w:val="28"/>
|
|
||||||
</w:rPr>
|
|
||||||
</w:style>
|
|
||||||
<w:style w:type="paragraph" w:styleId="Style15">
|
|
||||||
<w:name w:val="Body Text"/>
|
|
||||||
<w:basedOn w:val="Normal"/>
|
|
||||||
<w:pPr>
|
|
||||||
<w:spacing w:lineRule="auto" w:line="276" w:before="0" w:after="140"/>
|
|
||||||
</w:pPr>
|
|
||||||
<w:rPr></w:rPr>
|
|
||||||
</w:style>
|
|
||||||
<w:style w:type="paragraph" w:styleId="Style16">
|
|
||||||
<w:name w:val="List"/>
|
|
||||||
<w:basedOn w:val="Style15"/>
|
|
||||||
<w:pPr></w:pPr>
|
|
||||||
<w:rPr>
|
|
||||||
<w:rFonts w:cs="Lohit Devanagari"/>
|
|
||||||
</w:rPr>
|
|
||||||
</w:style>
|
|
||||||
<w:style w:type="paragraph" w:styleId="Style17">
|
|
||||||
<w:name w:val="Caption"/>
|
|
||||||
<w:basedOn w:val="Normal"/>
|
|
||||||
<w:qFormat/>
|
|
||||||
<w:pPr>
|
|
||||||
<w:suppressLineNumbers/>
|
|
||||||
<w:spacing w:before="120" w:after="120"/>
|
|
||||||
</w:pPr>
|
|
||||||
<w:rPr>
|
|
||||||
<w:rFonts w:cs="Lohit Devanagari"/>
|
|
||||||
<w:i/>
|
|
||||||
<w:iCs/>
|
|
||||||
<w:sz w:val="24"/>
|
|
||||||
<w:szCs w:val="24"/>
|
|
||||||
</w:rPr>
|
|
||||||
</w:style>
|
|
||||||
<w:style w:type="paragraph" w:styleId="Style18">
|
|
||||||
<w:name w:val="索引"/>
|
|
||||||
<w:basedOn w:val="Normal"/>
|
|
||||||
<w:qFormat/>
|
|
||||||
<w:pPr>
|
|
||||||
<w:suppressLineNumbers/>
|
|
||||||
</w:pPr>
|
|
||||||
<w:rPr>
|
|
||||||
<w:rFonts w:cs="Lohit Devanagari"/>
|
|
||||||
</w:rPr>
|
|
||||||
</w:style>
|
|
||||||
<w:style w:type="paragraph" w:styleId="Style19">
|
|
||||||
<w:name w:val="表の内容"/>
|
|
||||||
<w:basedOn w:val="Normal"/>
|
|
||||||
<w:qFormat/>
|
|
||||||
<w:pPr>
|
|
||||||
<w:suppressLineNumbers/>
|
|
||||||
</w:pPr>
|
|
||||||
<w:rPr></w:rPr>
|
|
||||||
</w:style>
|
|
||||||
</w:styles>
|
|
|
@ -1,116 +1,2 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||||
<w:styles xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main"
|
<w:styles xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:w14="http://schemas.microsoft.com/office/word/2010/wordml" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="w14"><w:docDefaults><w:rPrDefault><w:rPr><w:rFonts w:ascii="Liberation Serif" w:hAnsi="Liberation Serif" w:eastAsia="Noto Sans CJK JP" w:cs="Lohit Devanagari"/><w:kern w:val="2"/><w:sz w:val="24"/><w:szCs w:val="24"/><w:lang w:val="en-US" w:eastAsia="ja-JP" w:bidi="hi-IN"/></w:rPr></w:rPrDefault><w:pPrDefault><w:pPr><w:widowControl/></w:pPr></w:pPrDefault></w:docDefaults><w:style w:type="paragraph" w:styleId="Normal"><w:name w:val="Normal"/><w:qFormat/><w:pPr><w:widowControl/></w:pPr><w:rPr><w:rFonts w:ascii="Liberation Serif" w:hAnsi="Liberation Serif" w:eastAsia="Noto Sans CJK JP" w:cs="Lohit Devanagari"/><w:color w:val="auto"/><w:kern w:val="2"/><w:sz w:val="24"/><w:szCs w:val="24"/><w:lang w:val="en-US" w:eastAsia="ja-JP" w:bidi="hi-IN"/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="Style14"><w:name w:val="見出し"/><w:basedOn w:val="Normal"/><w:next w:val="Style15"/><w:qFormat/><w:pPr><w:keepNext w:val="true"/><w:spacing w:before="240" w:after="120"/></w:pPr><w:rPr><w:rFonts w:ascii="Liberation Sans" w:hAnsi="Liberation Sans" w:eastAsia="Noto Sans CJK JP" w:cs="Lohit Devanagari"/><w:sz w:val="28"/><w:szCs w:val="28"/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="Style15"><w:name w:val="Body Text"/><w:basedOn w:val="Normal"/><w:pPr><w:spacing w:lineRule="auto" w:line="276" w:before="0" w:after="140"/></w:pPr><w:rPr></w:rPr></w:style><w:style w:type="paragraph" w:styleId="Style16"><w:name w:val="List"/><w:basedOn w:val="Style15"/><w:pPr></w:pPr><w:rPr><w:rFonts w:cs="Lohit Devanagari"/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="Style17"><w:name w:val="Caption"/><w:basedOn w:val="Normal"/><w:qFormat/><w:pPr><w:suppressLineNumbers/><w:spacing w:before="120" w:after="120"/></w:pPr><w:rPr><w:rFonts w:cs="Lohit Devanagari"/><w:i/><w:iCs/><w:sz w:val="24"/><w:szCs w:val="24"/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="Style18"><w:name w:val="索引"/><w:basedOn w:val="Normal"/><w:qFormat/><w:pPr><w:suppressLineNumbers/></w:pPr><w:rPr><w:rFonts w:cs="Lohit Devanagari"/></w:rPr></w:style><w:style w:type="paragraph" w:styleId="Style19"><w:name w:val="表の内容"/><w:basedOn w:val="Normal"/><w:qFormat/><w:pPr><w:suppressLineNumbers/></w:pPr><w:rPr></w:rPr></w:style><w:style w:type="paragraph" w:styleId="Style20"><w:name w:val="表の見出し"/><w:basedOn w:val="Style19"/><w:qFormat/><w:pPr><w:suppressLineNumbers/><w:jc w:val="center"/></w:pPr><w:rPr><w:b/><w:bCs/></w:rPr></w:style></w:styles>
|
||||||
xmlns:w14="http://schemas.microsoft.com/office/word/2010/wordml"
|
|
||||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="w14">
|
|
||||||
<w:docDefaults>
|
|
||||||
<w:rPrDefault>
|
|
||||||
<w:rPr>
|
|
||||||
<w:rFonts w:ascii="Liberation Serif" w:hAnsi="Liberation Serif" w:eastAsia="Noto Sans CJK JP" w:cs="Lohit Devanagari"/>
|
|
||||||
<w:kern w:val="2"/>
|
|
||||||
<w:sz w:val="24"/>
|
|
||||||
<w:szCs w:val="24"/>
|
|
||||||
<w:lang w:val="en-US" w:eastAsia="ja-JP" w:bidi="hi-IN"/>
|
|
||||||
</w:rPr>
|
|
||||||
</w:rPrDefault>
|
|
||||||
<w:pPrDefault>
|
|
||||||
<w:pPr>
|
|
||||||
<w:widowControl/>
|
|
||||||
</w:pPr>
|
|
||||||
</w:pPrDefault>
|
|
||||||
</w:docDefaults>
|
|
||||||
<w:style w:type="paragraph" w:styleId="Normal">
|
|
||||||
<w:name w:val="Normal"/>
|
|
||||||
<w:qFormat/>
|
|
||||||
<w:pPr>
|
|
||||||
<w:widowControl/>
|
|
||||||
</w:pPr>
|
|
||||||
<w:rPr>
|
|
||||||
<w:rFonts w:ascii="Liberation Serif" w:hAnsi="Liberation Serif" w:eastAsia="Noto Sans CJK JP" w:cs="Lohit Devanagari"/>
|
|
||||||
<w:color w:val="auto"/>
|
|
||||||
<w:kern w:val="2"/>
|
|
||||||
<w:sz w:val="24"/>
|
|
||||||
<w:szCs w:val="24"/>
|
|
||||||
<w:lang w:val="en-US" w:eastAsia="ja-JP" w:bidi="hi-IN"/>
|
|
||||||
</w:rPr>
|
|
||||||
</w:style>
|
|
||||||
<w:style w:type="paragraph" w:styleId="Style14">
|
|
||||||
<w:name w:val="見出し"/>
|
|
||||||
<w:basedOn w:val="Normal"/>
|
|
||||||
<w:next w:val="Style15"/>
|
|
||||||
<w:qFormat/>
|
|
||||||
<w:pPr>
|
|
||||||
<w:keepNext w:val="true"/>
|
|
||||||
<w:spacing w:before="240" w:after="120"/>
|
|
||||||
</w:pPr>
|
|
||||||
<w:rPr>
|
|
||||||
<w:rFonts w:ascii="Liberation Sans" w:hAnsi="Liberation Sans" w:eastAsia="Noto Sans CJK JP" w:cs="Lohit Devanagari"/>
|
|
||||||
<w:sz w:val="28"/>
|
|
||||||
<w:szCs w:val="28"/>
|
|
||||||
</w:rPr>
|
|
||||||
</w:style>
|
|
||||||
<w:style w:type="paragraph" w:styleId="Style15">
|
|
||||||
<w:name w:val="Body Text"/>
|
|
||||||
<w:basedOn w:val="Normal"/>
|
|
||||||
<w:pPr>
|
|
||||||
<w:spacing w:lineRule="auto" w:line="276" w:before="0" w:after="140"/>
|
|
||||||
</w:pPr>
|
|
||||||
<w:rPr></w:rPr>
|
|
||||||
</w:style>
|
|
||||||
<w:style w:type="paragraph" w:styleId="Style16">
|
|
||||||
<w:name w:val="List"/>
|
|
||||||
<w:basedOn w:val="Style15"/>
|
|
||||||
<w:pPr></w:pPr>
|
|
||||||
<w:rPr>
|
|
||||||
<w:rFonts w:cs="Lohit Devanagari"/>
|
|
||||||
</w:rPr>
|
|
||||||
</w:style>
|
|
||||||
<w:style w:type="paragraph" w:styleId="Style17">
|
|
||||||
<w:name w:val="Caption"/>
|
|
||||||
<w:basedOn w:val="Normal"/>
|
|
||||||
<w:qFormat/>
|
|
||||||
<w:pPr>
|
|
||||||
<w:suppressLineNumbers/>
|
|
||||||
<w:spacing w:before="120" w:after="120"/>
|
|
||||||
</w:pPr>
|
|
||||||
<w:rPr>
|
|
||||||
<w:rFonts w:cs="Lohit Devanagari"/>
|
|
||||||
<w:i/>
|
|
||||||
<w:iCs/>
|
|
||||||
<w:sz w:val="24"/>
|
|
||||||
<w:szCs w:val="24"/>
|
|
||||||
</w:rPr>
|
|
||||||
</w:style>
|
|
||||||
<w:style w:type="paragraph" w:styleId="Style18">
|
|
||||||
<w:name w:val="索引"/>
|
|
||||||
<w:basedOn w:val="Normal"/>
|
|
||||||
<w:qFormat/>
|
|
||||||
<w:pPr>
|
|
||||||
<w:suppressLineNumbers/>
|
|
||||||
</w:pPr>
|
|
||||||
<w:rPr>
|
|
||||||
<w:rFonts w:cs="Lohit Devanagari"/>
|
|
||||||
</w:rPr>
|
|
||||||
</w:style>
|
|
||||||
<w:style w:type="paragraph" w:styleId="Style19">
|
|
||||||
<w:name w:val="表の内容"/>
|
|
||||||
<w:basedOn w:val="Normal"/>
|
|
||||||
<w:qFormat/>
|
|
||||||
<w:pPr>
|
|
||||||
<w:suppressLineNumbers/>
|
|
||||||
</w:pPr>
|
|
||||||
<w:rPr></w:rPr>
|
|
||||||
</w:style>
|
|
||||||
<w:style w:type="paragraph" w:styleId="Style20">
|
|
||||||
<w:name w:val="表の見出し"/>
|
|
||||||
<w:basedOn w:val="Style19"/>
|
|
||||||
<w:qFormat/>
|
|
||||||
<w:pPr>
|
|
||||||
<w:suppressLineNumbers/>
|
|
||||||
<w:jc w:val="center"/>
|
|
||||||
</w:pPr>
|
|
||||||
<w:rPr>
|
|
||||||
<w:b/>
|
|
||||||
<w:bCs/>
|
|
||||||
</w:rPr>
|
|
||||||
</w:style>
|
|
||||||
</w:styles>
|
|
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue