net 预览文件 转换文件

预览SWF文件

swfobject.js  (google浏览器 会阻止 需设置)

@{
    ViewBag.Title = "PdfPreview";
    Layout = "~/Views/Shared/_Layout.cshtml";
    var fileType = ViewBag.fileType;
    var swfpath = ViewBag.filePath;
}

<script src="~/Content/js/jquery.uploadify/swfobject.js"></script>
<script src="~/Content/js/jquery.uploadify/flexpaper_flash_debug.js"></script>

<script src="/Content/js/jquery.uploadify/jquery-1.4.1.min.js"></script>
<div id="app">
    <div id="contentText" style="border: dashed 1px #dddddd; background-color: white;">
        <div id="flashContent">
        </div>
    </div>
</div>

<script type="text/javascript">
    var swfVersionStr = "10.0.0";
    var swf = "@swfpath";
    //var swf = "http://localhost:8080/tmp/94D1390E-930D-4D41-BD88-72FDC3273755/94D1390E-930D-4D41-BD88-72FDC3273755.pdf";
    //var swf = "C:/Users/zz/Desktop/File/1.pdf";
    if (swf != "") {
        var swfpath = swf.replace(‘docx‘, ‘swf‘).replace(‘xlsx‘, ‘swf‘).replace(‘xls‘, ‘swf‘).replace(‘doc‘, ‘swf‘).replace("pdf", "swf");
        var xiSwfUrlStr = "playerProductInstall.swf";
        var swfFile = swfpath;

        var flashvars = {
            SwfFile: escape(swfFile),//编码设置
            Scale: 0.6,
            ZoomTransition: "easeOut",//变焦过渡
            ZoomTime: 0.5,
            ZoomInterval: 0.2,//缩放滑块-移动的缩放基础[工具栏]
            FitPageOnLoad: true,//自适应页面
            FitWidthOnLoad: true,//自适应宽度
            PrintEnabled: true,//是否启用打印
            FullScreenAsMaxWindow: false,//全屏按钮-新页面全屏[工具栏]
            ProgressiveLoading: true,//分割加载
            //MinZoomSize: 0.2,//最小缩放
            //MaxZoomSize: 3,//最大缩放
            PrintToolsVisible: true,//是否显示打印工具
            ViewModeToolsVisible: true,//显示模式工具栏是否显示
            ZoomToolsVisible: true,//缩放工具栏是否显示
            FullScreenVisible: true,//是否全屏
            NavToolsVisible: true,//跳页工具栏
            CursorToolsVisible: true,
            SearchMatchAll: true,//搜索匹配全部
            SearchToolsVisible: true,//是否显示搜索工具
            localeChain: "zh_CN"//语言
        };

        var params = {
        }

        params.quality = "high";
        params.bgcolor = "#ffffff";
        params.allowscriptaccess = "sameDomain";
        params.allowfullscreen = "true";
        var attributes = {};
        attributes.id = "FlexPaperViewer";
        attributes.name = "FlexPaperViewer";
        swfobject.embedSWF(
            "/Content/js/jquery.uploadify/FlexPaperViewer.swf",//默认显示的swfUrl
            "flashContent",//展示区域Id
            "100%",//展示宽度
            (window.innerHeight - 25) + "px",//战术高度
            swfVersionStr, xiSwfUrlStr,
            flashvars, params, attributes);
        swfobject.createCSS("#flashContent",//展示区域Id
            "display:block;text-align:center;");

        //滚动条监听
        window.onload = function () {
            if (window.addEventListener) {
                window.addEventListener(‘DOMMouseScroll‘, deltaDispatcher, false);
            }
            document.body.onmousewheel = deltaDispatcher;
        }
        function deltaDispatcher(event) {
            event = window.event || event;
            var delta = 0;
            if (event.wheelDelta) {
                delta = event.wheelDelta / 120;
                if (window.opera) {
                    delta = -delta;
                }
            } else if (event.detail) {
                delta = -event.detail;
            }
            if (event.preventDefault) {
                event.preventDefault();
            }
            var obj = swfobject.getObjectById("FlexPaperViewer");
            if (typeof (obj.externalMouseEvent) == ‘function‘) {
                obj.externalMouseEvent(delta);
            }
        }
    }
</script>

预览音频 视频 图片

@{
    ViewBag.Title = "文件预览";
    Layout = "~/Views/Shared/_Layout.cshtml";
    var fileType = ViewBag.fileType;
    var filePath = ViewBag.filePath;
}

<div id="app">
    <el-container id="filePreview">
        @*(因为可能不支持vue动态绑定,所以改成js动态加载)*@

        @*<audio v-bind:style="{ ‘display‘:preview.audioShow}" controls>
                <source :src="preview.audioUrl" type="audio/mpeg">
                <source :src="preview.audioUrl" type="audio/ogg">
                <embed height="50" width="100" :src="preview.audioUrl">
            </audio>*@@*//音频*@

        @*<video  v-bind:style="{ ‘height‘: mainHeight - 17 + ‘px‘,‘width‘:‘100%‘,‘display‘:preview.videoShow}" controls autoplay>
                <source :src="preview.videoUrl" type="video/ogg">
                <source :src="preview.videoUrl" type="video/mp4">
                <source :src="preview.videoUrl" type="video/webm">
                <object :data="preview.videoUrl"  v-bind:style="{ ‘height‘: mainHeight - 17 + ‘px‘,‘width‘:‘100%‘}">
                    <embed  v-bind:style="{ ‘height‘: mainHeight - 17 + ‘px‘,‘width‘:‘100%‘}" :src="preview.videoUrl">
                </object>
            </video>*@@*//视频*@

        @*<img :src="preview.imgUrl" :style="{ ‘display‘:preview.imgShow}" />*@@*//图片*@
    </el-container>
</div>

