public string GetFileUrl(string path, bool getPdf, bool isPrintable, string fileDisplayName = null, string watermarkText = null, int?watermarkColor = null, WatermarkPosition?watermarkPosition = WatermarkPosition.Diagonal, float?watermarkWidth = 0, bool ignoreDocumentAbsence = false, bool useHtmlBasedEngine = false, bool supportPageRotation = false, string instanceId = null) { UrlHelper urlHelper = new UrlHelper(ControllerContext.RequestContext); string displayNameEncoded = Server.UrlEncode(fileDisplayName); string instanceIdToken = instanceId; string fileUrl = ConvertUrlToAbsolute(urlHelper.Action(isPrintable ? "GetPdfWithPrintDialog" : "GetFile", new { path, displayName = displayNameEncoded, getPdf, isPrintable, watermarkText, watermarkColor, watermarkPosition, watermarkWidth, ignoreDocumentAbsence, useHtmlBasedEngine, supportPageRotation, instanceIdToken })); return(fileUrl); }
private static GroupDocs.Viewer.Domain.WatermarkPosition?ToWatermarkPosition(WatermarkPosition? watermarkPosition) { if (!watermarkPosition.HasValue) { return(GroupDocs.Viewer.Domain.WatermarkPosition.Diagonal); } switch (watermarkPosition.Value) { case WatermarkPosition.Diagonal: return(GroupDocs.Viewer.Domain.WatermarkPosition.Diagonal); case WatermarkPosition.TopLeft: return(GroupDocs.Viewer.Domain.WatermarkPosition.TopLeft); case WatermarkPosition.TopCenter: return(GroupDocs.Viewer.Domain.WatermarkPosition.TopCenter); case WatermarkPosition.TopRight: return(GroupDocs.Viewer.Domain.WatermarkPosition.TopRight); case WatermarkPosition.BottomLeft: return(GroupDocs.Viewer.Domain.WatermarkPosition.BottomLeft); case WatermarkPosition.BottomCenter: return(GroupDocs.Viewer.Domain.WatermarkPosition.BottomCenter); case WatermarkPosition.BottomRight: return(GroupDocs.Viewer.Domain.WatermarkPosition.BottomRight); default: throw new ArgumentOutOfRangeException(); } }
public string GetFileUrl(string path, bool getPdf, bool isPrintable, string fileDisplayName = null, string watermarkText = null, int?watermarkColor = null, WatermarkPosition?watermarkPosition = WatermarkPosition.Diagonal, float?watermarkWidth = 0, bool ignoreDocumentAbsence = false, bool useHtmlBasedEngine = false, bool supportPageRotation = false, string instanceId = null) { //string displayNameEncoded = HttpUtility.UrlEncode(fileDisplayName); string instanceIdToken = instanceId; string fileUrl = ConvertUrlToAbsolute(Url.Route("genericRoute", new { action = isPrintable ? "GetPdfWithPrintDialog" : "GetFile", path, displayName = fileDisplayName, getPdf, isPrintable, watermarkText, watermarkColor, watermarkPosition, watermarkWidth, ignoreDocumentAbsence, useHtmlBasedEngine, supportPageRotation, instanceIdToken })); return(fileUrl); }
public string[] GetImageUrlsInternal(string path, int startingPageNumber, int pageCount, int?pageWidth, int?quality, bool usePdf = true, string watermarkText = null, int?watermarkColor = null, WatermarkPosition?watermarkPosition = WatermarkPosition.Diagonal, float?watermarkWidth = 0, bool ignoreDocumentAbsence = false, bool useHtmlBasedEngine = false, bool supportPageRotation = false, string instanceId = null, string locale = null) { NameValueCollection queryString = HttpUtility.ParseQueryString(string.Empty); queryString["path"] = path; queryString["width"] = pageWidth.ToString(); queryString["quality"] = quality.ToString(); queryString["usePdf"] = usePdf.ToString(); if (!String.IsNullOrEmpty(watermarkText)) { queryString["watermarkText"] = watermarkText; queryString["watermarkColor"] = watermarkColor.ToString(); queryString["watermarkPosition"] = (watermarkPosition ?? WatermarkPosition.Diagonal).ToString(); queryString["watermarkWidth"] = (watermarkWidth ?? 0).ToString(CultureInfo.InvariantCulture); } if (ignoreDocumentAbsence) { queryString["ignoreDocumentAbsence"] = ignoreDocumentAbsence.ToString(); } queryString["useHtmlBasedEngine"] = useHtmlBasedEngine.ToString(); queryString["rotate"] = supportPageRotation.ToString(); if (!string.IsNullOrEmpty(Version)) { queryString["v"] = Version; } if (!string.IsNullOrWhiteSpace(instanceId)) { queryString[Constants.InstanceIdRequestKey] = instanceId; } if (!string.IsNullOrWhiteSpace(locale)) { queryString["locale"] = locale; } var pageUrls = new string[pageCount]; var handler = String.Format("GetDocumentPageImage{0}", UrlSuffix); for (int i = 0; i < pageCount; i++) { queryString["pageIndex"] = (startingPageNumber + i).ToString(CultureInfo.InvariantCulture); pageUrls[i] = String.Format("{0}/{1}?{2}", EndpointPrefix, handler, queryString); } return(pageUrls); }
public string GetFileUrl(string path, bool printWithWaterMark, bool getPdf, bool isPrintable, string fileDisplayName = null, string watermarkText = null, int?watermarkColor = null, WatermarkPosition?watermarkPosition = WatermarkPosition.Diagonal, float?watermarkWidth = 0, byte?watermarkOpacity = 255, bool ignoreDocumentAbsence = false, bool useHtmlBasedEngine = false, bool supportPageRotation = false) { var queryString = HttpUtility.ParseQueryString(string.Empty); queryString["path"] = path; if (!isPrintable) { queryString["getPdf"] = getPdf.ToString().ToLower(); if (fileDisplayName != null) { queryString["displayName"] = fileDisplayName; } } if (watermarkText != null && printWithWaterMark == true) { queryString["watermarkText"] = watermarkText; queryString["watermarkColor"] = watermarkColor.ToString(); queryString["watermarkOpacity"] = watermarkOpacity.ToString(); if (watermarkPosition.HasValue) { queryString["watermarkPosition"] = watermarkPosition.ToString(); } if (watermarkWidth.HasValue) { queryString["watermarkWidth"] = ((float)watermarkWidth).ToString(CultureInfo.InvariantCulture); } } if (ignoreDocumentAbsence) { queryString["ignoreDocumentAbsence"] = ignoreDocumentAbsence.ToString().ToLower(); } queryString["useHtmlBasedEngine"] = useHtmlBasedEngine.ToString().ToLower(); queryString["supportPageRotation"] = supportPageRotation.ToString().ToLower(); var handlerName = isPrintable ? "GetPdfWithPrintDialog" : "GetFile"; var baseUrl = Request.Url.Scheme + "://" + Request.Url.Authority + Request.ApplicationPath.TrimEnd('/') + "/document-viewer/"; var fileUrl = string.Format("{0}{1}?{2}", baseUrl, handlerName, queryString); return(fileUrl); }
public string[] GetPrintableHtml(IImageUrlCreator imageUrlCreator, string path, bool useHtmlBasedEngine = false, string displayName = null, string watermarkText = null, int?watermarkColor = null, WatermarkPosition?watermarkPosition = WatermarkPosition.Diagonal, float watermarkWidth = 0, bool ignoreDocumentAbsence = false, string instanceId = null, string locale = null) { throw new NotImplementedException(); }
public static string GetFileUrl(string path, bool getPdf, bool isPrintable, string fileDisplayName = null, string watermarkText = null, int?watermarkColor = null, WatermarkPosition?watermarkPosition = WatermarkPosition.Diagonal, float?watermarkWidth = 0, bool ignoreDocumentAbsence = false, bool useHtmlBasedEngine = false, bool supportPageRotation = false) { NameValueCollection queryString = HttpUtility.ParseQueryString(string.Empty); queryString["path"] = path; if (!isPrintable) { queryString["getPdf"] = getPdf.ToString().ToLower(); if (fileDisplayName != null) { queryString["displayName"] = fileDisplayName; } } if (watermarkText != null) { queryString["watermarkText"] = watermarkText; queryString["watermarkColor"] = watermarkColor.ToString(); if (watermarkPosition.HasValue) { queryString["watermarkPosition"] = watermarkPosition.ToString(); } if (watermarkWidth.HasValue) { queryString["watermarkWidth"] = ((float)watermarkWidth).ToString(CultureInfo.InvariantCulture); } } if (ignoreDocumentAbsence) { queryString["ignoreDocumentAbsence"] = ignoreDocumentAbsence.ToString().ToLower(); } queryString["useHtmlBasedEngine"] = useHtmlBasedEngine.ToString().ToLower(); queryString["supportPageRotation"] = supportPageRotation.ToString().ToLower(); var handlerName = isPrintable ? "GetPdfWithPrintDialog" : "GetFile"; queryString["IsPrintable"] = isPrintable.ToString(); var baseUrl = HttpContext.Current.Request.Url.Scheme + "://" + HttpContext.Current.Request.Url.Authority + HttpContext.Current.Request.ApplicationPath + "default.aspx/"; string fileUrl = string.Format("{0}{1}?{2}", baseUrl, handlerName, queryString); return(fileUrl); }
public String Get(string file, string watermarkText, int?watermarkColor, WatermarkPosition?watermarkPosition, int?watermarkWidth, byte watermarkOpacity, bool isdownload) { ViewerHtmlHandler handler = Utils.CreateViewerHtmlHandler(); handler.ClearCache(file); try { PrintableHtmlOptions o = new PrintableHtmlOptions(); if (watermarkText != "") { o.Watermark = Utils.GetWatermark(watermarkText, watermarkColor, watermarkPosition, watermarkWidth, watermarkOpacity); } PrintableHtmlContainer container = handler.GetPrintableHtml(file, o); return(container.HtmlContent.Replace(".doc-page { position: absolute; }", ".doc-page { position: relative; }")); } catch (Exception x) { throw x; } }
public JsonResult <List <string> > Get(string file, int page, string watermarkText, int?watermarkColor, WatermarkPosition?watermarkPosition, int?watermarkWidth, byte watermarkOpacity) { if (Utils.IsValidUrl(file)) { file = Utils.DownloadToStorage(file); } ViewerHtmlHandler handler = Utils.CreateViewerHtmlHandler(); List <int> pageNumberstoRender = new List <int>(); pageNumberstoRender.Add(page); HtmlOptions options = new HtmlOptions(); //options.PageNumbersToRender = pageNumberstoRender; //options.PageNumber = page; //options.CountPagesToRender = 1; //options.HtmlResourcePrefix = "/pageresource?file=" + file + "&page=" + page + "&resource="; options.EmbedResources = true; if (watermarkText != "") { options.Watermark = Utils.GetWatermark(watermarkText, watermarkColor, watermarkPosition, watermarkWidth, watermarkOpacity); } List <PageHtml> list = Utils.LoadPageHtmlList(handler, file, options); List <string> lstPageHtml = new List <string>(); foreach (PageHtml pageHtml in list) { lstPageHtml.Add(pageHtml.HtmlContent); } ; return(Json(lstPageHtml)); }
public HttpResponseMessage Get(int?width, string file, string attachment, int page, string watermarkText, int?watermarkColor, WatermarkPosition?watermarkPosition, int?watermarkWidth, byte watermarkOpacity, int?height = null) { ViewerImageHandler handler = Utils.CreateViewerImageHandler(); ImageOptions o = new ImageOptions(); List <int> pageNumberstoRender = new List <int>(); pageNumberstoRender.Add(page); o.PageNumbersToRender = pageNumberstoRender; o.PageNumber = page; o.CountPagesToRender = 1; if (width.HasValue) { o.Width = Convert.ToInt32(width); } if (height.HasValue) { o.Height = Convert.ToInt32(height); } if (watermarkText != "") { o.Watermark = Utils.GetWatermark(watermarkText, watermarkColor, watermarkPosition, watermarkWidth, watermarkOpacity); } Stream stream = null; DocumentInfoContainer info = handler.GetDocumentInfo(file); // Iterate over the attachments collection foreach (AttachmentBase attachmentBase in info.Attachments.Where(x => x.Name == attachment)) { List <PageImage> pages = handler.GetPages(attachmentBase, o); foreach (PageImage attachmentPage in pages.Where(x => x.PageNumber == page)) { stream = attachmentPage.Stream; } ; } var result = new HttpResponseMessage(HttpStatusCode.OK); Image image = Image.FromStream(stream); MemoryStream memoryStream = new MemoryStream(); image.Save(memoryStream, ImageFormat.Jpeg); result.Content = new ByteArrayContent(memoryStream.ToArray()); result.Content.Headers.ContentType = new MediaTypeHeaderValue("image/jpeg"); return(result); }
public static Watermark GetWatermark(string watermarkText, int?watermarkColor, WatermarkPosition?watermarkPosition, float?watermarkWidth, byte watermarkOpacity) { if (string.IsNullOrWhiteSpace(watermarkText)) { return(null); } byte red = 0; byte green = 0; byte blue = 0; byte opacity = 255; if (watermarkColor.HasValue) { red = Color.FromArgb(watermarkColor.Value).R; green = Color.FromArgb(watermarkColor.Value).G; blue = Color.FromArgb(watermarkColor.Value).B; opacity = watermarkOpacity; } return(new Watermark(watermarkText) { Color = watermarkColor.HasValue ? Color.FromArgb(opacity, red, green, blue) : Color.Red, Position = ToWatermarkPosition(watermarkPosition), Width = watermarkWidth, FontName = "MS Gothic" }); }
public ActionResult Get(string file, string attachment, int page, string watermarkText, int?watermarkColor, WatermarkPosition?watermarkPosition, int?watermarkWidth, byte watermarkOpacity) { var attachmentPath = "cache\\" + Path.GetFileNameWithoutExtension(file) + Path.GetExtension(file).Replace(".", "_") + "\\attachments\\" + attachment; ViewerHtmlHandler handler = Utils.CreateViewerHtmlHandler(); var docInfo = handler.GetDocumentInfo(file); List <int> pageNumberstoRender = new List <int>(); pageNumberstoRender.Add(page); HtmlOptions o = new HtmlOptions(); o.PageNumbersToRender = pageNumberstoRender; o.PageNumber = page; o.CountPagesToRender = 1; o.HtmlResourcePrefix = "/Attachment/Resource?file=" + file + "&attachment=" + attachment + "&page=" + page + "&resource="; if (watermarkText != "") { o.Watermark = Utils.GetWatermark(watermarkText, watermarkColor, watermarkPosition, watermarkWidth, watermarkOpacity); } string fullHtml = ""; var attachmentFile = _cachePath + "\\" + Path.GetFileNameWithoutExtension(file) + Path.GetExtension(file).Replace(".", "_") + "\\attachments"; if (Directory.Exists(attachmentFile.Replace(@"\\", @"\"))) { List <PageHtml> pages = handler.GetPages(attachmentPath, o); foreach (PageHtml pageHtml in pages.Where(x => x.PageNumber == page)) { fullHtml += pageHtml.HtmlContent; } ; } else { foreach (AttachmentBase attachmentBase in docInfo.Attachments.Where(x => x.Name == attachment)) { // Get attachment document html representation List <PageHtml> pages = handler.GetPages(attachmentBase, o); foreach (PageHtml pageHtml in pages.Where(x => x.PageNumber == page)) { fullHtml += pageHtml.HtmlContent; } ; } } return(Content(fullHtml)); }
/// <summary> /// 为图片添加水印 /// </summary> /// <param name="originalImage"></param> /// <param name="watermarkPath"></param> /// <param name="transparency">水印的透明度 0-255 数值越</param> /// <returns></returns> public static Image AddWatermark(Image originalImage, string watermarkPath, WatermarkPosition?position, int?transparency = null) { // 水印图片 Image watermarkImage = Image.FromFile(watermarkPath); Bitmap resImage = new Bitmap(originalImage.Width, originalImage.Height, PixelFormat.Format32bppArgb); try { //获取原图DPI float dpix = originalImage.HorizontalResolution; float dpiy = originalImage.VerticalResolution; // 设置其生成图片的dpi resImage.SetResolution(dpix, dpiy); Graphics g = Graphics.FromImage(resImage); g.SmoothingMode = SmoothingMode.AntiAlias; g.InterpolationMode = InterpolationMode.Default; // 设置高质量插值法 g.InterpolationMode = InterpolationMode.HighQualityBicubic; // 设置高质量,低速度呈现平滑程度 g.SmoothingMode = SmoothingMode.HighQuality; // 清空画布并以透明背景色填充 g.Clear(Color.Transparent); // 在指定位置并且按指定大小绘制原图片的指定部分 g.DrawImage(originalImage, 0, 0, originalImage.Width, originalImage.Height); //g.DrawImage(originalImage, new Rectangle(0, 0, resImage.Width, resImage.Height), new Rectangle(0, 0, originalImage.Width, originalImage.Height), GraphicsUnit.Pixel); // 设定水印位置 double drawX = 0; double drawY = 0; double drawWidth = 0; double drawHeight = 0; double resRatio = (double)resImage.Width / resImage.Height; double watermarkRatio = (double)watermarkImage.Width / watermarkImage.Height; if (watermarkRatio > resRatio) { drawWidth = resImage.Width / 10; drawWidth = drawWidth < 40 ? 40 : drawWidth; drawWidth = drawWidth > 160 ? 160 : drawWidth; drawHeight = drawWidth / watermarkRatio; } else { drawHeight = resImage.Height / 10; drawHeight = drawHeight < 40 ? 40 : drawHeight; drawHeight = drawHeight > 160 ? 160 : drawHeight; drawWidth = drawHeight / watermarkRatio; } switch (position) { case WatermarkPosition.LeftTop: drawX = watermarkImage.Width / 2f; drawY = 8f; break; case WatermarkPosition.LeftBottom: drawX = watermarkImage.Width / 2f; drawY = originalImage.Height - watermarkImage.Height; break; case WatermarkPosition.RightTop: drawX = originalImage.Width * 1f - watermarkImage.Width / 2f; drawY = 8f; break; case WatermarkPosition.RightBottom: drawX = originalImage.Width - watermarkImage.Width; drawY = originalImage.Height - watermarkImage.Height; break; case WatermarkPosition.Center: drawX = originalImage.Width / 2; drawY = originalImage.Height / 2 - watermarkImage.Height / 2; break; } // 为水印图片设置透明度 if (transparency != null) { // 颜色矩阵 float[][] matrixItems = { new float[] { 1, 0, 0, 0, 0 }, new float[] { 0, 1, 0, 0, 0 }, new float[] { 0, 0, 1, 0, 0 }, new float[] { 0, 0, 0, transparency.Value / 255f, 0 }, new float[] { 0, 0, 0, 0, 1 } }; ColorMatrix colorMatrix = new ColorMatrix(matrixItems); ImageAttributes imageAtt = new ImageAttributes(); imageAtt.SetColorMatrix(colorMatrix, ColorMatrixFlag.Default, ColorAdjustType.Bitmap); Bitmap bmpd = new Bitmap(watermarkImage.Width, watermarkImage.Height); Graphics gd = Graphics.FromImage(bmpd); gd.DrawImage(watermarkImage, new Rectangle(0, 0, watermarkImage.Width, watermarkImage.Height), 0, 0, watermarkImage.Width, watermarkImage.Height, GraphicsUnit.Pixel, imageAtt); gd.Dispose(); watermarkImage = bmpd; } // 在指定位置绘制水印图片部分 g.DrawImage(watermarkImage, new Rectangle((int)Math.Floor(drawX), (int)Math.Floor(drawY), (int)Math.Floor(drawWidth), (int)Math.Floor(drawHeight)), 0, 0, watermarkImage.Width, watermarkImage.Height, GraphicsUnit.Pixel); g.Dispose(); } catch (Exception e) { throw e; } finally { watermarkImage.Dispose(); } return(resImage); }
public static Watermark GetWatermark(string watermarkText, int?watermarkColor, WatermarkPosition?watermarkPosition, float?watermarkWidth) { if (string.IsNullOrWhiteSpace(watermarkText)) { return(null); } return(new Watermark(watermarkText) { Color = watermarkColor.HasValue ? Color.FromArgb(watermarkColor.Value) : Color.Red, Position = ToWatermarkPosition(watermarkPosition), Width = watermarkWidth }); }
public HttpResponseMessage Get(string file, string watermarkText, int?watermarkColor, WatermarkPosition?watermarkPosition, int?watermarkWidth, byte watermarkOpacity, bool isdownload) { ViewerHtmlHandler handler = Utils.CreateViewerHtmlHandler(); Stream pdf = null; try { PdfFileOptions o = new PdfFileOptions(); if (watermarkText != "") { o.Watermark = Utils.GetWatermark(watermarkText, watermarkColor, watermarkPosition, watermarkWidth, watermarkOpacity); } pdf = handler.GetPdfFile(file, o).Stream; } catch (Exception x) { throw x; } using (var ms = new MemoryStream()) { pdf.CopyTo(ms); var result = new HttpResponseMessage(HttpStatusCode.OK) { Content = new ByteArrayContent(ms.ToArray()) }; if (isdownload) { result.Content.Headers.Add("content-disposition", "attachment; filename=\"" + Path.GetFileNameWithoutExtension(file) + ".pdf\""); result.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream"); } else { result.Content.Headers.ContentType = new MediaTypeHeaderValue("application/pdf"); } return(result); } }
public ActionResult Get(int?width, int?height, string file, int page, string watermarkText, int?watermarkColor, WatermarkPosition?watermarkPosition, int?watermarkWidth, byte watermarkOpacity, int?rotate, int?zoom) { if (Utils.IsValidUrl(file)) { file = Utils.DownloadToStorage(file); } ViewerImageHandler handler = Utils.CreateViewerImageHandler(); if (rotate.HasValue) { if (rotate.Value > 0) { handler.ClearCache(file); } } ImageOptions options = new ImageOptions(); options.PageNumbersToRender = new List <int>(new int[] { page }); options.PageNumber = page; options.CountPagesToRender = 1; if (Path.GetExtension(file).ToLower().StartsWith(".xls")) { options.CellsOptions.OnePagePerSheet = false; options.CellsOptions.CountRowsPerPage = 150; } if (watermarkText != "") { options.Watermark = Utils.GetWatermark(watermarkText, watermarkColor, watermarkPosition, watermarkWidth, watermarkOpacity); } if (width.HasValue) { int w = Convert.ToInt32(width); if (zoom.HasValue) { w = w + zoom.Value; } options.Width = w; } if (height.HasValue) { if (zoom.HasValue) { options.Height = options.Height + zoom.Value; } } if (rotate.HasValue) { if (rotate.Value > 0) { if (width.HasValue) { int side = options.Width; DocumentInfoContainer documentInfoContainer = handler.GetDocumentInfo(file); int pageAngle = documentInfoContainer.Pages[page - 1].Angle; if (pageAngle == 90 || pageAngle == 270) { options.Height = side; } else { options.Width = side; } } options.Transformations = Transformation.Rotate; handler.RotatePage(file, new RotatePageOptions(page, rotate.Value)); } } else { options.Transformations = Transformation.None; handler.RotatePage(file, new RotatePageOptions(page, 0)); } using (new InterProcessLock(file)) { List <PageImage> list = handler.GetPages(file, options); PageImage pageImage = list.Single(_ => _.PageNumber == page); return(File(pageImage.Stream, "image/png")); } }
public ActionResult Get(string file, string watermarkText, int?watermarkColor, WatermarkPosition?watermarkPosition, int?watermarkWidth, byte watermarkOpacity, bool isdownload) { ViewerHtmlHandler handler = Utils.CreateViewerHtmlHandler(); Stream pdf = null; try { PdfFileOptions o = new PdfFileOptions(); if (watermarkText != "") { o.Watermark = Utils.GetWatermark(watermarkText, watermarkColor, watermarkPosition, watermarkWidth, watermarkOpacity); } pdf = handler.GetPdfFile(file, o).Stream; } catch (Exception x) { throw x; } if (isdownload) { Response.Headers.Add("content-disposition", "attachment; filename=" + Path.GetFileNameWithoutExtension(file) + ".pdf"); return(new FileStreamResult(pdf, "application/octet-stream")); } else { return(new FileStreamResult(pdf, "application/pdf")); } }
public HttpResponseMessage Get(int?width, string file, int page, string watermarkText, int?watermarkColor, WatermarkPosition?watermarkPosition, int?watermarkWidth, byte watermarkOpacity, int?rotate, int?zoom, int?height = null) { if (Utils.IsValidUrl(file)) { file = Utils.DownloadToStorage(file); } ViewerImageHandler handler = Utils.CreateViewerImageHandler(); if (rotate.HasValue) { if (rotate.Value > 0) { handler.ClearCache(file); } } ImageOptions options = new ImageOptions(); options.PageNumbersToRender = new List <int>(new int[] { page }); options.PageNumber = page; options.CountPagesToRender = 1; if (Path.GetExtension(file).ToLower().StartsWith(".xls")) { options.CellsOptions.OnePagePerSheet = false; options.CellsOptions.CountRowsPerPage = 150; } if (watermarkText != "") { options.Watermark = Utils.GetWatermark(watermarkText, watermarkColor, watermarkPosition, watermarkWidth, watermarkOpacity); } if (width.HasValue) { int w = Convert.ToInt32(width); if (zoom.HasValue) { w = w + zoom.Value; } options.Width = w; } if (height.HasValue) { if (zoom.HasValue) { options.Height = options.Height + zoom.Value; } } if (rotate.HasValue) { if (rotate.Value > 0) { if (width.HasValue) { int side = options.Width; DocumentInfoContainer documentInfoContainer = handler.GetDocumentInfo(file); int pageAngle = documentInfoContainer.Pages[page - 1].Angle; if (pageAngle == 90 || pageAngle == 270) { options.Height = side; } else { options.Width = side; } } options.Transformations = Transformation.Rotate; handler.RotatePage(file, new RotatePageOptions(page, rotate.Value)); } } else { options.Transformations = Transformation.None; handler.RotatePage(file, new RotatePageOptions(page, 0)); } List <PageImage> list = handler.GetPages(file, options); PageImage pageImage = list.Single(_ => _.PageNumber == page); Stream stream = pageImage.Stream; var result = new HttpResponseMessage(HttpStatusCode.OK); Image image = Image.FromStream(stream); MemoryStream memoryStream = new MemoryStream(); image.Save(memoryStream, ImageFormat.Jpeg); result.Content = new ByteArrayContent(memoryStream.ToArray()); result.Content.Headers.ContentType = new MediaTypeHeaderValue("image/jpeg"); return(result); }
public ActionResult Get(string file, int page, string watermarkText, int?watermarkColor, WatermarkPosition?watermarkPosition, int?watermarkWidth, byte watermarkOpacity) { if (Utils.IsValidUrl(file)) { file = Utils.DownloadToStorage(file); } ViewerHtmlHandler handler = Utils.CreateViewerHtmlHandler(); List <int> pageNumberstoRender = new List <int>(); pageNumberstoRender.Add(page); HtmlOptions options = new HtmlOptions(); options.PageNumbersToRender = pageNumberstoRender; options.PageNumber = page; options.CountPagesToRender = 1; if (Path.GetExtension(file).ToLower().StartsWith(".xls")) { options.CellsOptions.OnePagePerSheet = false; options.CellsOptions.CountRowsPerPage = 150; } options.HtmlResourcePrefix = "/page/resource?file=" + file + "&page=" + page + "&resource="; if (watermarkText != "") { options.Watermark = Utils.GetWatermark(watermarkText, watermarkColor, watermarkPosition, watermarkWidth, watermarkOpacity); } List <PageHtml> list = Utils.LoadPageHtmlList(handler, file, options); string fullHtml = ""; foreach (PageHtml pageHtml in list.Where(x => x.PageNumber == page)) { fullHtml = pageHtml.HtmlContent; } ; return(Content(fullHtml)); }
public ActionResult Get(int?width, int?height, string file, string attachment, int page, string watermarkText, int?watermarkColor, WatermarkPosition?watermarkPosition, int?watermarkWidth, byte watermarkOpacity) { ViewerImageHandler handler = Utils.CreateViewerImageHandler(); ImageOptions o = new ImageOptions(); List <int> pageNumberstoRender = new List <int>(); pageNumberstoRender.Add(page); o.PageNumbersToRender = pageNumberstoRender; o.PageNumber = page; o.CountPagesToRender = 1; if (watermarkText != "") { o.Watermark = Utils.GetWatermark(watermarkText, watermarkColor, watermarkPosition, watermarkWidth, watermarkOpacity); } if (width.HasValue) { o.Width = Convert.ToInt32(width); } if (height.HasValue) { o.Height = Convert.ToInt32(height); } Stream stream = null; DocumentInfoContainer info = handler.GetDocumentInfo(file); // Iterate over the attachments collection foreach (AttachmentBase attachmentBase in info.Attachments.Where(x => x.Name == attachment)) { List <PageImage> pages = handler.GetPages(attachmentBase, o); foreach (PageImage attachmentPage in pages.Where(x => x.PageNumber == page)) { stream = attachmentPage.Stream; } ; } return(new FileStreamResult(stream, "image/png")); }
public HttpResponseMessage Get(string file, int page, string watermarkText, int?watermarkColor, WatermarkPosition?watermarkPosition, int?watermarkWidth, byte watermarkOpacity) { if (Utils.IsValidUrl(file)) { file = Utils.DownloadToStorage(file); } ViewerHtmlHandler handler = Utils.CreateViewerHtmlHandler(); List <int> pageNumberstoRender = new List <int>(); pageNumberstoRender.Add(page); HtmlOptions o = new HtmlOptions(); o.PageNumbersToRender = pageNumberstoRender; o.PageNumber = page; o.CountPagesToRender = 1; o.HtmlResourcePrefix = "/PageResource?file=" + file + "&page=" + page + "&resource="; if (watermarkText != "") { o.Watermark = Utils.GetWatermark(watermarkText, watermarkColor, watermarkPosition, watermarkWidth, watermarkOpacity); } List <PageHtml> list = Utils.LoadPageHtmlList(handler, file, o); string fullHtml = ""; foreach (PageHtml pageHtml in list.Where(x => x.PageNumber == page)) { fullHtml = pageHtml.HtmlContent; } ; var response = new HttpResponseMessage(); response.Content = new StringContent(fullHtml); response.Content.Headers.ContentType = new MediaTypeHeaderValue("text/html"); return(response); }
public string[] GetImageUrlsInternal(string path, int startingPageNumber, int pageCount, int?pageWidth, int?quality, bool usePdf = true, string watermarkText = null, int?watermarkColor = null, WatermarkPosition?watermarkPosition = WatermarkPosition.Diagonal, float?watermarkWidth = 0, bool ignoreDocumentAbsence = false, bool useHtmlBasedEngine = false, bool supportPageRotation = false, string instanceId = null, string locale = null) { string[] pageUrls; UrlHelper url = Url; string applicationHost = _applicationPathFinder.GetApplicationHost(); if (applicationHost.EndsWith("/")) { applicationHost = applicationHost.Substring(0, applicationHost.Length - 1); } pageUrls = new string[pageCount]; if (_helper.GetStorageProvider() == SupportedStorageProvider.Local) { Dictionary <string, object> routeValueDictionary = new Dictionary <string, object>() { { "action", "GetDocumentPageImage" }, { "path", path }, { "width", pageWidth }, { "quality", quality }, { "usePdf", usePdf }, { "useHtmlBasedEngine", useHtmlBasedEngine }, { "rotate", supportPageRotation } }; if (!string.IsNullOrEmpty(locale)) { routeValueDictionary.Add("locale", locale); } if (!string.IsNullOrEmpty(watermarkText)) { routeValueDictionary.Add("watermarkText", watermarkText); routeValueDictionary.Add("watermarkColor", watermarkColor); routeValueDictionary.Add("watermarkPosition", watermarkPosition); routeValueDictionary.Add("watermarkWidth", watermarkWidth); } if (!string.IsNullOrWhiteSpace(instanceId)) { routeValueDictionary.Add(Constants.InstanceIdRequestKey, instanceId); } if (ignoreDocumentAbsence) { routeValueDictionary.Add("ignoreDocumentAbsence", ignoreDocumentAbsence); } for (int i = 0; i < pageCount; i++) { routeValueDictionary["pageIndex"] = startingPageNumber + i; pageUrls[i] = string.Format("{0}{1}", applicationHost, url.Route("genericRoute", routeValueDictionary)); } } else { pageUrls = _coreHandler.GetPageImageUrlsOnThirdPartyStorage(path, pageCount, quality, pageWidth, null, true); } return(pageUrls); }
private static string[] GetImageUrls(string applicationHost, string path, int startingPageNumber, int pageCount, int?pageWidth, int?quality, bool usePdf = true, string watermarkText = null, int?watermarkColor = null, int?watermarkOpacity = 255, WatermarkPosition?watermarkPosition = WatermarkPosition.Diagonal, float?watermarkWidth = 0, bool ignoreDocumentAbsence = false, bool useHtmlBasedEngine = false, bool supportPageRotation = false, string instanceId = null, string locale = null, int[] pageNumbers = null) { string[] pageUrls = new string[pageCount]; RouteValueDictionary routeValueDictionary = new RouteValueDictionary { { "path", path }, { "width", pageWidth }, { "quality", quality }, { "usePdf", usePdf }, { "useHtmlBasedEngine", useHtmlBasedEngine }, { "rotate", supportPageRotation } }; if (!string.IsNullOrWhiteSpace(locale)) { routeValueDictionary.Add("locale", locale); } if (!string.IsNullOrEmpty(watermarkText)) { routeValueDictionary.Add("watermarkText", watermarkText); routeValueDictionary.Add("watermarkColor", watermarkColor); routeValueDictionary.Add("watermarkPosition", watermarkPosition); routeValueDictionary.Add("watermarkWidth", watermarkWidth); routeValueDictionary.Add("watermarkOpacity", watermarkOpacity); } if (!string.IsNullOrWhiteSpace(instanceId)) { routeValueDictionary.Add("instanceIdToken", instanceId); } if (ignoreDocumentAbsence) { routeValueDictionary.Add("ignoreDocumentAbsence", ignoreDocumentAbsence); } if (pageNumbers != null) { for (int i = 0; i < pageCount; i++) { routeValueDictionary["pageIndex"] = pageNumbers[i] - 1; pageUrls[i] = ConvertUrlToAbsolute(applicationHost, CreateRelativeRequestUrl("GetDocumentPageImage", routeValueDictionary)); } } else { for (int i = 0; i < pageCount; i++) { routeValueDictionary["pageIndex"] = startingPageNumber + i; pageUrls[i] = ConvertUrlToAbsolute(applicationHost, CreateRelativeRequestUrl("GetDocumentPageImage", routeValueDictionary)); } } return(pageUrls); }
public HttpResponseMessage Get(int?width, string file, int page, string watermarkText, int?watermarkColor, WatermarkPosition?watermarkPosition, int?watermarkWidth, byte watermarkOpacity, int?height = null) { if (Utils.IsValidUrl(file)) { file = Utils.DownloadToStorage(file); } ViewerImageHandler handler = Utils.CreateViewerImageHandler(); ImageOptions o = new ImageOptions(); List <int> pageNumberstoRender = new List <int>(); pageNumberstoRender.Add(page); o.PageNumbersToRender = pageNumberstoRender; o.PageNumber = page; o.CountPagesToRender = 1; if (watermarkText != "") { o.Watermark = Utils.GetWatermark(watermarkText, watermarkColor, watermarkPosition, watermarkWidth, watermarkOpacity); } if (width.HasValue) { o.Width = Convert.ToInt32(width); } if (height.HasValue) { o.Height = Convert.ToInt32(height); } Stream stream = null; List <PageImage> list = Utils.LoadPageImageList(handler, file, o); foreach (PageImage pageImage in list.Where(x => x.PageNumber == page)) { stream = pageImage.Stream; } ; var result = new HttpResponseMessage(HttpStatusCode.OK); Image image = Image.FromStream(stream); MemoryStream memoryStream = new MemoryStream(); image.Save(memoryStream, ImageFormat.Jpeg); result.Content = new ByteArrayContent(memoryStream.ToArray()); result.Content.Headers.ContentType = new MediaTypeHeaderValue("image/jpeg"); return(result); }