Как открыть Word-документ в RichTextBox? - C#
Формулировка задачи:
подскажите пожалуйста, как открыть word- документ в форме richtextbox?а также потом после работы с ней сохранить этот документ как...с сохранением формата?
Решение задачи: «Как открыть Word-документ в RichTextBox?»
textual
Листинг программы
- using System;
- using System.Drawing;
- using System.Windows.Forms;
- using Word = Microsoft.Office.Interop.Word;
- namespace WindowsFormsApplication12
- {
- public partial class Form1 : Form
- {
- Button button;
- RichTextBox richTextBox;
- public Form1()
- {
- InitializeComponent();
- richTextBox = new RichTextBox();
- richTextBox.Size = new Size(400, 400);
- button = new Button();
- button.Text = "Открыть";
- button.Location = new Point(10, 10);
- this.Size = new Size(500, 500);
- richTextBox.Location = new Point(10, button.Bottom + 10);
- richTextBox.Anchor = AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Top;
- this.Controls.AddRange(new Control[] { button, richTextBox });
- button.Click += new EventHandler(button_Click);
- }
- void button_Click(object sender, EventArgs e)
- {
- OpenFileDialog openFileDialog = new OpenFileDialog();
- openFileDialog.Filter = "MS Word dosuments (*.docx)|*.docx|Rich text format (*.rtf)|*.rtf";
- if (openFileDialog.ShowDialog() == DialogResult.OK)
- {
- if (openFileDialog.FilterIndex == 1)//если формат документа Word 2007
- {
- Word.Application app = new Microsoft.Office.Interop.Word.Application();//процесс ворда
- Object docxFileName = openFileDialog.FileName;//имя файла
- Object missing = Type.Missing;
- //открыли дркумент
- app.Documents.Open(ref docxFileName, ref missing,
- ref missing, ref missing, ref missing, ref missing,
- ref missing, ref missing, ref missing, ref missing,
- ref missing, ref missing, ref missing, ref missing,
- ref missing, ref missing);
- //путь к папке с временными файлами
- string temp = System.IO.Path.GetTempPath();
- //для передачи параметров при пересохранении
- Object lookComments = false;
- Object password = String.Empty;
- Object AddToRecentFiles = true;
- Object WritePassword = String.Empty;
- Object ReadOnlyRecommended = false;
- Object EmbedTrueTypeFonts = false;
- Object SaveFormsData = false;
- Object SaveAsAOCELetter = false;
- //имя файла без расширения
- Object rtfFileName = openFileDialog.SafeFileName.Substring(0, openFileDialog.SafeFileName.Length - ".docx".Length);
- //создали рандом
- Random random = new Random();
- //проверяем есть ли файл с таким именем
- while (System.IO.File.Exists(rtfFileName + ".rtf"))
- //генерируем случайное имя файла
- rtfFileName += random.Next(0, 9).ToString();
- //формат RTF
- Object wdFormatRTF = Word.WdSaveFormat.wdFormatRTF;
- //приписали расширение
- rtfFileName += ".rtf";
- //приписали путь к временным файлам
- rtfFileName = temp + rtfFileName;
- //пересохранили
- app.ActiveDocument.SaveAs(ref rtfFileName,
- ref wdFormatRTF, ref lookComments, ref password, ref AddToRecentFiles, ref WritePassword, ref ReadOnlyRecommended,
- ref EmbedTrueTypeFonts, ref missing, ref SaveFormsData, ref SaveAsAOCELetter, ref missing,
- ref missing, ref missing, ref missing, ref missing);
- //переменная
- Object @false = false;
- //закрыли текущий документ
- app.ActiveDocument.Close(ref @false, ref missing, ref missing);
- //вышли из ворда
- app.Quit(ref @false, ref missing, ref missing);
- //прочли файл
- richTextBox.LoadFile((String)rtfFileName);
- }
- if (openFileDialog.FilterIndex == 2)
- richTextBox.LoadFile(openFileDialog.FileName);
- }
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д