docx_template/
lib.rs

1pub mod docx;
2pub mod error;
3pub mod image;
4pub mod request;
5pub mod merge;
6
7#[cfg(test)]
8mod tests {
9    use crate::docx::DocxTemplate;
10    use crate::merge::{merge_docx, DocxConcat};
11
12    #[tokio::test] // 使用 tokio 运行时
13    async fn test_replacement() {
14        // 1. 创建模板处理器
15        let mut docx_template = DocxTemplate::new();
16
17        // 2. 添加要替换的内容
18        docx_template.add_text_replacement("{{groupLeader}}", "Acme 公司");
19        docx_template.add_text_replacement("{{groupMembers}}", "张三");
20        docx_template.add_text_replacement("{{city}}", "2023-11-25");
21        docx_template.add_text_replacement("{{town}}", "¥10,000");
22        docx_template.add_text_replacement("{{county}}", "30天内付清");
23
24        docx_template.add_image_url_replacement("{{photo1}}", Some("http://gips3.baidu.com/it/u=100751361,1567855012&fm=3028&app=3028&f=JPEG&fmt=auto?w=960&h=1280")).await.expect("msg");
25        docx_template.add_image_url_size_replacement("{{photo2}}", Some("http://gips3.baidu.com/it/u=100751361,1567855012&fm=3028&app=3028&f=JPEG&fmt=auto?w=960&h=1280"),5.0,5.0).await.expect("msg");
26        docx_template
27            .add_image_file_replacement("{{photo3}}", Some("./data/bgImg.png"))
28            .expect("添加本地图片失败");
29        docx_template
30            .add_image_file_size_replacement("{{photo4}}", Some("./data/bgImg.png"), 5.0, 5.0)
31            .expect("添加图片失败");
32
33        // 3. 处理模板并生成新文档
34        docx_template
35            .process_template("./data/西藏自治区严格管控核查表单.docx", "output.docx")
36            .expect("");
37
38        println!("文档生成成功!");
39    }
40    
41    #[test]
42    fn test_merge_docx() {
43        
44        let inputs = vec![
45            "./data/FXYB020.docx".to_string(),
46            "./data/FXYB021.docx".to_string(),
47        ];
48        let output = "merge.docx".to_string();
49        
50        let _ = merge_docx(
51            &inputs,
52            output,
53            DocxConcat::PAGE
54        );
55        
56    }
57}