我正在尝试使用 cratedocx_rust
将 Word 文档列表合并为一个。我尝试了这个,但我遇到了一个问题,doc
因为它在循环结束时被丢弃了for
。
use docx_rust::{Docx, DocxFile};
fn merge_docs<'a>(file_paths: &[&str], output_path: &str) -> Result<(), Box<dyn std::error::Error>> {
let mut merged_doc = Docx::default();
for path in file_paths {
let doc = DocxFile::from_file(Path::new(path))?; // No Rc here initially
let mut p_doc = doc.parse().unwrap();
merged_doc.document.body.content.extend(p_doc.document.body.content.drain(..));
}
merged_doc.write_file(Path::new(output_path))?;
Ok(())
}
我尝试将每个打开的文档推送到一个向量中,但这并不能延长生命周期。我尝试将它们存储到一个中Rc::new()
,但没有成功。
我会欢迎任何解决方案!