private Watermark GetWatermark(ViewDocumentParameters request) { if (string.IsNullOrWhiteSpace(request.WatermarkText)) return null; return new Watermark(request.WatermarkText) { Color = request.WatermarkColor.HasValue ? Color.FromArgb(request.WatermarkColor.Value) : (Color?)Color.Red, Position = ToWatermarkPosition(request.WatermarkPosition), Width = request.WatermarkWidth }; }
private string GetFileUrl(ViewDocumentParameters request) { return GetFileUrl(request.Path, false, false, request.FileDisplayName); }
private string GetPdfPrintUrl(ViewDocumentParameters request) { return GetFileUrl(request.Path, true, true, request.FileDisplayName, request.WatermarkText, request.WatermarkColor, request.WatermarkPosition, request.WatermarkWidth, request.IgnoreDocumentAbsence, request.UseHtmlBasedEngine, request.SupportPageRotation); }
public ActionResult ViewDocument(ViewDocumentParameters request) { var fileName = Path.GetFileName(request.Path); var result = new ViewDocumentResponse { pageCss = new string[] {}, lic = true, pdfDownloadUrl = GetPdfDownloadUrl(request), pdfPrintUrl = GetPdfPrintUrl(request), url = GetFileUrl(request), path = request.Path, name = fileName }; var docInfo = _imageHandler.GetDocumentInfo(new DocumentInfoOptions(request.Path)); result.documentDescription = new FileDataJsonSerializer(docInfo.Pages, new FileDataOptions()).Serialize(true); result.docType = docInfo.DocumentType; result.fileType = docInfo.FileType; var imageOptions = new ImageOptions {Watermark = GetWatermark(request)}; var imagePages = _imageHandler.GetPages(request.Path, imageOptions); // Provide images urls var urls = new List<string>(); // If no cache - save images to temp folder //var tempFolderPath = Path.Combine(Microsoft.SqlServer.Server.MapPath("~"), "Content", "TempStorage"); var tempFolderPath = Path.Combine(HttpContext.Server.MapPath("~"), "Content", "TempStorage"); foreach (var pageImage in imagePages) { var docFoldePath = Path.Combine(tempFolderPath, request.Path); if (!Directory.Exists(docFoldePath)) Directory.CreateDirectory(docFoldePath); var pageImageName = string.Format("{0}\\{1}.png", docFoldePath, pageImage.PageNumber); using (var stream = pageImage.Stream) using (FileStream fileStream = new FileStream(pageImageName, FileMode.Create)) { stream.Seek(0, SeekOrigin.Begin); stream.CopyTo(fileStream); } var baseUrl = Request.Url.Scheme + "://" + Request.Url.Authority + Request.ApplicationPath.TrimEnd('/') + "/"; urls.Add(string.Format("{0}Content/TempStorage/{1}/{2}.png", baseUrl, request.Path, pageImage.PageNumber)); } result.imageUrls = urls.ToArray(); var serializer = new JavaScriptSerializer {MaxJsonLength = int.MaxValue}; var serializedData = serializer.Serialize(result); return Content(serializedData, "application/json"); }