Read document array of bytes word in browser

4

I have a routine of upload and download on a site that is running. However, I can not make it look like word files, directly in the browser, I want to view it as a pdf. What I'm doing is saving the document to disk and sending the byte array to itextsharp.

FileStream stream = new FileStream(@"c:\arquivo.doc", FileMode.Create);
//Escrevo arquivo no fluxo
stream.Write(doc.Arquivo, 0, doc.Arquivo.Length);
//Fecho fluxo pra finalmente salvar em disco
stream.Close();

new FileStreamResult(stream, "application/vnd.ms-word");
    
asked by anonymous 13.10.2015 / 18:09

2 answers

1

Without using external components (such as Aspose.Words , which is paid), can be made from following, using Word interop objects:

private Microsoft.Office.Interop.Word.ApplicationClass MSdoc;
object Unknown = Type.Missing;

private void word2PDF(object Source, object Target)
{   
    if (MSdoc == null)MSdoc = new Microsoft.Office.Interop.Word.ApplicationClass();

    try
    {
        MSdoc.Visible = false;
        MSdoc.Documents.Open(ref Source, ref Unknown,
             ref Unknown, ref Unknown, ref Unknown,
             ref Unknown, ref Unknown, ref Unknown,
             ref Unknown, ref Unknown, ref Unknown,
             ref Unknown, ref Unknown, ref Unknown, ref Unknown, ref Unknown);
         MSdoc.Application.Visible = false;
          MSdoc.WindowState =   Microsoft.Office.Interop.Word.WdWindowState.wdWindowStateMinimize;

        object format = Microsoft.Office.Interop.Word.WdSaveFormat.wdFormatPDF;

        MSdoc.ActiveDocument.SaveAs(ref Target, ref format,
                ref Unknown, ref Unknown, ref Unknown,
                ref Unknown, ref Unknown, ref Unknown,
                ref Unknown, ref Unknown, ref Unknown,
                ref Unknown, ref Unknown, ref Unknown,
               ref Unknown, ref Unknown);
      }
       catch (Exception e)
      {
        MessageBox.Show(e.Message);
       }
     finally
      {
        if (MSdoc != null)
        {
            MSdoc.Documents.Close(ref Unknown, ref Unknown, ref Unknown);
            //WordDoc.Application.Quit(ref Unknown, ref Unknown, ref Unknown);
        }

        WordDoc.Quit(ref Unknown, ref Unknown, ref Unknown);
    }
}

I pulled it out .

The problem is that this requires Word installed on the server, which is not good for ASP.NET MVC applications.

  

I want to improve this answer as soon as I can get a good free alternative to do this conversion.

    
13.10.2015 / 21:25
0

To work with the visualization of the document in your browser is through the plugin, just like your PDF.

There is one for google chrome Office Editing for Docs, Sheets & Slides .

    
13.10.2015 / 18:16