PPTGraphicFrame.cs 3.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. using DocumentFormat.OpenXml.Packaging;
  2. using DocumentFormat.OpenXml.Presentation;
  3. namespace ClearSlideLibrary.Dom
  4. {
  5. public class PPTGraphicFrame : PPTShapeBase
  6. {
  7. public PPTGraphicFrame(SlidePart slidePart, GraphicFrame gfarame)
  8. {
  9. SetGraphicFrameVisualProperties(slidePart, gfarame);
  10. SetGraphicFrameNonVisualProperties(slidePart,gfarame);
  11. }
  12. private void SetGraphicFrameNonVisualProperties(SlidePart slidePart,GraphicFrame gfarame)
  13. {
  14. if (gfarame.NonVisualGraphicFrameProperties.NonVisualDrawingProperties.HyperlinkOnClick != null)
  15. foreach (HyperlinkRelationship link in slidePart.HyperlinkRelationships)
  16. if (link.Id.Equals(gfarame.NonVisualGraphicFrameProperties.NonVisualDrawingProperties.HyperlinkOnClick.Id))
  17. ClickLinkUrl = link.Uri.IsAbsoluteUri ? link.Uri.AbsoluteUri : link.Uri.OriginalString;
  18. if (gfarame.NonVisualGraphicFrameProperties.NonVisualDrawingProperties.HyperlinkOnHover != null)
  19. foreach (HyperlinkRelationship link in slidePart.HyperlinkRelationships)
  20. if (link.Id.Equals(gfarame.NonVisualGraphicFrameProperties.NonVisualDrawingProperties.HyperlinkOnHover.Id))
  21. HoverLinkUrl = link.Uri.IsAbsoluteUri ? link.Uri.AbsoluteUri : link.Uri.OriginalString;
  22. var nonVisualShapeProp = new PPTNonVisualShapeProp
  23. {
  24. Id = "s1s" + //HARD CODED: we split it into separate HTML files!
  25. gfarame.NonVisualGraphicFrameProperties.NonVisualDrawingProperties.Id,
  26. Name = gfarame.LocalName,
  27. Type = "PPTGraphicFrame"
  28. };
  29. base.NonVisualShapeProp = nonVisualShapeProp;
  30. }
  31. private void SetGraphicFrameVisualProperties(SlidePart slidePart,
  32. GraphicFrame gfarame)
  33. {
  34. base.VisualShapeProp = new PPTVisualPPTShapeProp();
  35. if (gfarame.Transform != null)
  36. {
  37. base.VisualShapeProp.Extents = gfarame.Transform.Extents;
  38. base.VisualShapeProp.Offset = gfarame.Transform.Offset;
  39. }
  40. else
  41. {
  42. //Petco change get properties from layout for GraphicFrame object.
  43. DocumentFormat.OpenXml.Presentation.ShapeTree shapeTree =
  44. slidePart.SlideLayoutPart.SlideLayout.CommonSlideData.ShapeTree;
  45. DocumentFormat.OpenXml.Presentation.GraphicFrame layoutShape;
  46. if (shapeTree != null)
  47. {
  48. layoutShape = shapeTree.GetFirstChild<DocumentFormat.OpenXml.Presentation.GraphicFrame>();
  49. if (layoutShape.Transform != null)
  50. {
  51. base.VisualShapeProp.Extents = layoutShape.Transform.Extents;
  52. base.VisualShapeProp.Offset = layoutShape.Transform.Offset;
  53. }
  54. }
  55. }
  56. }
  57. public void CreateImage(string targetDir)
  58. {
  59. /*
  60. Image image = base.SourceImage;
  61. Size size = new Size(base.shPr.PixelWidth, base.shPr.PixelHeight);
  62. string path = Path.Combine(targetDir, base.nvSpPr.Id + defaultImageType );
  63. //image.Save(Path.Combine(path));
  64. */
  65. }
  66. }
  67. }