gpt4 book ai didi

c# - Microsoft Word 中的 SaveCopyAs 行为

转载 作者:行者123 更新时间:2023-12-02 12:28:15 26 4
gpt4 key购买 nike

众所周知,Word 不像 PowerPoint 或 Excel 那样提供 SaveCopyAs。我尝试了不同的方法,但没有得到令人满意的结果。

我可以使用正确的格式(元素定位 -> wdPasteDefault)或正确的样式(字体和颜色 -> wdPasteDefault)即时复制文档。

如果用户关闭原始文档,则必须询问他是否应保存文档并选择路径。

目前我已经在 Word 2016 上尝试了不同的方法。最后我想支持 2010 到 2016。

一种方法是:

        object wdWhat = Microsoft.Office.Interop.Word.WdGoToItem.wdGoToPage;
object wdWhich = Microsoft.Office.Interop.Word.WdGoToDirection.wdGoToAbsolute;

Microsoft.Office.Interop.Word.Range range = document.Range(ref missObj, ref missObj);
Microsoft.Office.Interop.Word.Range pageRange = document.Range(ref missObj, ref missObj);

pageRange.Start = range.GoTo(ref wdWhat, ref wdWhich, ref missObj, ref missObj).Start;
pageRange.End = document.Range(ref missObj, ref missObj).End;
pageRange.Copy();

Microsoft.Office.Interop.Word.Document newDoc = AddinModule.CurrentInstance.WordApp.Documents.Add(ref missObj, ref missObj, ref missObj, ref missObj);

newDoc.PageSetup.PageWidth = document.PageSetup.PageWidth;
newDoc.PageSetup.PageHeight = document.PageSetup.PageHeight;
AddinModule.CurrentInstance.WordApp.Selection.PasteAndFormat(Microsoft.Office.Interop.Word.WdRecoveryType.wdPasteDefault);

object newDocName = filePath;
newDoc.SaveAs(ref newDocName, ref missObj, ref missObj, ref missObj, ref missObj, ref missObj, ref missObj, ref missObj, ref missObj, ref missObj, ref missObj, ref missObj, ref missObj, ref missObj, ref missObj, ref missObj);
object saveChanges = WdSaveOptions.wdSaveChanges;
((Microsoft.Office.Interop.Word._Document)newDoc).Close(saveChanges, ref missObj, ref missObj);
Marshal.ReleaseComObject(newDoc);
newDoc = null;

最佳答案

有一个众所周知的解决方案 IPersistFile ,也许这对你来说已经足够了:

using System.Runtime.InteropServices.ComTypes;

var f = (IPersistFile)doc;
f.Save("[path]", false);

关于c# - Microsoft Word 中的 SaveCopyAs 行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46947015/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com