2
0

StandardPrintController.cs 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. //
  2. // System.Drawing.StandardPrintController.cs
  3. //
  4. // Author:
  5. // Dennis Hayes ([email protected])
  6. // Herve Poussineau ([email protected])
  7. //
  8. // (C) 2002 Ximian, Inc
  9. //
  10. using System;
  11. namespace System.Drawing.Printing
  12. {
  13. public class StandardPrintController : PrintController
  14. {
  15. private int page;
  16. private Image image;
  17. public StandardPrintController()
  18. {
  19. }
  20. [MonoTODO("StandardPrintController.OnEndPage")]
  21. public override void OnEndPage(PrintDocument document, PrintPageEventArgs e)
  22. {
  23. //TODO: print current page
  24. // - image to print is this.image
  25. // - page settings are in e.PageSettings
  26. // - printer settings are in document.PrinterSettings
  27. // - don't forget to use document.OriginAtMargins (only if .NET 1.1)
  28. // actually, "print" == "save to a file"
  29. try
  30. {
  31. string fileName = document.DocumentName + " " + page.ToString("D4") + ".jpg";
  32. Console.WriteLine("StandardPrintController: Print page \"{0}\"", fileName);
  33. image.Save(fileName, System.Drawing.Imaging.ImageFormat.Jpeg);
  34. }
  35. catch (Exception) {}
  36. if (e.Graphics != null)
  37. e.Graphics.Dispose();
  38. }
  39. [MonoTODO("StandardPrintController.OnStartPrint")]
  40. public override void OnStartPrint(PrintDocument document, PrintEventArgs e){
  41. page = 0;
  42. }
  43. [MonoTODO("StandardPrintController.OnEndPrint")]
  44. public override void OnEndPrint(PrintDocument document, PrintEventArgs e){
  45. return;
  46. }
  47. [MonoTODO("StandardPrintController.OnStartPage")]
  48. public override Graphics OnStartPage(PrintDocument document, PrintPageEventArgs e)
  49. {
  50. //FIXME: I'm not sure of what I'm doing
  51. // I don't know what size to give to image
  52. // and why I have to clear it
  53. page++;
  54. // returns a new (empty) graphics
  55. image = new Bitmap(e.MarginBounds.Width, e.MarginBounds.Height);
  56. Graphics g = Graphics.FromImage(image);
  57. g.Clear(Color.White);
  58. return g;
  59. }
  60. }
  61. }