在WPF中查看word文档

时间:2014-11-14 11:17:26

标签: c# .net wpf

这个我的程序查看文件word文档,在运行程序时从FileDialog中选择文件没有显示任何东西,我添加了DocX作为参考,它有什么错误?

<Window x:Class="Wordviewer.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Height="524" Width="901">
<Grid Background="#FF464966">
    <DocumentViewer HorizontalAlignment="Left" Margin="12,41,0,0"
                Name="documentViewer1" VerticalAlignment="Top" Height="508" Width="923" BorderBrush="#FFA28D8D" />
    <TextBox Height="29" HorizontalAlignment="Left" Margin="12,6,0,0"
         Name="FileNameTextBox" VerticalAlignment="Top" Width="730" TextChanged="SelectedFileTextBox_TextChanged" />
    <Button Content="Browse" Height="30" HorizontalAlignment="Left" Margin="757,6,0,0"
        Name="BrowseButton" VerticalAlignment="Top" Width="178" Click="BrowseButton_Click" FontWeight="Bold">
        <Button.BorderBrush>
            <LinearGradientBrush EndPoint="1,0.5" StartPoint="0,0.5">
                <GradientStop Color="Black" Offset="0" />
                <GradientStop Color="#FFD0BDBD" Offset="1" />
            </LinearGradientBrush>
        </Button.BorderBrush>
    </Button>
</Grid>

和这个

  private void BrowseButton_Click(object sender, RoutedEventArgs e)
    {
        // Create OpenFileDialog 
        Microsoft.Win32.OpenFileDialog dlg = new Microsoft.Win32.OpenFileDialog();

        // Set filter for file extension and default file extension 
        dlg.DefaultExt = ".doc";
        dlg.Filter = "Word documents|*.doc;*.docx";

        // Display OpenFileDialog by calling ShowDialog method 
        Nullable<bool> result = dlg.ShowDialog();

        // Get the selected file name and display in a TextBox 
        if (result == true)
        {
            // Open document 
            string filename = dlg.FileName;
            FileNameTextBox.Text = filename;

            var document = DocX.Load(filename);

            string contents = document.Text;

            // Use the file
        }

    }

2 个答案:

答案 0 :(得分:3)

总之,你不能。 WPF中的DocumentViewer控件无法显示Word文档文件(.doc.docx)。它旨在显示XPS文件,这是一种与PDF类似的概念上不同类型的文档。

(对于初学者来说,Word文档与PDF和XPS文档不同(尽管在打印时看起来相同)因为它们是可编辑的,可回流的,结构化的文档,而PDF和XPS文档基本上只是告诉了打印机要打印的内容(如PostScript) - 将其视为将矢量绘图与光栅图像进行比较,即使它们看起来都相同。)

有很多方法,它们都涉及将Word文档转换为XPS。第一种方法是使用Office Automation加载Word进程并将文档转换为XPS,这需要在系统上安装和使用Word。第二种选择是使用像Aspose或Gem这样的第三方库。

答案 1 :(得分:0)

您实际上有一个选项,您可以使用Office Interop Libraries,打开Word文档,然后将它们保存为XPS,然后您可以查看它。但我认为这有点重。

请检查:http://www.dotnetperls.com/word