// --- private void DrawImage(PdfDocument pdfDoc, eImageMode ImageMode, Image image) { var page = pdfDoc.AddPage(); var gfx = XGraphics.FromPdfPage(page); var pdfImage = XImage.FromGdiPlusImage(image); switch (ImageMode) { case eImageMode.Scale: if (pdfImage.PixelWidth <= page.Width && pdfImage.PixelHeight <= page.Height) // no need for scaling - image is smaller than page { gfx.DrawImage(pdfImage, new XRect(0, 0, pdfImage.PixelWidth, pdfImage.PixelHeight)); } else if (pdfImage.PixelWidth > page.Width) // scale by width { gfx.DrawImage(pdfImage, new XRect(0, 0, page.Width, (page.Width / pdfImage.PixelWidth) * pdfImage.PixelHeight)); } else // scale by height { gfx.DrawImage(pdfImage, new XRect(0, 0, (page.Height / pdfImage.PixelHeight) * pdfImage.PixelWidth, page.Height)); } break; case eImageMode.Stretch: gfx.DrawImage(pdfImage, new XRect(0, 0, page.Width, page.Height), new XRect(0, 0, pdfImage.PixelWidth, pdfImage.PixelHeight), XGraphicsUnit.Point); break; default: case eImageMode.None: gfx.DrawImage(pdfImage, new XRect(0, 0, pdfImage.PixelWidth, pdfImage.PixelHeight)); break; } }
public async Task <Stream> CreateFromImageUrl(string URL, eImageMode ImageMode = eImageMode.None) { var pdfDoc = new PdfDocument(); /* read as Bytes * byte[] data; * using (var client = new WebClient()) * data = await client.DownloadDataTaskAsync(new Uri(URL)); * using (var ms = new MemoryStream(data)) * using (var image = Image.FromStream(ms)) * this.DrawImage(pdfDoc, ImageMode, image); */ // read as Stream using (var client = new WebClient()) using (var imageStream = await client.OpenReadTaskAsync(new Uri(URL))) using (var image = Image.FromStream(imageStream)) this.DrawImage(pdfDoc, ImageMode, image); var stream = new MemoryStream(); pdfDoc.Save(stream, false); pdfDoc.Dispose(); return(stream); }
public Stream CreateFromImageFile(string FilePath, eImageMode ImageMode) { var HtmlString = $@" <style> img {{ width: 100%; }} </style> <img src='{FilePath}' /> " ; return(this.CreateFromHtmlString(HtmlString)); }
public Stream CreateFromBitmap(Bitmap Bitmap, eImageMode ImageMode) { // create temporary file var temp = $"{AppDomain.CurrentDomain.BaseDirectory}temp_{DateTime.Now.ToString("yyyyMMddHHmmss")}.jpg"; Bitmap.Save(temp); var stream = this.CreateFromImageFile(temp, ImageMode); File.Delete(temp); return(stream); }
public Stream CreateFromBitmap(Bitmap Bitmap, eImageMode ImageMode = eImageMode.None) { var pdfDoc = new PdfDocument(); using (var image = Bitmap) this.DrawImage(pdfDoc, ImageMode, image); var stream = new MemoryStream(); pdfDoc.Save(stream, false); pdfDoc.Dispose(); return(stream); }
public async Task <Stream> CreateFromScreenshot(string URL, string ChromePath = null, eImageMode ImageMode = eImageMode.None) { return(await this.PdfProvider.CreateFromScreenshot(URL, ChromePath, ImageMode)); }
public Stream CreateFromImageFile(string FilePath, eImageMode ImageMode = eImageMode.None) { return(this.PdfProvider.CreateFromImageFile(FilePath, ImageMode)); }
public async Task <Stream> CreateFromImageUrl(string URL, eImageMode ImageMode = eImageMode.None) { return(await this.PdfProvider.CreateFromImageUrl(URL, ImageMode)); }
public Stream CreateFromImage(Image Image, eImageMode ImageMode = eImageMode.None) { return(this.PdfProvider.CreateFromImage(Image, ImageMode)); }
public Stream CreateFromBitmap(Bitmap Bitmap, eImageMode ImageMode = eImageMode.None) { return(this.PdfProvider.CreateFromBitmap(Bitmap, ImageMode)); }
public override async Task <Stream> CreateFromScreenshot(string URL, string ChromePath = null, eImageMode ImageMode = eImageMode.None) { return(ProcessManager.InteractAsStream(this.UtilityPath, $"{GlobalOptions} {URL} -", "")); }
public async Task <Stream> CreateFromImageUrl(string URL, eImageMode ImageMode) { return(this.CreateFromImageFile(URL, ImageMode)); }
public Stream CreateFromImage(Image Image, eImageMode ImageMode) { return(this.CreateFromBitmap(new Bitmap(Image), ImageMode)); }
public override async Task <Stream> CreateFromScreenshot(string URL, string ChromePath = null, eImageMode ImageMode = eImageMode.None) { var pdfDoc = new PdfDocument(); using (var screenshotStream = await base.CreateFromScreenshot(URL, ChromePath, ImageMode)) using (var image = Image.FromStream(screenshotStream)) this.DrawImage(pdfDoc, ImageMode, image); var stream = new MemoryStream(); pdfDoc.Save(stream, false); pdfDoc.Dispose(); return(stream); }
public Stream CreateFromImageFile(string FilePath, eImageMode ImageMode = eImageMode.None) { return(this.CreateFromImage(Image.FromFile(FilePath), ImageMode)); }
public virtual async Task <Stream> CreateFromScreenshot(string URL, string ChromePath = null, eImageMode ImageMode = eImageMode.None) { var browser = await this.CreateWebBrowser(ChromePath); var webPage = await browser.NewPageAsync(); await webPage.GoToAsync(URL); var screenshotOptions = new ScreenshotOptions { FullPage = true, Quality = 100, Type = ScreenshotType.Jpeg }; return(await webPage.ScreenshotStreamAsync(screenshotOptions)); }