<script>
    var app = new Vue({
        el: "#app",
        data: {
            mainHeight: window.innerHeight,
            preview: {
                fileUrl: "",
                audioUrl: "",
                videoUrl: "",
                imgUrl: "",
                fileShow: "none",
                audioShow: "none",
                videoShow: "",
                imgShow: "none"
            },
        },
        mounted: function () {
            const cur = this;
            window.onload = () => {
                cur.pageLoad();
            };
            window.onresize = () => {
                cur.mainHeight = window.innerHeight;
            }
        },
        methods: {
            pageLoad() {
                const cur = this;
                let fileType = "@fileType";//文件类型
                let filePath = "@filePath";//预览URL
                cur.preview = {
                    audioUrl: "",
                    videoUrl: "",
                    imgUrl: "",
                    audioShow: "none",
                    videoShow: "none",
                    imgShow: "none"
                };
                var filePreview = document.getElementById("filePreview");
                var str = "";
                switch (fileType) {

                    case "1"://视频
                        //cur.preview = {
                        //    audioUrl: "",
                        //    videoUrl: filePath,
                        //    imgUrl: "",
                        //    audioShow: "none",
                        //    videoShow: "",
                        //    imgShow: "none"
                        //};
                        str = "<video style=‘width:100%; height:" + (cur.mainHeight - 17) + "px;‘ controls autoplay>";
                        str += "< source src = ‘" + filePath + "‘ type = ‘video/ogg‘ >";
                        str += "<source src=‘" + filePath + "‘ type=‘video/mp4‘>";
                        str += "<source src=‘" + filePath + "‘ type=‘video/webm‘>";
                        str += "<object data=‘" + filePath + "‘ style=‘width:100%; height:" + (cur.mainHeight - 17) + "px;‘>";
                        str += "<embed style=‘width:100%; height:" + (cur.mainHeight - 17) + "px;‘ src=‘" + filePath + "‘>";
                        str += "</object></video>";
                        break;
                    case "2-1"://图片
                    case "2"://图片
                        //cur.preview = {
                        //    audioUrl: "",
                        //    videoUrl: "",
                        //    imgUrl: filePath,
                        //    audioShow: "none",
                        //    videoShow: "none",
                        //    imgShow: ""
                        //};
                        str = "<img src=\"" + filePath + "\"  />";
                        break;
                    case "3"://音频
                        //cur.preview = {
                        //    audioUrl: filePath,
                        //    videoUrl: "",
                        //    imgUrl: "",
                        //    audioShow: "",
                        //    videoShow: "none",
                        //    imgShow: "none"
                        //};
                        str = "<audio  controls=‘controls‘>";
                        str += "<source src = ‘" + filePath + "‘ type = ‘audio/mpeg‘ >";
                        str += "<source src=‘" + filePath + "‘ type=‘audio/ogg‘>";
                        str += "<object height=‘50‘ width=‘100‘ data=‘" + filePath + "‘>";
                        str += "<embed height=‘50‘ width=‘100‘ src=‘" + filePath + "‘>";
                        str += "</object></audio>";
                        break;
                    default:
                        break;
                }
                filePreview.innerHTML = str;
            },
        }
    });
</script>

后端:

1.返回定义好的文件类型

private string[] imgExts = new string[] { ".BMP", ".GIF", ".JPEG", ".JPG", ".PNG", ".TIFF", ".TIF" };

//转换文件类型
result.Data.RelativePaths = (HttpContext.Current.Request.Url.Authority + "\\" + Index(result.Data.RelativePaths)).Replace("\\", "/");
                string fileext = Util.GetFileExt(doc.DocName).ToLower();
                if (imgExts.Contains(fileext.ToUpper()))//图片
                {
                    if (Util.GetFileExt(result.Data.RelativePaths).ToLower() == ".swf")
                    {
                        result.Data.DocType = "2-2";//图片-swf
                    }
                    else
                    {
                        result.Data.DocType = "2-1";//图片
                    }
                }
                else if (".wav;.mp3;.ra;.rma;.wma;.asf;.mid;.midi;.rmi;.xmi;.ogg;.vqf;.tvq;.mod;.ape;.aiff;.au".Contains(fileext))//音频
                {
                    result.Data.DocType = "3";
                }
                else if (".m4a;.wma;.rm;.midi;.ape;.flac;.avi;.rmvb;.asf;.divx;.mpg;.mpeg;.mpe;.wmv;.mp4;.mkv;.vob".Contains(fileext))//视频
                {
                    result.Data.DocType = "1";
                }
                else if (".doc;.docx".Contains(fileext))//word
                {
                    if (Util.GetFileExt(result.Data.RelativePaths).ToLower() == ".html")
                    {
                        result.Data.DocType = "4-1";//word-html
                    }
                    else
                    {
                        result.Data.DocType = "4-2";//word-swf
                    }

                }
                else if (".xls;.xlsx".Contains(fileext))//excel
                {
                    if (Util.GetFileExt(result.Data.RelativePaths).ToLower() == ".html")
                    {
                        result.Data.DocType = "5-1";//excel-html
                    }
                    else
                    {
                        result.Data.DocType = "5-2";//excel-swf
                    }
                }
                else if (".txt".Contains(fileext))//文本
                {
                    if (Util.GetFileExt(result.Data.RelativePaths).ToLower() == ".swf")
                    {
                        result.Data.DocType = "6-2";
                    }
                    else
                    {
                        result.Data.DocType = "6-1";
                    }
                }
                else if (".html;.htm".Contains(fileext))//网页
                {
                    if (Util.GetFileExt(result.Data.RelativePaths).ToLower() == ".swf")
                    {
                        result.Data.DocType = "7-2";//网页-swf
                    }
                    else
                    {
                        result.Data.DocType = "7-1";//网页
                    }
                }
                else if (".pdf;.swf".Contains(fileext))//pdf
                {
                    result.Data.DocType = "8";
                }
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                result.ErrCode = 1;
                result.ResultMsg = "获取文件失败!";
            }
            return result;

