コード例 #1
0
        protected internal Tuple <string, MemoryStream> CnabsFile(string fileName,
                                                                  MemoryStream memoryStream, DownloadFileAuthorityType authority)
        {
            if (authority == DownloadFileAuthorityType.AllForbidden)
            {
                //TODO:
                throw new NotImplementedException("暂不支持DownloadFileAuthorityType.AllForbidden");
            }

            if (fileName.EndsWith("doc", StringComparison.CurrentCultureIgnoreCase) ||
                fileName.EndsWith("docx", StringComparison.CurrentCultureIgnoreCase))
            {
                if (authority == DownloadFileAuthorityType.Word2PdfWithWatermark)
                {
                    var waterMark = new WaterMarkMultiText()
                    {
                        BigText   = CommUtils.GetWatermarkTitle(),
                        SmallText = "[" + CurrentUserName + "]下载于" + DateTime.Now.ToString()
                    };

                    var pdfUtil = new PdfUtils(waterMark);
                    pdfUtil.PdfPermission = PdfUtils.PdfPermissionEnum.Printing;
                    var ms = pdfUtil.WordToPdfMemoryStream(memoryStream);
                    ms.Seek(0, SeekOrigin.Begin);

                    var pdfFileName = FileUtils.ConvertFileExtension(fileName, FileType.PDF);
                    return(Tuple.Create(pdfFileName, ms));
                }
                else if (authority == DownloadFileAuthorityType.Word2Pdf)
                {
                    var pdfUtil = new PdfUtils();
                    var ms      = pdfUtil.WordToPdfMemoryStream(memoryStream);
                    ms.Seek(0, SeekOrigin.Begin);

                    var pdfFileName = FileUtils.ConvertFileExtension(fileName, FileType.PDF);
                    return(Tuple.Create(pdfFileName, ms));
                }
            }

            return(Tuple.Create(fileName, memoryStream));
        }