Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 复制Word文档/实例而不保存_Vb.net_Ms Word - Fatal编程技术网

Vb.net 复制Word文档/实例而不保存

Vb.net 复制Word文档/实例而不保存,vb.net,ms-word,Vb.net,Ms Word,我尝试用以下方法复制整个格式化文本(也有表格): 粘贴时,某些文本的格式(边距)不正确,因此根本没有帮助 我在这里找到的第二种方法: 。。。但是我得到一个错误-Body在部分中没有成员 那么-如何复制未保存的打开文档或实例本身?或者有没有一种方法可以让c&p一切都正确 提前感谢。有没有理由不使用操作系统自己的文件复制功能进行复制?@macrood这应该是使用IPersistFile的替代方法。不应该保存原始文件,但应该可以创建副本并修改这些副本(例如水印)。复制整个文档的唯一方法是选择整个文

我尝试用以下方法复制整个格式化文本(也有表格):

粘贴时,某些文本的格式(边距)不正确,因此根本没有帮助


我在这里找到的第二种方法:

。。。但是我得到一个错误-Body部分中没有成员


那么-如何复制未保存的打开文档或实例本身?或者有没有一种方法可以让c&p一切都正确


提前感谢。

有没有理由不使用操作系统自己的文件复制功能进行复制?@macrood这应该是使用IPersistFile的替代方法。不应该保存原始文件,但应该可以创建副本并修改这些副本(例如水印)。复制整个文档的唯一方法是选择整个文档,然后进行复制。这包括最后一段标记,其中包括存储页边距等的最后一节。你可以试试……既然你不想保存任何东西,为什么不编辑原始文档并放弃任何编辑(即关闭而不保存),或者将原始文档用作模板并放弃从中创建的新文档?@Cindymister我就是这么做的-见我的第一个描述。顺便说一句,我也是手工做的。边距不完全正确。
Dim Type As Microsoft.Office.Interop.Word.WdRecoveryType

[...]

actDoc.Range().Copy()
newDoc.Range().PasteAndFormat(Type)
Dim sourceDoc As New Document("source.docx")
Dim destinationDoc As New Document("target.docx")
For Each sec As Section In sourceDoc.Sections
    For Each obj As DocumentObject In sec.Body.ChildObjects
        destinationDoc.Sections(0).Body.ChildObjects.Add(obj.Clone())
    Next
Next
destinationDoc.SaveToFile("target.docx", FileFormat.Docx2010)
System.Diagnostics.Process.Start("target.docx")