将word文档保存为图像

时间:2009-04-21 23:46:07

标签: c# image ms-word

我使用以下代码将Word文档转换为图像文件。但是图片看起来太大了,而且内容不合适 - 有没有办法渲染图片或将图片保存到大小?

    private void btnConvert_Click(object sender, EventArgs e)
    {
        if (string.IsNullOrEmpty(txtFileName.Text))
        {
            MessageBox.Show("Choose a document to convert", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            txtFileName.Focus();
            return;
        }

        ApplicationClass wordApp = new ApplicationClass();
        object objectMissing = Missing.Value;

        try
        {
            object fileName = txtFileName.Text;
            FileStream fs = new FileStream(fileName.ToString(), FileMode.Open, FileAccess.Read);
            Byte[] data = new Byte[fs.Length];
            fs.Read(data, 0, data.Length);

            Document doc = wordApp.Documents.Open(ref fileName, ref objectMissing, ref objectMissing, ref objectMissing, ref objectMissing, ref objectMissing, ref objectMissing,
                                   ref objectMissing, ref objectMissing, ref objectMissing, ref objectMissing, ref objectMissing, ref objectMissing,
                                   ref objectMissing, ref objectMissing, ref objectMissing);


            byte[] range = (byte[]) wordApp.ActiveDocument.Content.EnhMetaFileBits;
            if (range != null)
            {
                MemoryStream ms = new MemoryStream(range);
                Metafile mf = new Metafile(ms);
                picImage.Height = mf.Height;
                picImage.Width = mf.Width;
                mf.Save("c:\\test.png", ImageFormat.Png);
                picImage.Image = Image.FromFile("c:\\test.png");
            }
        }
        finally
        {
            wordApp.Quit(ref objectMissing, ref objectMissing, ref objectMissing);
        }
    }

5 个答案:

答案 0 :(得分:3)

事实证明这很简单:

    private void renderImage(byte[] imageData)
    {
        using (MemoryStream ms = new MemoryStream(imageData))
        {
            Image image = Image.FromStream(ms);
            picImage.Image = image;
        }
    }

这是将第一页显示为图像,但它也应该很容易呈现其他页面。

感谢所有回答

的人

答案 1 :(得分:1)

将其转换为任意大小,然后使用imagemagick:http://www.imagemagick.org/script/index.php调整大小或执行其他任何需要的后处理(它可以做很多)

答案 2 :(得分:0)

如何使用Microsoft Document Image Writer将文档打印为TIFF?

答案 3 :(得分:0)

您也可以在保存后以编程方式调整图像大小。

答案 4 :(得分:0)

将内容复制到Powerpoint(如果可以复制),然后您可以将幻灯片保存为所需格式的图像