thorpedosg

TkczG6Gs

Aug 6th, 2018
47
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.75 KB | None | 0 0
  1. Creating Document Images
  2. public void CreateNotificationImage(string imagePath, NotificationData data)
  3. {
  4. // CreateDocument() is my own method where a new doc is created with new data
  5. Document doc = CreateDocument(data);
  6. doc.DefaultPageSetup.PageFormat = PageFormat.Letter;
  7.  
  8. int page = 1;
  9. DocumentRenderer renderer = new DocumentRenderer(doc);
  10. renderer.PrepareDocument();
  11. PageInfo pageInfo = renderer.FormattedDocument.GetPageInfo(page);
  12.  
  13. int dpi = 150;
  14. int dx = (int)(pageInfo.Width.Inch * dpi);
  15. int dy = (int)(pageInfo.Height.Inch * dpi);
  16. float scale = dpi / 72f;
  17.  
  18. System.Drawing.Image image = new Bitmap(dx, dy, PixelFormat.Format32bppRgb);
  19.  
  20. using (Graphics graphics = Graphics.FromImage(image))
  21. {
  22. graphics.Clear(System.Drawing.Color.White);
  23. graphics.ScaleTransform(scale, scale); // scale to 72dpi
  24.  
  25. using (XGraphics gfx = XGraphics.FromGraphics(graphics, new XSize(Unit.FromInch(8.5).Point, Unit.FromInch(11).Point)))
  26. {
  27. renderer.RenderPage(gfx, page);
  28. WriteTiffImage(imagePath, image);
  29. }
  30. }
  31. }
  32.  
  33. private void WriteTiffImage(string targetPath, System.Drawing.Image image)
  34. {
  35. Encoder encoder = Encoder.SaveFlag;
  36. ImageCodecInfo tiffInfo = ImageCodecInfo.GetImageEncoders()
  37. .Where(e => e.MimeType == "image/tiff")
  38. .FirstOrDefault();
  39.  
  40. EncoderParameters encoderParams = new EncoderParameters(1);
  41. encoderParams.Param[0] = new EncoderParameter(encoder, (long)EncoderValue.MultiFrame);
  42.  
  43. image.Save(targetPath, tiffInfo, encoderParams);
  44.  
  45. // close file
  46. encoderParams.Param[0] = new EncoderParameter(encoder, (long)EncoderValue.Flush);
  47. image.SaveAdd(encoderParams);
  48. }
Add Comment
Please, Sign In to add comment