2.转换文件

        /// <summary>
        /// 返回本地文件或共享文件
        /// </summary>
        /// <param name="path">相对路径</param>
        /// <param name="serverPath">共享服务器</param>
        /// <returns></returns>
        public string MapPath(string path, string serverPath = "")
        {
            string ph = path;
            if (string.IsNullOrWhiteSpace(path)) return "";
            string url = ConfigHelper.GetValue("ShareFileUrl");

            if (!string.IsNullOrEmpty(serverPath))
            {
                url = serverPath;
            }

            //共享文件夹能够连接
            if (ConnectShareFileSys())
            {
                ph = path.Replace("~", url).Replace("/", "\\");
            }
            else
            {
                ph = HttpContext.Current.Server.MapPath(path);
            }

            return ph;
        }

        /// <summary>
        /// 获取客户端IP地址
        /// </summary>
        /// <returns></returns>
        public string GetIP()
        {
            string result = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
            if (string.IsNullOrEmpty(result))
            {
                result = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
            }
            if (string.IsNullOrEmpty(result))
            {
                result = HttpContext.Current.Request.UserHostAddress;
            }
            if (string.IsNullOrEmpty(result))
            {
                return "127.0.0.1";
            }
            return result;
        }

        #region Index页面
        /// <summary>
        /// Index页面
        /// </summary>
        /// <param name="url">例:/uploads/......XXX.xls</param>
        public string Index(string url)
        {
            if (string.IsNullOrWhiteSpace(url)) return "";
            string physicalPath = AppDomain.CurrentDomain.BaseDirectory + url;
            string extension = Path.GetExtension(physicalPath);
            string htmlUrl = "";
            if (imgExts.Contains(extension.ToUpper()))//图片
            {
                htmlUrl = PreviewPicture(physicalPath, url);
                return htmlUrl;
            }
            if (".wav;.mp3;.ra;.rma;.wma;.asf;.mid;.midi;.rmi;.xmi;.ogg;.vqf;.tvq;.mod;.ape;.aiff;.au".Contains(extension.ToLower()))//音频
            {
                htmlUrl = PreviewAudio(physicalPath, url);
                return htmlUrl;
            }
            if (".m4a;.wma;.rm;.midi;.ape;.flac;.avi;.rmvb;.asf;.divx;.mpg;.mpeg;.mpe;.wmv;.mp4;.mkv;.vob".Contains(extension.ToLower()))//视频
            {
                htmlUrl = PreviewVideo(physicalPath, url);
                return htmlUrl;
            }
            switch (extension.ToLower())
            {
                case ".xls":
                case ".xlsx":
                    htmlUrl = PreviewExcel(physicalPath, url);
                    break;
                case ".doc":
                case ".docx":
                    htmlUrl = PreviewWord(physicalPath, url);
                    break;
                case ".txt":
                    htmlUrl = PreviewTxt(physicalPath, url);
                    break;
                case ".pdf":
                case ".swf":
                    htmlUrl = PreviewPdf(physicalPath, url);
                    break;
                case ".html":
                case ".htm":
                    htmlUrl = PreviewHtml(physicalPath, url);
                    break;
            }
            return htmlUrl;
        }
        #endregion
        #region 预览Excel
        /// <summary>
        /// 预览Excel
        /// </summary>
        /// <param name="physicalPath">绝对路径</param>
        /// <param name="url">相对路径</param>
        /// <returns></returns>
        public string PreviewExcel(string physicalPath, string url)
        {
            string pdfPath = physicalPath.Substring(0, physicalPath.LastIndexOf(‘.‘)) + ".pdf";
            if (!File.Exists(pdfPath))
            {
                if (ExcelToPdf(physicalPath, pdfPath))//转换成pdf
                {
                    //预览pdf
                    return PreviewPdf(pdfPath, url.Substring(0, url.LastIndexOf(‘.‘)) + ".pdf");
                }
                else//转换成html
                {
                    return ExcelToHtml(physicalPath, url);
                }
            }
            else
            {
                //预览pdf
                return PreviewPdf(pdfPath, url.Substring(0, url.LastIndexOf(‘.‘)) + ".pdf");
            }
        }
        /// <summary>
        /// 预览Excel转换成html(备用)
        /// </summary>
        /// <param name="physicalPath">绝对路径</param>
        /// <param name="url">相对路径</param>
        /// <returns></returns>
        public string ExcelToHtml(string physicalPath, string url)
        {
            Excel.Application application = null;
            Excel.Workbook workbook = null;
            application = new Excel.Application();
            object missing = Type.Missing;
            object trueObject = true;
            application.Visible = false;
            application.DisplayAlerts = false;
            workbook = application.Workbooks.Open(physicalPath, missing, trueObject, missing, missing, missing,
              missing, missing, missing, missing, missing, missing, missing, missing, missing);
            //Save Excel to Html
            object format = Excel.XlFileFormat.xlHtml;
            string htmlName = Path.GetFileNameWithoutExtension(physicalPath) + ".html";
            String outputFile = Path.GetDirectoryName(physicalPath) + "\\" + htmlName;
            workbook.SaveAs(outputFile, format, missing, missing, missing,
                     missing, Excel.XlSaveAsAccessMode.xlNoChange, missing,
                     missing, missing, missing, missing);
            workbook.Close();
            application.Quit();
            return Path.GetDirectoryName(url) + "\\" + htmlName;
        }
        /// <summary>
        /// 把Excel文件转换成PDF格式文件(office)
        /// </summary>
        /// <param name="sourcePath">源文件路径</param>
        /// <param name="targetPath">目标文件路径</param>
        /// <returns>true=转换成功</returns>
        public bool XLSConvertToPDF(string sourcePath, string targetPath)
        {
            bool result = false;
            Excel.XlFixedFormatType targetType = Excel.XlFixedFormatType.xlTypePDF;
            object missing = Type.Missing;
            Excel.ApplicationClass application = null;
            //Excel.Application application = null;//如不支持换上面注释代码
            Excel.Workbook workBook = null;
            try
            {
                application = new Excel.ApplicationClass();
                //application = new Excel.Application();//如不支持换上面注释代码
                object target = targetPath;
                object type = targetType;
                workBook = application.Workbooks.Open(sourcePath, missing, missing, missing, missing, missing,
                        missing, missing, missing, missing, missing, missing, missing, missing, missing);

                workBook.ExportAsFixedFormat(targetType, target, Excel.XlFixedFormatQuality.xlQualityStandard, true, false, missing, missing, missing, missing);
                result = true;
            }
            catch
            {
                result = false;
            }
            finally
            {
                if (workBook != null)
                {
                    workBook.Close(true, missing, missing);
                    workBook = null;
                }
                if (application != null)
                {
                    application.Quit();
                    application = null;
                }
                GC.Collect();
                GC.WaitForPendingFinalizers();
                GC.Collect();
                GC.WaitForPendingFinalizers();
            }
            return result;
        }

        /// <summary>
        /// 把Excel文件转换成PDF格式文件(Aspose)
        /// </summary>
        /// <param name="sourcePath">源文件路径</param>
        /// <param name="targetPath">目标文件路径</param>
        /// <returns>true=转换成功</returns>
        public bool ExcelToPdf(string sourcePath, string targetPath)
        {
            bool result = false;
            try
            {
                //Excel
                Workbook excel = new Workbook(sourcePath);
                excel.Save(targetPath, Aspose.Cells.SaveFormat.Pdf);
                result = true;
            }
            catch (Exception)
            {
                result = false;
            }
            return result;
        }
        #endregion
        #region 预览Word
        /// <summary>
        /// 预览Word
        /// </summary>
        /// <param name="physicalPath">绝对路径</param>
        /// <param name="url">相对路径</param>
        /// <returns></returns>
        public string PreviewWord(string physicalPath, string url)
        {
            string pdfPath = physicalPath.Substring(0, physicalPath.LastIndexOf(‘.‘)) + ".pdf";
            if (!File.Exists(pdfPath))
            {
                if (WordToPdf(physicalPath, pdfPath))//转换成pdf
                {
                    //预览pdf
                    return PreviewPdf(pdfPath, url.Substring(0, url.LastIndexOf(‘.‘)) + ".pdf");
                }
                else//转换成html
                {
                    return WordToHtml(physicalPath, url);
                }
            }
            else
            {
                //预览pdf
                return PreviewPdf(pdfPath, url.Substring(0, url.LastIndexOf(‘.‘)) + ".pdf");
            }
        }
        /// <summary>
        /// 预览Word转换成html(备用)
        /// </summary>
        /// <param name="physicalPath">绝对路径</param>
        /// <param name="url">相对路径</param>
        /// <returns></returns>
        public string WordToHtml(string physicalPath, string url)
        {
            Word._Application application = null;
            Word._Document doc = null;
            application = new Word.Application();
            object missing = Type.Missing;
            object trueObject = true;
            application.Visible = false;
            application.DisplayAlerts = Word.WdAlertLevel.wdAlertsNone;
            doc = application.Documents.Open(physicalPath, missing, trueObject, missing, missing, missing,
              missing, missing, missing, missing, missing, missing, missing, missing, missing, missing);
            //Save Excel to Html
            object format = Word.WdSaveFormat.wdFormatHTML;
            string htmlName = Path.GetFileNameWithoutExtension(physicalPath) + ".html";
            String outputFile = Path.GetDirectoryName(physicalPath) + "\\" + htmlName;
            doc.SaveAs(outputFile, format, missing, missing, missing,
                     missing, Excel.XlSaveAsAccessMode.xlNoChange, missing,
                     missing, missing, missing, missing);
            doc.Close();
            application.Quit();
            return Path.GetDirectoryName(url) + "\\" + htmlName;
        }
        //Word转换成pdf
        /// <summary>
        /// 把Word文件转换成为PDF格式文件(office)
        /// </summary>
        /// <param name="sourcePath">源文件路径</param>
        /// <param name="targetPath">目标文件路径</param>
        /// <returns>true=转换成功</returns>
        private bool DOCConvertToPDF(string sourcePath, string targetPath)
        {
            bool result = false;
            Word.WdExportFormat exportFormat = Word.WdExportFormat.wdExportFormatPDF;
            object paramMissing = Type.Missing;
            Word.ApplicationClass wordApplication = new Word.ApplicationClass();
            //Word.Application wordApplication = new Word.Application();//如不支持换上面注释代码
            Word.Document wordDocument = null;
            try
            {
                object paramSourceDocPath = sourcePath;
                string paramExportFilePath = targetPath;

                Word.WdExportFormat paramExportFormat = exportFormat;
                bool paramOpenAfterExport = false;
                Word.WdExportOptimizeFor paramExportOptimizeFor = Word.WdExportOptimizeFor.wdExportOptimizeForPrint;
                Word.WdExportRange paramExportRange = Word.WdExportRange.wdExportAllDocument;
                int paramStartPage = 0;
                int paramEndPage = 0;
                Word.WdExportItem paramExportItem = Word.WdExportItem.wdExportDocumentContent;
                bool paramIncludeDocProps = true;
                bool paramKeepIRM = true;
                Word.WdExportCreateBookmarks paramCreateBookmarks = Word.WdExportCreateBookmarks.wdExportCreateWordBookmarks;
                bool paramDocStructureTags = true;
                bool paramBitmapMissingFonts = true;
                bool paramUseISO19005_1 = false;

                wordDocument = wordApplication.Documents.Open(
                ref paramSourceDocPath, ref paramMissing, ref paramMissing,
                ref paramMissing, ref paramMissing, ref paramMissing,
                ref paramMissing, ref paramMissing, ref paramMissing,
                ref paramMissing, ref paramMissing, ref paramMissing,
                ref paramMissing, ref paramMissing, ref paramMissing,
                ref paramMissing);

                if (wordDocument != null)
                    wordDocument.ExportAsFixedFormat(paramExportFilePath,
                    paramExportFormat, paramOpenAfterExport,
                    paramExportOptimizeFor, paramExportRange, paramStartPage,
                    paramEndPage, paramExportItem, paramIncludeDocProps,
                    paramKeepIRM, paramCreateBookmarks, paramDocStructureTags,
                    paramBitmapMissingFonts, paramUseISO19005_1,
                    ref paramMissing);
                result = true;
            }
            catch
            {
                result = false;
            }
            finally
            {
                if (wordDocument != null)
                {
                    wordDocument.Close(ref paramMissing, ref paramMissing, ref paramMissing);
                    wordDocument = null;
                }
                if (wordApplication != null)
                {
                    wordApplication.Quit(ref paramMissing, ref paramMissing, ref paramMissing);
                    wordApplication = null;
                }
                GC.Collect();
                GC.WaitForPendingFinalizers();
                GC.Collect();
                GC.WaitForPendingFinalizers();
            }
            return result;
        }

        /// <summary>
        /// 把Word文件转换成为PDF格式文件(Aspose)
        /// </summary>
        /// <param name="sourcePath">源文件路径</param>
        /// <param name="targetPath">目标文件路径</param>
        /// <returns>true=转换成功</returns>
        private bool WordToPdf(string sourcePath, string targetPath)
        {
            bool result = false;
            try
            {
                Aspose.Words.Document doc = new Aspose.Words.Document(sourcePath);
                doc.Save(targetPath, Aspose.Words.SaveFormat.Pdf);
                result = true;
            }
            catch (Exception)
            {
                result = false;
            }
            return result;
        }
        #endregion
        #region 预览Txt
        /// <summary>
        /// 预览Txt
        /// </summary>
        public string PreviewTxt(string physicalPath, string url)
        {
            string pdfPath = physicalPath.Substring(0, physicalPath.LastIndexOf(‘.‘)) + ".pdf";
            if (!File.Exists(pdfPath))//不存在pdf
            {
                if (TxtToPdf(physicalPath, pdfPath))//转换成功
                {
                    //预览pdf
                    return PreviewPdf(pdfPath, url.Substring(0, url.LastIndexOf(‘.‘)) + ".pdf");
                }
                else
                {
                    return url;
                }
            }
            else
            {
                //预览pdf
                return PreviewPdf(pdfPath, url.Substring(0, url.LastIndexOf(‘.‘)) + ".pdf");
            }
        }
        /// <summary>
        /// 把txt文件转换成pdf格式文件
        /// </summary>
        /// <param name="txtFile"></param>
        /// <param name="pdfFile"></param>
        /// <returns></returns>
        public bool TxtToPdf(string txtFile, string pdfFile)
        {
            bool result = false;
            try
            {
                //第一个参数是txt文件物理路径
                string[] lines = System.IO.File.ReadAllLines(txtFile, Encoding.GetEncoding("gb2312"));
                //iTextSharp.text.PageSize.A4    自定义页面大小
                iTextSharp.text.Document doc = new iTextSharp.text.Document(iTextSharp.text.PageSize.A4, 50, 20, 20, 20);
                PdfWriter pdfwriter =
                    PdfWriter.GetInstance(doc, new FileStream(pdfFile, FileMode.Create));

                doc.Open();
                //创建我的基本字体
                BaseFont baseFont = BaseFont.CreateFont(@"C:\Windows\Fonts\simfang.ttf", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
                //创建字体      字体大小,字体粗細    字体颜色
                iTextSharp.text.Font font = new iTextSharp.text.Font(baseFont, 11, iTextSharp.text.Font.NORMAL, BaseColor.BLACK);

                iTextSharp.text.Paragraph paragraph;
                foreach (string line in lines)
                {
                    paragraph = new iTextSharp.text.Paragraph(line, font);
                    doc.Add(paragraph);
                }

                //关闭文件
                doc.Close();
                result = true;
            }
            catch (Exception ex)
            {
                result = false;
            }
            return result;
        }
        /// <summary>
        /// 把txt文件转换成pdf格式文件(备用)
        /// </summary>
        /// <param name="txtFile"></param>
        /// <param name="pdfFile"></param>
        /// <returns></returns>
        public bool TxtConvertPdf(string txtFile, string pdfFile)
        {
            bool result = false;
            try
            {
                var document = new iTextSharp.text.Document(PageSize.A4, 30f, 30f, 30f, 30f);
                PdfWriter.GetInstance(document, new FileStream(pdfFile, FileMode.Create));
                document.Open();
                var bfSun = BaseFont.CreateFont(@"C:\Windows\Fonts\simfang.ttf", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
                var font = new iTextSharp.text.Font(bfSun, 12f);
                var objReader = new StreamReader(txtFile, Encoding.GetEncoding("gb2312"));
                var str = "";
                while (str != null)
                {
                    str = objReader.ReadLine();
                    if (str != null)
                    {
                        document.Add(new iTextSharp.text.Paragraph(str, font));
                    }
                }
                objReader.Close();
                document.Close();
                result = true;
            }
            catch (Exception ex)
            {
                result = false;
            }
            return result;
        }
        #endregion
        #region 预览图片
        /// <summary>
        /// 预览图片
        /// </summary>
        public string PreviewPicture(string physicalPath, string url)
        {
            string pdfPath = physicalPath.Substring(0, physicalPath.LastIndexOf(‘.‘)) + ".pdf";
            if (!File.Exists(pdfPath))//不存在转pdf
            {
                if (ConvertJPG2PDF(physicalPath, pdfPath))//转换成功
                {
                    //预览pdf
                    return PreviewPdf(pdfPath, url.Substring(0, url.LastIndexOf(‘.‘)) + ".pdf");
                }
                else
                {
                    //预览图片
                    return url;
                }
            }
            else
            {
                //预览pdf
                return PreviewPdf(pdfPath, url.Substring(0, url.LastIndexOf(‘.‘)) + ".pdf");
            }
        }
        /// <summary>
        /// 把图片转换pdf格式文件
        /// </summary>
        /// <param name="jpgfile"></param>
        /// <param name="pdf"></param>
        /// <returns></returns>
        public bool ConvertJPG2PDF(string jpgfile, string pdf)
        {
            bool result = false;
            try
            {
                var document = new iTextSharp.text.Document(iTextSharp.text.PageSize.A4, 25, 25, 25, 25);
                using (var stream = new FileStream(pdf, FileMode.Create, FileAccess.Write, FileShare.None))
                {
                    PdfWriter.GetInstance(document, stream);
                    document.Open();
                    using (var imageStream = new FileStream(jpgfile, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
                    {
                        var image = Image.GetInstance(imageStream);
                        if (image.Height > iTextSharp.text.PageSize.A4.Height - 25)
                        {
                            image.ScaleToFit(iTextSharp.text.PageSize.A4.Width - 25, iTextSharp.text.PageSize.A4.Height - 25);
                        }
                        else if (image.Width > iTextSharp.text.PageSize.A4.Width - 25)
                        {
                            image.ScaleToFit(iTextSharp.text.PageSize.A4.Width - 25, iTextSharp.text.PageSize.A4.Height - 25);
                        }
                        image.Alignment = iTextSharp.text.Image.ALIGN_MIDDLE;
                        document.Add(image);
                    }

                    document.Close();
                }
                result = true;
            }
            catch (Exception ex)
            {
                result = false;
            }
            return result;
        }
        #endregion
        #region 预览Pdf
        /// <summary>
        /// 预览Pdf
        /// </summary>
        public string PreviewPdf(string physicalPath, string url)
        {
            if (Util.GetFileExt(physicalPath).ToLower() == ".swf")
            {
                return url;
            }
            string swfPath = physicalPath.Substring(0, physicalPath.LastIndexOf(‘.‘)) + ".swf";
            if (!File.Exists(swfPath))
            {
                Pdf2Swf(physicalPath, swfPath);
            }
            return url.Substring(0, url.LastIndexOf(‘.‘)) + ".swf";
        }

        //pwf2swf.exe 文件所在目录
        private string Pdf2Swfexe = Util.BaseDirectory.TrimEnd(‘\\‘) + @"\Tools\pdf2swf\pdf2swf.exe";

        /// <summary>
        /// 转换所有的页,图片质量80%
        /// </summary>
        /// <param name="pdfPath">PDF文件地址</param>
        /// <param name="swfPath">生成后的SWF文件地址</param>
        public bool Pdf2Swf(string pdfPath, string swfPath)
        {
            return Pdf2Swf(pdfPath, swfPath, 1, GetPageCount(pdfPath), 80);
        }

        /// <summary>
        /// PDF格式转为SWF
        /// </summary>
        /// <param name="pdfPath">PDF文件地址</param>
        /// <param name="swfPath">生成后的SWF文件地址</param>
        /// <param name="beginpage">转换开始页</param>
        /// <param name="endpage">转换结束页</param>
        /// <param name="photoQuality"></param>
        private bool Pdf2Swf(string pdfPath, string swfPath, int beginpage, int endpage, int photoQuality)
        {
            if (!System.IO.File.Exists(Pdf2Swfexe) ||
                !System.IO.File.Exists(pdfPath) ||
                System.IO.File.Exists(swfPath))
            {
                return false;
            }

            //执行的命令参数
            StringBuilder command = new StringBuilder();

            command.AppendFormat("    \"{0}\"", pdfPath);
            command.AppendFormat(" -o \"{0}\"", swfPath);
            command.Append(" -s flashversion=9");
            command.AppendFormat(" -p \"{0}-{1}\"", beginpage, endpage);
            command.AppendFormat(" -j {0}", photoQuality);

            Process p = new Process
            {
                StartInfo =
                {
                    FileName = Pdf2Swfexe,
                    Arguments = command.ToString(),
                    WorkingDirectory = HttpContext.Current.Server.MapPath("~/Bin/"),
                    WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden,
                    UseShellExecute = false,
                    RedirectStandardError = true,
                    CreateNoWindow = false
                }
            };
            p.Start();
            p.BeginErrorReadLine();
            p.WaitForExit();
            p.Close();
            p.Dispose();

            return true;
        }

        /// <summary>
        /// 取PDF总页数
        /// </summary>
        /// <param name="pdfPath">PDF文件地址</param>
        private int GetPageCount(string pdfPath)
        {
            byte[] buffer = System.IO.File.ReadAllBytes(pdfPath);

            if (buffer.Length <= 0)
            {
                return -1;
            }

            string pdfText = Encoding.Default.GetString(buffer);

            Regex rx1 = new Regex(@"/Type\s*/Page[^s]");
            MatchCollection matches = rx1.Matches(pdfText);
            if (matches.Count == 0)
            {
                //iTextSharp读取pdf页数
                PdfReader pdfReader = new PdfReader(pdfPath);
                if (pdfReader.NumberOfPages == 0)
                {
                    return 1;
                }
                return pdfReader.NumberOfPages;
            }
            return matches.Count;
        }

        #region 获取PDF文件的页数(废弃)

        private int BytesLastIndexOf(Byte[] buffer, int length, string Search)
        {
            if (buffer == null)
                return -1;
            if (buffer.Length <= 0)
                return -1;
            byte[] SearchBytes = Encoding.Default.GetBytes(Search.ToUpper());
            for (int i = length - SearchBytes.Length; i >= 0; i--)
            {
                bool bFound = true;
                for (int j = 0; j < SearchBytes.Length; j++)
                {
                    if (ByteUpper(buffer[i + j]) != SearchBytes[j])
                    {
                        bFound = false;
                        break;
                    }
                }
                if (bFound)
                    return i;
            }
            return -1;
        }

        private byte ByteUpper(byte byteValue)
        {
            char charValue = Convert.ToChar(byteValue);
            if (charValue < ‘a‘ || charValue > ‘z‘)
                return byteValue;
            else
                return Convert.ToByte(byteValue - 32);
        }

        /// <summary>
        /// 获取pdf文件的页数
        /// </summary>
        public int GetPDFPageCount(string path) //获取pdf文件的页数
        {
            //path = HttpContext.Current.Server.MapPath(path);
            byte[] buffer = File.ReadAllBytes(path);
            int length = buffer.Length;
            if (buffer == null)
                return -1;
            if (buffer.Length <= 0)
                return -1;
            try
            {
                //Sample
                //      29 0 obj
                //      <</Count 9
                //      Type /Pages
                int i = 0;
                int nPos = BytesLastIndexOf(buffer, length, "/Type/Pages");
                if (nPos == -1)
                    return -1;
                string pageCount = null;
                for (i = nPos; i < length - 10; i++)
                {
                    if (buffer[i] == ‘/‘ && buffer[i + 1] == ‘C‘ && buffer[i + 2] == ‘o‘ && buffer[i + 3] == ‘u‘ && buffer[i + 4] == ‘n‘ && buffer[i + 5] == ‘t‘)
                    {
                        int j = i + 3;
                        while (buffer[j] != ‘/‘ && buffer[j] != ‘>‘)
                            j++;
                        pageCount = Encoding.Default.GetString(buffer, i, j - i);
                        break;
                    }
                }
                if (pageCount == null)
                    return -1;
                int n = pageCount.IndexOf("Count");
                if (n > 0)
                {
                    pageCount = pageCount.Substring(n + 5).Trim();
                    for (i = pageCount.Length - 1; i >= 0; i--)
                    {
                        if (pageCount[i] >= ‘0‘ && pageCount[i] <= ‘9‘)
                        {
                            return int.Parse(pageCount.Substring(0, i + 1));
                        }
                    }
                }
                return -1;
            }
            catch (Exception ex)
            {
                return -1;
            }
        }

        #endregion
        #endregion
        #region 预览视频
        /// <summary>
        /// 预览视频
        /// </summary>
        public string PreviewVideo(string physicalPath, string url)
        {
            if (Util.GetFileExt(physicalPath).ToLower() == ".mp4")
            {
                return url;
            }
            string mp4Path = physicalPath.Substring(0, physicalPath.LastIndexOf(‘.‘)) + ".mp4";
            if (!File.Exists(mp4Path))
            {
                ConvertToMp4(physicalPath, mp4Path);
            }
            return url.Substring(0, url.LastIndexOf(‘.‘)) + ".mp4";
        }
        /// <summary>
        /// 格式转换(Mp4)
        /// </summary>
        /// <param name="pathBefore">原格式文件路径(绝对路劲)</param>
        /// <param name="pathLater">转换后文件路径(绝对路劲)</param>
        /// <returns></returns>
        public string ConvertToMp4(string pathBefore, string pathLater)
        {
            string c = Util.BaseDirectory.TrimEnd(‘\\‘) + "\\Tools\\ffmpeg\\ffmpeg.exe -i " + pathBefore + " -y " + pathLater;
            string str = RunCmd(c);
            return str;
        }
        #endregion
        #region 预览html
        /// <summary>
        /// 预览html
        /// </summary>
        public string PreviewHtml(string physicalPath, string url)
        {
            string pdfPath = physicalPath.Substring(0, physicalPath.LastIndexOf(‘.‘)) + ".pdf";
            if (!File.Exists(pdfPath))//不存在
            {
                if (HtmlConvertToPdf(physicalPath, pdfPath))//转换成功
                {
                    //预览pdf
                    return PreviewPdf(pdfPath, url.Substring(0, url.LastIndexOf(‘.‘)) + ".pdf");
                }
                else
                {
                    return url;
                }
            }
            else
            {
                //预览pdf
                return PreviewPdf(pdfPath, url.Substring(0, url.LastIndexOf(‘.‘)) + ".pdf");
            }
        }
        /// <summary>
        /// HTML文本内容转换为PDF
        /// </summary>
        /// <param name="strHtml">HTML文本内容</param>
        /// <param name="savePath">PDF文件保存的路径</param>
        /// <returns></returns>
        public bool HtmlTextConvertToPdf(string strHtml, string savePath)
        {
            bool flag = false;
            try
            {
                string htmlPath = HtmlTextConvertFile(strHtml);

                flag = HtmlConvertToPdf(htmlPath, savePath);
                File.Delete(htmlPath);
            }
            catch
            {
                flag = false;
            }
            return flag;
        }

        /// <summary>
        /// HTML转换为PDF
        /// </summary>
        /// <param name="htmlPath">可以是本地路径,也可以是网络地址</param>
        /// <param name="savePath">PDF文件保存的路径</param>
        /// <returns></returns>
        public bool HtmlConvertToPdf(string htmlPath, string savePath)
        {
            bool flag = false;
            CheckFilePath(savePath);

            ///这个路径为程序集的目录,因为我把应用程序 wkhtmltopdf.exe 放在了程序集同一个目录下
            //string exePath = AppDomain.CurrentDomain.BaseDirectory.ToString() + "wkhtmltopdf.exe";
            string exePath = Util.BaseDirectory.TrimEnd(‘\\‘) + @"\Tools\wkhtmltopdf\wkhtmltopdf.exe";
            if (!File.Exists(exePath))
            {
                throw new Exception("No application wkhtmltopdf.exe was found.");
            }

            try
            {
                ProcessStartInfo processStartInfo = new ProcessStartInfo();
                processStartInfo.FileName = exePath;
                processStartInfo.WorkingDirectory = Path.GetDirectoryName(exePath);
                processStartInfo.UseShellExecute = false;
                processStartInfo.CreateNoWindow = true;
                processStartInfo.RedirectStandardInput = true;
                processStartInfo.RedirectStandardOutput = true;
                processStartInfo.RedirectStandardError = true;
                processStartInfo.Arguments = GetArguments(htmlPath, savePath);

                Process process = new Process();
                process.StartInfo = processStartInfo;
                process.Start();
                process.WaitForExit();

                ///用于查看是否返回错误信息
                //StreamReader srone = process.StandardError;
                //StreamReader srtwo = process.StandardOutput;
                //string ss1 = srone.ReadToEnd();
                //string ss2 = srtwo.ReadToEnd();
                //srone.Close();
                //srone.Dispose();
                //srtwo.Close();
                //srtwo.Dispose();

                process.Close();
                process.Dispose();

                flag = true;
            }
            catch
            {
                flag = false;
            }
            return flag;
        }

        /// <summary>
        /// 获取命令行参数
        /// </summary>
        /// <param name="htmlPath"></param>
        /// <param name="savePath"></param>
        /// <returns></returns>
        private string GetArguments(string htmlPath, string savePath)
        {
            if (string.IsNullOrEmpty(htmlPath))
            {
                throw new Exception("HTML local path or network address can not be empty.");
            }

            if (string.IsNullOrEmpty(savePath))
            {
                throw new Exception("The path saved by the PDF document can not be empty.");
            }

            StringBuilder stringBuilder = new StringBuilder();
            stringBuilder.Append(" --page-height 297 ");        //页面高度297mm(A4纸高度)
            stringBuilder.Append(" --page-width 210 ");         //页面宽度210mm(A4纸宽度)
            //stringBuilder.Append(" --header-center 我是页眉 ");  //设置居中显示页眉
            //stringBuilder.Append(" --header-line ");         //页眉和内容之间显示一条直线
            //stringBuilder.Append(" --footer-center \"Page [page] of [topage]\" ");    //设置居中显示页脚
            //stringBuilder.Append(" --footer-line ");       //页脚和内容之间显示一条直线
            stringBuilder.Append(" " + htmlPath + " ");       //本地 HTML 的文件路径或网页 HTML 的URL地址
            stringBuilder.Append(" " + savePath + " ");       //生成的 PDF 文档的保存路径
            return stringBuilder.ToString();
        }

        /// <summary>
        /// 验证保存路径
        /// </summary>
        /// <param name="savePath"></param>
        private void CheckFilePath(string savePath)
        {
            string ext = string.Empty;
            string path = string.Empty;
            string fileName = string.Empty;

            ext = Path.GetExtension(savePath);
            if (string.IsNullOrEmpty(ext) || ext.ToLower() != ".pdf")
            {
                throw new Exception("Extension error:This method is used to generate PDF files.");
            }

            fileName = Path.GetFileName(savePath);
            if (string.IsNullOrEmpty(fileName))
            {
                throw new Exception("File name is empty.");
            }

            try
            {
                path = savePath.Substring(0, savePath.IndexOf(fileName));
                if (!Directory.Exists(path))
                {
                    Directory.CreateDirectory(path);
                }
            }
            catch
            {
                throw new Exception("The file path does not exist.");
            }
        }

        /// <summary>
        /// HTML文本内容转HTML文件
        /// </summary>
        /// <param name="strHtml">HTML文本内容</param>
        /// <returns>HTML文件的路径</returns>
        public string HtmlTextConvertFile(string strHtml)
        {
            if (string.IsNullOrEmpty(strHtml))
            {
                throw new Exception("HTML text content cannot be empty.");
            }

            try
            {
                string path = AppDomain.CurrentDomain.BaseDirectory.ToString() + @"html\";
                if (!Directory.Exists(path))
                {
                    Directory.CreateDirectory(path);
                }
                string fileName = path + DateTime.Now.ToString("yyyyMMddHHmmssfff") + new Random().Next(1000, 10000) + ".html";
                FileStream fileStream = new FileStream(fileName, FileMode.Create, FileAccess.ReadWrite, FileShare.ReadWrite);
                StreamWriter streamWriter = new StreamWriter(fileStream, Encoding.Default);
                streamWriter.Write(strHtml);
                streamWriter.Flush();

                streamWriter.Close();
                streamWriter.Dispose();
                fileStream.Close();
                fileStream.Dispose();
                return fileName;
            }
            catch
            {
                throw new Exception("HTML text content error.");
            }
        }
        #endregion
        #region 预览音频
        /// <summary>
        /// 预览音频
        /// </summary>
        public string PreviewAudio(string physicalPath, string url)
        {
            if (Util.GetFileExt(physicalPath).ToLower() == ".mp3")
            {
                return url;
            }
            string mp3Path = physicalPath.Substring(0, physicalPath.LastIndexOf(‘.‘)) + ".mp3";
            if (!File.Exists(mp3Path))
            {
                ConvertToMp3(physicalPath, mp3Path);
            }
            return url.Substring(0, url.LastIndexOf(‘.‘)) + ".mp3";
        }
        /// <summary>
        /// 格式转换(Mp3)
        /// </summary>
        /// <param name="pathBefore">原格式文件路径(绝对路劲)</param>
        /// <param name="pathLater">转换后文件路径(绝对路劲)</param>
        /// <returns></returns>
        public string ConvertToMp3(string pathBefore, string pathLater)
        {
            string c = Util.BaseDirectory.TrimEnd(‘\\‘) + "\\Tools\\ffmpeg\\ffmpeg.exe -i " + pathBefore + " -f mp3 -acodec libmp3lame -y " + pathLater;
            string str = RunCmd(c);
            return str;
        }
        /// <summary>
        /// 执行Cmd命令
        /// </summary>
        private string RunCmd(string c)
        {
            try
            {
                System.Diagnostics.ProcessStartInfo info = new System.Diagnostics.ProcessStartInfo("cmd.exe");
                info.RedirectStandardOutput = false;
                info.UseShellExecute = false;
                System.Diagnostics.Process p = System.Diagnostics.Process.Start(info);
                p.StartInfo.UseShellExecute = false;
                p.StartInfo.RedirectStandardInput = true;
                p.StartInfo.RedirectStandardOutput = true;
                p.StartInfo.RedirectStandardError = true;
                p.Start();
                p.StandardInput.WriteLine(c);
                p.StandardInput.AutoFlush = true;
                System.Threading.Thread.Sleep(1000);
                p.StandardInput.WriteLine("exit");
                p.Close();
                p.WaitForExit(1000);
                string outStr = p.StandardOutput.ReadToEnd();
                //p.Close();

                return outStr;
            }
            catch (Exception ex)
            {
                return "error" + ex.Message;
            }
        }
        #endregion

3.转换文件工具

预览 excel、word、txt、图片、pdf、html、音视频等文件(涉及到格式转换,用到ffmpeg、pdf2swf、wkhtmltopdf工具,iTextSharp类,Aspose(破解版)类、Microsoft.Office.Interop.Excel、Word类、swf文件预览插件FlexPaper)

C#文件网页预览: https://blog.csdn.net/lixiaoer757/article/details/80277617

原文地址:https://www.cnblogs.com/love201314/p/9964977.html

时间: 2024-10-12 16:23:50

net 预览文件 转换文件的相关文章

高精度快速预览打开dwg文件的CAD控件CAD Image DLL介绍及下载

CAD Image DLL对于DXF格式, DWG格式(AutoCAD R12 到AutoCAD 2004/2005), PLT 以及 HPGL/HPGL2文件都有快速的显示速度和精度,开发者再也不会为如何打开dwg文件?dwg格式用什么打开?犯愁了.CAD Image DLL价格经济,是理想的商业化的程序内置CAD控件,包括Visual Basic, MS Visual C++, MS Visual Studio .NET, Borland Delphi, Borland C++ Builde

.net 实现Office文件预览,word文件在线预览、excel文件在线预览、ppt文件在线预览,excel转html,office格式转换,(.NET、SQL技术交流群206656202,入群需注明来自博客园)

近日公司要搞一个日常的文档管理的东东,可以上传.下载各种文件,如果是office文件呢还必须得支持预览功能,其他的都好说但是唯独office预览功能比较麻烦,但是不能不做,废话不多说了一步步来吧.分析了下网易邮箱的文件预览功能,他用的是微软的组件,最早叫Office online,现在分开了叫Word online.Excel online ....等等,效果十分炫酷功能十分强大,但是查看了下对api的说明发现对服务器的要求比较苛刻而且配置比较复杂不太适合.然后 又看了下腾讯用的是永中第三方组件

react 预览pdf 转换

function getReader(response){ return new Promise(function(resolve,reject){ response.blob().then( blob => { const reader = new FileReader(); reader.addEventListener("loadend", function() { resolve(reader.result) }); reader.readAsDataURL(blob);

Web方式预览Office/Word/Excel/pdf文件解决方案

最近在做项目时需要在Web端预览一些Office文件,经过在万能的互联网上一番搜索确定并解决了. 虽然其中碰到的一些问题已经通过搜索和自己研究解决了,但是觉得有必要将整个过程记录下来,以方便自己以后查找,也方便以后碰到相同问题的朋友. 首先大家都知道在浏览器中是无法直接直接打开office文件查看的(IE除外),所以我们需要将office文件转换成其他格式来预览. 所以我的实现方法是 office文件=>pdf文件=>swf文件=>flexpaper中浏览 我们用到的软件如下: 1.li

eclipse创建android项目无法正常预览布局文件

eclipse创建android项目时,预览layout.xml文件时提示: This version of the rendering library is more recent than your version of ADT plug-in. Please update ADT plug-in,导致无法正常预览布局文件.问题根源:SDK版本过高,ADT版本过低.解决方法如下. 工具/原料 eclipse ADT插件 方法/步骤 1 找到eclipse文件夹,打开eclipse软件,创建a

文件上传(带有预览模式)

这里所讲的预览是将文件上传至后台之后,代码调用服务器端文件,在网页中显示出来 第一:网页显示部分 和  显示区域css样式表 <body> <h1>文件上传</h1> <form action="chuli.php" method="post" enctype="multipart/form-data" id="sc" target="hidden_frame"&g

eclipse创建android项目,无法正常预览布局文件,出现This version of the rendering library is more recent than your version of ADT plug-in. Please update ADT plug-in...

eclipse创建android项目时,预览layout.xml文件时提示: This version of the rendering library is more recent than your version of ADT plug-in. Please update ADT plug-in,导致无法正常预览布局文件.问题根源:SDK版本过高,ADT版本过低.解决方法如下. 工具/原料 eclipse ADT插件 方法/步骤 找到eclipse文件夹,打开eclipse软件,创建and

JavaScript实现拖拽预览,AJAX小文件上传

本地上传,提前预览(图片.视频) 1.html中div标签预览显示.button标签触发上传事件. <div id="drop_area" style="border:3px dashed silver;width:200px; height:200px">将图片拖拽到此</div> <button onclick="xhr2()">ajax上传</button> 2.禁止浏览器打开文件行为 doc

Android开发中遇到的问题(三)——eclipse创建android项目无法正常预览布局文件

一.问题描述 今天使用SDK Manager将Android SDK的版本更新到了Android 5.1的版本,eclipse创建android项目时,预览activity_main.xml文件时提示: This version of the rendering library is more recent than your version of ADT plug-in. Please update ADT plug-in,导致无法正常预览布局文件,现象如下图所示: 上网查了一下原因,问题根源