2009-04-21 3 views
5

Я использую приведенный ниже код для преобразования Word Doc в файл изображения. Но изображение кажется слишком большим, и содержимое не подходит - есть ли способ сделать снимок или сохранить изображение по размеру?Сохранение документа 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); 
     } 
    } 

ответ

0

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

0

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

1

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

3

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

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

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

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

0

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

+3

Это не дает ответа на актуальный вопрос , ОП явно просит о программном решении. – twoleggedhorse

Смежные вопросы