Сохранение текстового документа в виде изображения - PullRequest
5 голосов
/ 22 апреля 2009

Я использую приведенный ниже код для преобразования Word Doc в файл изображения. Но изображение кажется слишком большим, а его содержимое не умещается - есть ли способ сделать изображение или сохранить его в размере?

    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 ]

3 голосов
/ 24 апреля 2009

Оказалось очень просто:

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

Это показывает первую страницу в виде изображения, но это должно быть достаточно легко для отображения других страниц.

Спасибо всем, кто ответил

1 голос
/ 22 апреля 2009

преобразуйте его в любой размер, затем используйте imagemagick: http://www.imagemagick.org/script/index.php, чтобы изменить размер или выполнить любую другую необходимую вам постобработку (это может сделать МНОГО)

0 голосов
/ 26 сентября 2012

Скопируйте содержимое в Powerpoint (если его можно скопировать), и затем вы сможете сохранить слайд в изображение нужного формата

0 голосов
/ 22 апреля 2009

Вы также можете изменить размер изображения программно после его сохранения.

0 голосов
/ 22 апреля 2009

Как насчет печати документа в формате TIFF с использованием Microsoft Document Image Writer?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...