【问题标题】:Format not preserved when copying text from one bookmark to another将文本从一个书签复制到另一个书签时不保留格式
【发布时间】:2013-07-25 13:33:23
【问题描述】:

我正在尝试使用书签通过 C# 代码动态地将文本从一个 Word 文档复制到另一个 Word 文档。我只能从一个文档的书签中检索数据并将其插入到另一个文档中,但是文本的格式正在发生变化。

例如,如果我在源文档书签中添加了一些颜色、字体,则相同的格式不会复制到目标文档的书签中;仅复制文本。

//getting the text from source documents bookmark.
string text = Document1.Bookmarks.get_Item(ref objI).Range.Text.ToString();
//copying the text to Document 2's bookmark
objWordDoc1.Bookmarks.get_Item(booktest).Range.Text = text;

如何也复制格式?

【问题讨论】:

  • 两个文档是否同时打开?是否可以使用剪贴板执行此任务(如复制和粘贴)?
  • 首先是……打开源文档,将文本从书签复制到变量中……然后打开目标文档并插入文本……

标签: c# .net ms-word


【解决方案1】:

你有两个选择:

  1. 使用复制和粘贴,例如

    // Copy
    Document1.Bookmarks.get_Item(ref objI).Range.Copy();
    
    // Paste
    objWordDoc1.Bookmarks.get_Item(booktest).Range.PasteAndFormat(WdRecoveryType.wdFormatOriginalFormatting);
    
  2. 使用格式化文本属性(http://msdn.microsoft.com/de-de/library/microsoft.office.interop.word.range.formattedtext(v=office.11).aspx。(我没有测试过)

    Range text = Document1.Bookmarks.get_Item(ref objI).Range.FormattedText; objWordDoc1.Bookmarks.get_Item(booktest).Range = FormattedText;

【讨论】:

  • 嗨 Vadim .....感谢您的回复....但它不起作用....通过使用上面的代码..它没有复制文本..而是复制了一些垃圾文字...
  • 该代码旨在作为如何完成此操作的示例。我已将其修改为应该可以使用的东西。告诉我没关系。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-17
  • 2019-10-08
  • 1970-01-01
  • 2019-08-18
  • 1970-01-01
  • 2021-03-06
相关资源
最近更新 更多