HtexGraphicFrame.cs 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. using DocumentFormat.OpenXml.Drawing.Diagrams;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Text;
  6. namespace HTEXLib.Models.HTEX
  7. {
  8. public class HtexGraphicFrame : HtexElement
  9. {
  10. public HtexGraphicFrame(string id, double rot, double width, double height,
  11. double top, double left, bool invisible,
  12. bool animatable, int index, Inner.PPTGraphicFrame graphicFrame, PPTSlide slide, string partForm)
  13. // frameId, width, height, top, left, visible, animatable
  14. {
  15. base.slide = slide;
  16. this.rot = rot;
  17. this.graphicFrame = graphicFrame;
  18. base.id = id;
  19. base.top = top;
  20. base.left = left;
  21. base.width = width;
  22. base.height = height;
  23. base.invisible = invisible;
  24. base.animatable = animatable;
  25. base.index = index;
  26. base.type = "GraphicFrame";
  27. base.partForm = partForm;
  28. }
  29. public Inner.PPTGraphicFrame graphicFrame { get; set; }
  30. public override List<Item> DrawElement()
  31. {
  32. var GraphicDataChildren = graphicFrame.element.Graphic.GraphicData.ChildElements;
  33. foreach (var clild in GraphicDataChildren) {
  34. if (clild is DocumentFormat.OpenXml.Drawing.Table Table) {
  35. var tal = Table;
  36. }
  37. if (clild is DocumentFormat.OpenXml.Drawing.Charts.ChartReference Chart)
  38. {
  39. var ChartNode = slide.SlidePart.Parts.Where(x => x.RelationshipId == Chart.Id).FirstOrDefault();
  40. var url = ChartNode.OpenXmlPart.Uri.ToString().Replace("../", "/ppt/");
  41. }
  42. if (clild is DocumentFormat.OpenXml.Drawing.Diagrams.RelationshipIds Diagram)
  43. {
  44. DoDiagram(Diagram);
  45. }
  46. }
  47. return null;
  48. }
  49. private void DoDiagram(RelationshipIds Diagram)
  50. {
  51. //datapart r:dm="rId2" layoutpart r:lo="rId3" stylepart r:qs="rId4" colorpart r:cs="rId5" />
  52. var DataPart = Diagram.DataPart.Value;
  53. var LayoutPart = Diagram.LayoutPart.Value;
  54. var StylePart = Diagram.StylePart.Value;
  55. var ColorPart = Diagram.ColorPart.Value;
  56. var Data = slide.SlidePart.Parts.Where(x => x.RelationshipId == DataPart).FirstOrDefault();
  57. var Layout = slide.SlidePart.Parts.Where(x => x.RelationshipId == LayoutPart).FirstOrDefault();
  58. var Style = slide.SlidePart.Parts.Where(x => x.RelationshipId == StylePart).FirstOrDefault();
  59. var Color = slide.SlidePart.Parts.Where(x => x.RelationshipId == ColorPart).FirstOrDefault();
  60. if (Layout != null)
  61. {
  62. var url = Layout.OpenXmlPart.Uri.ToString().Replace("../", "/ppt/");
  63. }
  64. if (Style != null)
  65. {
  66. var url = Style.OpenXmlPart.Uri.ToString().Replace("../", "/ppt/");
  67. }
  68. if (Color != null)
  69. {
  70. var url = Color.OpenXmlPart.Uri.ToString().Replace("../", "/ppt/");
  71. }
  72. if (Data != null)
  73. {
  74. var url = Data.OpenXmlPart.Uri.ToString().Replace("../", "/ppt/");
  75. }
  76. }
  77. }
  78. }