我在代码中加了这句,复制后的文件用wps打开,格式不兼容,有变化;怎么能再不删除这句代码的同时,能够也兼容wps软件?
output.CompatibilityOptions.OptimizeFor(MsWordVersion.Word2019);
源代码如下:
代码.zip (1.8 KB)
源文件用wps打开:
复制后的目标文件用wps打开:
源文件(01 拟态密信系统_技术白皮书.docx)和目标文件(2.docx)如下:
文件.zip (3.5 MB)
我在代码中加了这句,复制后的文件用wps打开,格式不兼容,有变化;怎么能再不删除这句代码的同时,能够也兼容wps软件?
output.CompatibilityOptions.OptimizeFor(MsWordVersion.Word2019);
源代码如下:
代码.zip (1.8 KB)
源文件用wps打开:
复制后的目标文件用wps打开:
源文件(01 拟态密信系统_技术白皮书.docx)和目标文件(2.docx)如下:
文件.zip (3.5 MB)
@aspose1111 出现此问题的原因是您的源文档是 DOC,但输出保存为 DOCX。 如果以原始文档格式保存输出,则输出看起来与原始文件相同。 我已经使用 MS Word 进行了测试,并在简单转换为 DOCX 后,其行为与 Aspose.Words 相同。 因此,我认为保留原始文档格式的唯一方法是以与原始文档相同的格式保存输出文档,即 DOC 格式。
Document output = new Document();
output.RemoveAllChildren();
Document input = new Document(@"C:\Temp\in.doc");
output.CopyStylesFromTemplate(input);
output.JustificationMode = input.JustificationMode;
output.DefaultTabStop = input.DefaultTabStop;
output.AppendDocument(input, ImportFormatMode.KeepSourceFormatting);
output.CompatibilityOptions.OptimizeFor(MsWordVersion.Word2019);
output.Save(@"C:\Temp\out.doc"); // Saving in DOC format preserve the original formatting of the document.
@aspose1111 文档布局受原始文档中设置的 CompatibilityOptions.SplitPgBreakAndParaMark 影响,但在使用 CompatibilityOptions.OptimizeFor(MsWordVersion.Word2019) 后重置。 如果设置此选项,文档在 WPS 中看起来正确:
Document output = new Document();
output.RemoveAllChildren();
Document input = new Document(@"C:\Temp\in.doc");
output.CopyStylesFromTemplate(input);
output.JustificationMode = input.JustificationMode;
output.DefaultTabStop = input.DefaultTabStop;
output.AppendDocument(input, ImportFormatMode.KeepSourceFormatting);
output.CompatibilityOptions.OptimizeFor(MsWordVersion.Word2019);
output.CompatibilityOptions.SplitPgBreakAndParaMark = true;
output.Save(@"C:\Temp\out.doc");
我试了下,问题解决了,非常感谢 ![]()