我想编辑.docx文件并使用npoi库。
是一个摘要:
XWPFDocument doc;
using( FileStream fileStream = new FileStream(@"D:\\template.docx", FileMode.Open, FileAccess.Read) ) {
doc = new XWPFDocument(fileStream);
fileStream.Close();
}
// here can change doc or do nothing
using(FileStream fileStreamNew = new FileStream(@"D:\\test.docx", FileMode.CreateNew)) {
doc.Write(fileStreamNew);
fileStreamNew.Close();
}
但是我得到了损坏的文件。当我尝试打开文件时,将显示模式窗口:“很抱歉。我们无法打开test.docx,发现其内容有问题。详细信息:未指定的错误。位置:/word/header1.xml,行:0 ,列:0“
提前谢谢
================================================ ============
更新:
问题在模板文件中。如果我从页眉和页脚中删除图像,那么错误就会消失。但是,如果我放回模板图像,则会返回错误。有什么想法吗?
================================================ =============
更新:
当图像属性“自动换行”具有除“与文本一致”以外的其他值时,会出现问题。就我而言,图像是文本的背景。 (“文字后面”的值)。
答案 0 :(得分:0)
尝试仅使用常规Stream和System.IO.File读取文件,然后使用FileStream和System.IO.File保存。
How to: Create a File or Folder (C# Programming Guide) C# (CSharp) NPOI.XWPF.UserModel.XWPFDocument Code Examples
XWPFDocument doc;
using( Stream fileStream = File.OpenRead("D:\\template.docx") ) {
doc = new XWPFDocument(fileStream);
fileStream.Close();
}
using(FileStream fileStreamNew = File.Create("D:\\test.docx")) {
doc.Write(fileStreamNew);
fileStreamNew.Close();
}
答案 1 :(得分:0)
不确定您是否还需要它。但我修复了一些与 https://github.com/nissl-lab/npoi/pull/510 中的换行文本图像相关的错误 我无法捕捉到所有案例,如果您发现它没有捕捉到的东西,请告诉我。