Javascript 使用客户端脚本生成文档预览

Javascript 使用客户端脚本生成文档预览,javascript,jquery,asp.net-mvc,angular,aspose,Javascript,Jquery,Asp.net Mvc,Angular,Aspose,我正在开发一个解决方案,需要在弹出窗口中为(pdf、word、excel)生成预览。通过使用Aspose.Words和Aspose.Cells转换所有格式,我实现了同样的效果。下面是我的代码: public ActionResult PreviewDoc(string fileName) { string fileExtension = fileName.Substring(fileName.LastIndexOf(".") + 1); string

我正在开发一个解决方案,需要在弹出窗口中为(pdf、word、excel)生成预览。通过使用Aspose.Words和Aspose.Cells转换所有格式,我实现了同样的效果。下面是我的代码:

 public ActionResult PreviewDoc(string fileName)
    {

        string fileExtension = fileName.Substring(fileName.LastIndexOf(".") + 1);
        string pathSource = Server.MapPath("~/"+ fileName);
        MemoryStream streamToWrite = new MemoryStream();
        using (FileStream file = new FileStream(pathSource, FileMode.Open, FileAccess.Read))
        {
            byte[] bytes = new byte[file.Length];
            file.Read(bytes, 0, (int)file.Length);
            streamToWrite.Write(bytes, 0, (int)file.Length);
        }

        var previewStream = this.GetPdfStream(fileExtension, streamToWrite);
        // Load the document.

        // Convert the document to byte form.
        byte[] docBytes = previewStream.ToArray();

        // The bytes are now ready to be stored/transmitted.
        // Now reverse the steps to load the bytes back into a document object.
        MemoryStream inStream = new MemoryStream();
        inStream.Write(docBytes, 0, docBytes.Length);
        inStream.Position = 0;

        return new FileStreamResult(inStream, "application/pdf");
    }

    public MemoryStream GetPdfStream(string extension, MemoryStream streamToRead)
    {
        MemoryStream outStream = new MemoryStream();
        if (extension.Trim().ToLower() == "doc" || extension.Trim().ToLower() == "docx")
        {
            Aspose.Words.Document doc = new Aspose.Words.Document(streamToRead);
            // Save the document to stream.
            doc.Save(outStream, SaveFormat.Pdf);
        }
        else if (extension.Trim().ToLower() == "xls" || extension.Trim().ToLower() == "xlsx")
        {
            Aspose.Cells.Workbook workbook = new Aspose.Cells.Workbook(streamToRead);
            workbook.Save(outStream, Aspose.Cells.SaveFormat.Pdf);
        }
        else
        {
            outStream = streamToRead;
        }

        return outStream;
    }

但是,由于Aspose需要许可证,而我没有许可证,所以我们是否有任何客户端方法,从mvc控制器返回流,并将其转换为在客户端预览并在新窗口中打开?

是的,有效的许可证确实是完成任务所必需的。您可以转换输出流并将其发送到客户端浏览器,但它将包含Aspose水印。此外,您还可以获得临时许可证进行评估。请访问并获得30天的临时许可证

我与Aspose合作,担任开发人员宣传员