public async Task <IActionResult> TestTemplate() { try { // ************************************************************* // Create output using json and mustache template // ************************************************************* RenderRequest request = new RenderRequest() { JsonString = "{\"title\": \"Sample Template\", \"name\": \"McTesty\"}", RenderJsUrl = _configuration.GetSection("Constants").GetSection("RenderJsUrl").Value, Template = _configuration.GetSection("Constants").GetSection("SampleTemplate").Value }; string result = await TemplateHelper.RenderDocument(_nodeServices, request); // ************************************************************* // Convert results to Pdf // ************************************************************* PdfRequest pdfRequest = new PdfRequest() { Html = "<h1>" + result + "<h1>", PdfFileName = "TestTemplate" }; byte[] pdfResponse = PdfDocument.BuildPdf(_configuration, pdfRequest); return(File(pdfResponse, "application/pdf")); } catch (Exception e) { Console.WriteLine(e); throw; } }
static void Main(string[] args) { if (args.Length < 2) { Console.WriteLine("Please specify file and web-service url to convert..."); return; } // read file content string filename = args[0]; Stream fs = File.OpenRead(filename); string url = args[1]; MemoryStream outstream = new MemoryStream(); PdfRequest request = new PdfRequest(fs, ".pptx", outstream); SPSite site = new SPSite(url); IAsyncResult result = request.BeginConvert(SPServiceContext.GetContext(site), null, null); // Use the EndConvert method to get the result. request.EndConvert(result); string result_file = Path.GetDirectoryName(filename) + "\\" + Path.GetFileNameWithoutExtension(filename) + ".pdf"; using (FileStream fs1 = new FileStream(result_file, FileMode.Create)) { outstream.Position = 0; outstream.CopyTo(fs1); fs1.Flush(); } fs.Close(); }
private OASResponse ConvertPPTImmediately(OASModels.ConversionSettings settings, SPUserToken userToken) { OASResponse oasResponse = new OASResponse(); using (SPSite site = (userToken == null ? new SPSite(ConfigurationManager.AppSettings["SiteUrl"]) : new SPSite(ConfigurationManager.AppSettings["SiteUrl"], userToken))) { using (SPWeb web = site.OpenWeb()) { byte[] input = Convert.FromBase64String(settings.Content); MemoryStream outstream = new MemoryStream(); try { Microsoft.Office.Server.PowerPoint.Conversion.FixedFormatSettings ppsettings = FillPowerPointConversionOptions(settings.Options); PdfRequest request = new PdfRequest(new MemoryStream(input), ".pptx", ppsettings, outstream); IAsyncResult result = request.BeginConvert(SPServiceContext.GetContext(site), null, null); // Use the EndConvert method to get the result. request.EndConvert(result); oasResponse.Content = Convert.ToBase64String(outstream.ToArray()); oasResponse.ErrorCode = OASErrorCodes.Success; } catch (Exception ex) { oasResponse.ErrorCode = OASErrorCodes.ErrFailedConvert; oasResponse.Message = ex.Message; } } } return(oasResponse); }
public async Task <IActionResult> GetSeniorityListPdf([FromBody] string seniorityListJson, [FromRoute] string name) { try { name = CleanName(name); string fileName = name + ".pdf"; _logger.LogInformation("GetSeniorityListPdf [FileName: {0}]", fileName); // ************************************************************* // Create output using json and mustache template // ************************************************************* if (seniorityListJson == "[]") { seniorityListJson = @"{""Empty"": ""true""}"; } HtmlRequest request = new HtmlRequest() { JsonString = seniorityListJson, RenderJsUrl = _configuration.GetSection("Constants").GetSection("RenderJsUrl").Value, Template = _configuration.GetSection("Constants").GetSection("SeniorityListTemplate").Value }; _logger.LogInformation("GetSeniorityListPdf [FileName: {0}] - Render Html", fileName); string result = await TemplateHelper.RenderDocument(_nodeServices, request); _logger.LogInformation("GetSeniorityListPdf [FileName: {0}] - Html Length: {1}", fileName, result.Length); // ************************************************************* // Convert results to Pdf // ************************************************************* PdfRequest pdfRequest = new PdfRequest() { Html = result, RenderJsUrl = _configuration.GetSection("Constants").GetSection("PdfJsUrl").Value, PdfFileName = fileName }; _logger.LogInformation("GetSeniorityListPdf [FileName: {0}] - Gen Pdf", fileName); byte[] pdfResponseBytes = await PdfDocument.BuildPdf(_nodeServices, pdfRequest, true); // convert to string and log string pdfResponse = System.Text.Encoding.Default.GetString(pdfResponseBytes); _logger.LogInformation("GetSeniorityListPdf [FileName: {0}] - Pdf Length: {1}", fileName, pdfResponse.Length); _logger.LogInformation("GetSeniorityListPdf [FileName: {0}] - Done", fileName); return(File(pdfResponseBytes, "application/pdf", fileName)); } catch (Exception e) { Console.WriteLine(e); throw; } }
private OASResponse StartPPTConversion(OASModels.ConversionSettings settings, SPUserToken userToken) { OASResponse oasResponse = new OASResponse(); using (SPSite site = (userToken == null ? new SPSite(ConfigurationManager.AppSettings["SiteUrl"]) : new SPSite(ConfigurationManager.AppSettings["SiteUrl"], userToken))) { using (SPWeb web = site.OpenWeb()) { try { web.AllowUnsafeUpdates = true; byte[] input = Convert.FromBase64String(settings.Content); SPFolder lib = GetOASLibrary(web); //add source file to library string source = Guid.NewGuid().ToString(); SPFile srcfile = lib.Files.Add(source, input, true); string dest = source + EXTENSION; //Set up the job MemoryStream ms = new MemoryStream(); Microsoft.Office.Server.PowerPoint.Conversion.FixedFormatSettings ppsettings = FillPowerPointConversionOptions(settings.Options); PdfRequest request = new PdfRequest(new MemoryStream(input), ".pptx", ppsettings, ms); PPTJob job = new PPTJob(); job.source = source; job.dest = dest; job.web = web; job.output = ms; job.request = request; IAsyncResult result = request.BeginConvert(SPServiceContext.GetContext(web.Site), PPTConversionFinished, job); // put file to the processing list AddFileToList(web, job.jobId.ToString(), dest, DocType.PPTX); oasResponse.FileId = job.jobId.ToString(); oasResponse.ErrorCode = OASErrorCodes.Success; } catch (Exception ex) { oasResponse.ErrorCode = OASErrorCodes.ErrFailedConvert; oasResponse.Message = ex.Message; } } } return(oasResponse); }
public async Task <Stream> GeneratePdfFromHtmlAsync(PdfRequest request, CancellationToken cancellationToken = default) { await using var browser = await ConnectBrowserAsync(); await using var page = await browser.NewPageAsync(); await SetupPageAsync(request, page); return(await page.PdfStreamAsync(request.PdfOptions ?? PdfRequest.DefaultPdfOptions)); }
public IActionResult TestPdf() { PdfRequest pdfRequest = new PdfRequest() { Html = "<h1>Hello World<h1>", PdfFileName = "HelloWorld" }; byte[] pdfResponse = PdfDocument.BuildPdf(_configuration, pdfRequest); return(File(pdfResponse, "application/pdf")); }
public async Task <IActionResult> TestPdf() { PdfRequest pdfRequest = new PdfRequest() { Html = "<h1>Hello World<h1>", RenderJsUrl = _configuration.GetSection("Constants").GetSection("PdfJsUrl").Value, PdfFileName = "HelloWorld" }; byte[] pdfResponse = await PdfDocument.BuildPdf(_nodeServices, pdfRequest); return(File(pdfResponse, "application/pdf")); }
private async Task SetupPageAsync(PdfRequest request, Page page) { if (request.Options?.EnableJavascript != null) { await page.SetJavaScriptEnabledAsync(request.Options.EnableJavascript); } await page.SetContentAsync(request.Html, new NavigationOptions { WaitUntil = new[] { WaitUntilNavigation.Networkidle0 }, Timeout = _settings.TimeoutSeconds * 1000, }); if (request.Options?.AddScriptTags is { Count : > 0 })
public IActionResult ConvertHtml([FromBody] PdfRequest request) { if (this.ModelState.IsValid) { var stream = _pdfService.ConvertHtml(request.HtmlText); var fileName = string.IsNullOrEmpty(request.FileName) ? string.Empty : Path.ChangeExtension(request.FileName, "pdf"); return(File(stream, "application/pdf", fileName)); } return(BadRequest(this.ModelState)); }
public async Task <IActionResult> GetWebPageAsPdf([FromRoute] Int32 version, PdfRequest request) { try { var cancel = Request.HttpContext.RequestAborted; var shot = await _shooterManager.ShotPdfAsync(request.ToShotOptions(), cancel); return(File(shot.Bytes, shot.MimeType, shot.FileName)); } catch (Exception exception) { _logger.LogError(exception, "Error on getting pdf screen shot"); return(StatusCode(500)); } }
public async Task <IActionResult> TestPdf() { string options = @"{""height"": ""10.5in"",""width"": ""8in"",""orientation"": ""portrait""}"; PdfRequest request = new PdfRequest() { Html = "<h1>Hello World<h1>", Options = options, PdfJsUrl = _configuration.GetSection("Constants").GetSection("PdfJsUrl").Value }; JsonResponse result = await PdfDocument.BuildPdf(_nodeServices, request); return(File(result.Data, "application/pdf")); }
private async Task <string> SavePdf(PdfRequest request, HtmlToPdfDocument pdf) { string fileName = Path.ChangeExtension(request.FileName, ".pdf"); using (var pdfStream = new MemoryStream(_converter.Convert(pdf))) { var httpHeader = new BlobHttpHeaders() { ContentType = "application/pdf", ContentEncoding = "utf-8", }; await _storageService.UploadFromStream(request.BlobContainer, fileName, pdfStream, httpHeader); } return(fileName); }
public async Task <ActionResult> GeneratePdf(PdfRequest request, string suggestFilename = "generated.pdf", CancellationToken cancellationToken = default) { try { var stream = await _pdfGenerator.GeneratePdfFromHtmlAsync(request, cancellationToken); return(File( stream, MediaTypeNames.Application.Pdf, enableRangeProcessing: true, fileDownloadName: suggestFilename )); } catch (Exception e) { return(Problem(title: "Failed to generate PDF", detail: e.Message, statusCode: StatusCodes.Status503ServiceUnavailable)); } }
public async Task <IActionResult> TestTemplate() { try { // ************************************************************* // Create output using json and mustache template // ************************************************************* RenderRequest request = new RenderRequest() { JsonString = "{\"title\": \"Sample Template\", \"name\": \"McTesty\"}", RenderJsUrl = _configuration.GetSection("Constants").GetSection("RenderJsUrl").Value, Template = _configuration.GetSection("Constants").GetSection("SampleTemplate").Value }; string result = await TemplateHelper.RenderDocument(_nodeServices, request); // ************************************************************* // Convert results to Pdf // ************************************************************* string options = @"{""height"": ""10.5in"",""width"": ""8in"",""orientation"": ""portrait""}"; PdfRequest pdfRequest = new PdfRequest() { Html = "<h1>" + result + "<h1>", Options = options, PdfJsUrl = _configuration.GetSection("Constants").GetSection("PdfJsUrl").Value }; JsonResponse jsonResult = await PdfDocument.BuildPdf(_nodeServices, pdfRequest); return(File(jsonResult.Data, "application/pdf")); } catch (Exception e) { Console.WriteLine(e); throw; } }
public DimensionBuilder(PdfRequest request) { this.Request = request; this.Request.Dimensions ??= new DocumentDimensions(); }
public DocumentBuilder(PdfRequest request) { this.Request = request; this.Request.Content ??= new DocumentRequest(); }
public ConfigBuilder(PdfRequest request) { this.Request = request; this.Request.Config ??= new HttpMessageConfig(); }