First commit

Send all results
This commit is contained in:
2020-09-04 12:49:15 +05:00
commit 330a2ccfda
2819 changed files with 226201 additions and 0 deletions

View File

@@ -0,0 +1,100 @@
#region MigraDoc - Creating Documents on the Fly
//
// Authors:
// David Stephensen
//
// Copyright (c) 2001-2017 empira Software GmbH, Cologne Area (Germany)
//
// http://www.pdfsharp.com
// http://www.migradoc.com
// http://sourceforge.net/projects/pdfsharp
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the "Software"),
// to deal in the Software without restriction, including without limitation
// the rights to use, copy, modify, merge, publish, distribute, sublicense,
// and/or sell copies of the Software, and to permit persons to whom the
// Software is furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included
// in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
#endregion
using PdfSharp.Charting;
namespace MigraDoc.Rendering.ChartMapper
{
/// <summary>
/// The AxisMapper class.
/// </summary>
public class AxisMapper
{
/// <summary>
/// Initializes a new instance of the <see cref="AxisMapper"/> class.
/// </summary>
public AxisMapper()
{ }
static void MapObject(Axis axis, DocumentObjectModel.Shapes.Charts.Axis domAxis)
{
if (!domAxis.IsNull("TickLabels.Format"))
axis.TickLabels.Format = domAxis.TickLabels.Format;
if (!domAxis.IsNull("TickLabels.Style"))
FontMapper.Map(axis.TickLabels.Font, domAxis.TickLabels.Document, domAxis.TickLabels.Style);
if (!domAxis.IsNull("TickLabels.Font"))
FontMapper.Map(axis.TickLabels.Font, domAxis.TickLabels.Font);
if (!domAxis.IsNull("MajorTickMark"))
axis.MajorTickMark = (TickMarkType)domAxis.MajorTickMark;
if (!domAxis.IsNull("MinorTickMark"))
axis.MinorTickMark = (TickMarkType)domAxis.MinorTickMark;
if (!domAxis.IsNull("MajorTick"))
axis.MajorTick = domAxis.MajorTick;
if (!domAxis.IsNull("MinorTick"))
axis.MinorTick = domAxis.MinorTick;
if (!domAxis.IsNull("Title"))
{
axis.Title.Caption = domAxis.Title.Caption;
if (!domAxis.IsNull("Title.Style"))
FontMapper.Map(axis.Title.Font, domAxis.Title.Document, domAxis.Title.Style);
if (!domAxis.IsNull("Title.Font"))
FontMapper.Map(axis.Title.Font, domAxis.Title.Font);
axis.Title.Orientation = domAxis.Title.Orientation.Value;
axis.Title.Alignment = (HorizontalAlignment)domAxis.Title.Alignment;
axis.Title.VerticalAlignment = (VerticalAlignment)domAxis.Title.VerticalAlignment;
}
axis.HasMajorGridlines = domAxis.HasMajorGridlines;
axis.HasMinorGridlines = domAxis.HasMinorGridlines;
if (!domAxis.IsNull("MajorGridlines") && !domAxis.MajorGridlines.IsNull("LineFormat"))
LineFormatMapper.Map(axis.MajorGridlines.LineFormat, domAxis.MajorGridlines.LineFormat);
if (!domAxis.IsNull("MinorGridlines") && !domAxis.MinorGridlines.IsNull("LineFormat"))
LineFormatMapper.Map(axis.MinorGridlines.LineFormat, domAxis.MinorGridlines.LineFormat);
if (!domAxis.IsNull("MaximumScale"))
axis.MaximumScale = domAxis.MaximumScale;
if (!domAxis.IsNull("MinimumScale"))
axis.MinimumScale = domAxis.MinimumScale;
if (!domAxis.IsNull("LineFormat"))
LineFormatMapper.Map(axis.LineFormat, domAxis.LineFormat);
}
public static void Map(Axis axis, DocumentObjectModel.Shapes.Charts.Axis domAxis)
{
AxisMapper mapper = new AxisMapper();
MapObject(axis, domAxis);
}
}
}

View File

@@ -0,0 +1,93 @@
#region MigraDoc - Creating Documents on the Fly
//
// Authors:
// David Stephensen
//
// Copyright (c) 2001-2017 empira Software GmbH, Cologne Area (Germany)
//
// http://www.pdfsharp.com
// http://www.migradoc.com
// http://sourceforge.net/projects/pdfsharp
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the "Software"),
// to deal in the Software without restriction, including without limitation
// the rights to use, copy, modify, merge, publish, distribute, sublicense,
// and/or sell copies of the Software, and to permit persons to whom the
// Software is furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included
// in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
#endregion
using PdfSharp.Charting;
using PdfSharp.Drawing;
namespace MigraDoc.Rendering.ChartMapper
{
/// <summary>
/// Maps charts from the MigraDoc.DocumentObjectModel to charts from Pdf.Charting.
/// </summary>
public class ChartMapper
{
/// <summary>
/// Initializes a new instance of the chart mapper object.
/// </summary>
public ChartMapper()
{ }
private ChartFrame MapObject(DocumentObjectModel.Shapes.Charts.Chart domChart)
{
ChartFrame chartFrame = new ChartFrame();
chartFrame.Size = new XSize(domChart.Width.Point, domChart.Height.Point);
chartFrame.Location = new XPoint(domChart.Left.Position.Point, domChart.Top.Position.Point);
Chart chart = new Chart((ChartType)domChart.Type);
if (!domChart.IsNull("XAxis"))
AxisMapper.Map(chart.XAxis, domChart.XAxis);
if (!domChart.IsNull("YAxis"))
AxisMapper.Map(chart.YAxis, domChart.YAxis);
PlotAreaMapper.Map(chart.PlotArea, domChart.PlotArea);
SeriesCollectionMapper.Map(chart.SeriesCollection, domChart.SeriesCollection);
LegendMapper.Map(chart, domChart);
chart.DisplayBlanksAs = (BlankType)domChart.DisplayBlanksAs;
chart.HasDataLabel = domChart.HasDataLabel;
if (!domChart.IsNull("DataLabel"))
DataLabelMapper.Map(chart.DataLabel, domChart.DataLabel);
if (!domChart.IsNull("Style"))
FontMapper.Map(chart.Font, domChart.Document, domChart.Style);
if (!domChart.IsNull("Format.Font"))
FontMapper.Map(chart.Font, domChart.Format.Font);
if (!domChart.IsNull("XValues"))
XValuesMapper.Map(chart.XValues, domChart.XValues);
chartFrame.Add(chart);
return chartFrame;
}
/// <summary>
/// Maps the specified DOM chart.
/// </summary>
/// <param name="domChart">The DOM chart.</param>
/// <returns></returns>
public static ChartFrame Map(DocumentObjectModel.Shapes.Charts.Chart domChart)
{
ChartMapper mapper = new ChartMapper();
return mapper.MapObject(domChart);
}
}
}

View File

@@ -0,0 +1,59 @@
#region MigraDoc - Creating Documents on the Fly
//
// Authors:
// David Stephensen
//
// Copyright (c) 2001-2017 empira Software GmbH, Cologne Area (Germany)
//
// http://www.pdfsharp.com
// http://www.migradoc.com
// http://sourceforge.net/projects/pdfsharp
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the "Software"),
// to deal in the Software without restriction, including without limitation
// the rights to use, copy, modify, merge, publish, distribute, sublicense,
// and/or sell copies of the Software, and to permit persons to whom the
// Software is furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included
// in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
#endregion
using PdfSharp.Charting;
namespace MigraDoc.Rendering.ChartMapper
{
public class DataLabelMapper
{
private DataLabelMapper()
{ }
void MapObject(DataLabel dataLabel, DocumentObjectModel.Shapes.Charts.DataLabel domDataLabel)
{
if (!domDataLabel.IsNull("Style"))
FontMapper.Map(dataLabel.Font, domDataLabel.Document, domDataLabel.Style);
if (!domDataLabel.IsNull("Font"))
FontMapper.Map(dataLabel.Font, domDataLabel.Font);
dataLabel.Format = domDataLabel.Format;
if (!domDataLabel.IsNull("Position"))
dataLabel.Position = (DataLabelPosition)domDataLabel.Position;
if (!domDataLabel.IsNull("Type"))
dataLabel.Type = (DataLabelType)domDataLabel.Type;
}
public static void Map(DataLabel dataLabel, DocumentObjectModel.Shapes.Charts.DataLabel domDataLabel)
{
DataLabelMapper mapper = new DataLabelMapper();
mapper.MapObject(dataLabel, domDataLabel);
}
}
}

View File

@@ -0,0 +1,62 @@
#region MigraDoc - Creating Documents on the Fly
//
// Authors:
// David Stephensen
//
// Copyright (c) 2001-2017 empira Software GmbH, Cologne Area (Germany)
//
// http://www.pdfsharp.com
// http://www.migradoc.com
// http://sourceforge.net/projects/pdfsharp
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the "Software"),
// to deal in the Software without restriction, including without limitation
// the rights to use, copy, modify, merge, publish, distribute, sublicense,
// and/or sell copies of the Software, and to permit persons to whom the
// Software is furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included
// in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
#endregion
using PdfSharp.Charting;
using PdfSharp.Drawing;
namespace MigraDoc.Rendering.ChartMapper
{
public class FillFormatMapper
{
private FillFormatMapper()
{ }
void MapObject(FillFormat fillFormat, DocumentObjectModel.Shapes.FillFormat domFillFormat)
{
if (domFillFormat.Color.IsEmpty)
fillFormat.Color = XColor.Empty;
else
{
#if noCMYK
fillFormat.Color = XColor.FromArgb((int)domFillFormat.Color.Argb);
#else
fillFormat.Color = ColorHelper.ToXColor(domFillFormat.Color, domFillFormat.Document.UseCmykColor);
#endif
}
fillFormat.Visible = domFillFormat.Visible;
}
public static void Map(FillFormat fillFormat, DocumentObjectModel.Shapes.FillFormat domFillFormat)
{
FillFormatMapper mapper = new FillFormatMapper();
mapper.MapObject(fillFormat, domFillFormat);
}
}
}

View File

@@ -0,0 +1,80 @@
#region MigraDoc - Creating Documents on the Fly
//
// Authors:
// David Stephensen
//
// Copyright (c) 2001-2017 empira Software GmbH, Cologne Area (Germany)
//
// http://www.pdfsharp.com
// http://www.migradoc.com
// http://sourceforge.net/projects/pdfsharp
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the "Software"),
// to deal in the Software without restriction, including without limitation
// the rights to use, copy, modify, merge, publish, distribute, sublicense,
// and/or sell copies of the Software, and to permit persons to whom the
// Software is furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included
// in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
#endregion
using PdfSharp.Charting;
using PdfSharp.Drawing;
namespace MigraDoc.Rendering.ChartMapper
{
public class FontMapper
{
private FontMapper()
{ }
void MapObject(Font font, DocumentObjectModel.Font domFont)
{
font.Bold = domFont.Bold;
if (domFont.Color.IsEmpty)
font.Color = XColor.Empty;
else
{
#if noCMYK
font.Color = XColor.FromArgb((int)domFont.Color.Argb);
#else
font.Color = ColorHelper.ToXColor(domFont.Color, domFont.Document.UseCmykColor);
#endif
}
font.Italic = domFont.Italic;
if (!domFont.IsNull("Name"))
font.Name = domFont.Name;
if (!domFont.IsNull("Size"))
font.Size = domFont.Size.Point;
font.Subscript = domFont.Subscript;
font.Superscript = domFont.Superscript;
font.Underline = (Underline)domFont.Underline;
}
public static void Map(Font font, DocumentObjectModel.Document domDocument, string domStyleName)
{
DocumentObjectModel.Style domStyle = domDocument.Styles[domStyleName];
if (domStyle != null)
{
FontMapper mapper = new FontMapper();
mapper.MapObject(font, domStyle.Font);
}
}
public static void Map(Font font, DocumentObjectModel.Font domFont)
{
FontMapper mapper = new FontMapper();
mapper.MapObject(font, domFont);
}
}
}

View File

@@ -0,0 +1,122 @@
#region MigraDoc - Creating Documents on the Fly
//
// Authors:
// David Stephensen
//
// Copyright (c) 2001-2017 empira Software GmbH, Cologne Area (Germany)
//
// http://www.pdfsharp.com
// http://www.migradoc.com
// http://sourceforge.net/projects/pdfsharp
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the "Software"),
// to deal in the Software without restriction, including without limitation
// the rights to use, copy, modify, merge, publish, distribute, sublicense,
// and/or sell copies of the Software, and to permit persons to whom the
// Software is furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included
// in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
#endregion
using PdfSharp.Charting;
namespace MigraDoc.Rendering.ChartMapper
{
public class LegendMapper
{
private LegendMapper()
{ }
void MapObject(Chart chart, DocumentObjectModel.Shapes.Charts.Chart domChart)
{
DocumentObjectModel.Shapes.Charts.Legend domLegend = null;
DocumentObjectModel.Shapes.Charts.TextArea textArea = null;
foreach (DocumentObjectModel.DocumentObject domObj in domChart.BottomArea.Elements)
{
if (domObj is DocumentObjectModel.Shapes.Charts.Legend)
{
chart.Legend.Docking = DockingType.Bottom;
domLegend = domObj as DocumentObjectModel.Shapes.Charts.Legend;
textArea = domChart.BottomArea;
}
}
foreach (DocumentObjectModel.DocumentObject domObj in domChart.RightArea.Elements)
{
if (domObj is DocumentObjectModel.Shapes.Charts.Legend)
{
chart.Legend.Docking = DockingType.Right;
domLegend = domObj as DocumentObjectModel.Shapes.Charts.Legend;
textArea = domChart.RightArea;
}
}
foreach (DocumentObjectModel.DocumentObject domObj in domChart.LeftArea.Elements)
{
if (domObj is DocumentObjectModel.Shapes.Charts.Legend)
{
chart.Legend.Docking = DockingType.Left;
domLegend = domObj as DocumentObjectModel.Shapes.Charts.Legend;
textArea = domChart.LeftArea;
}
}
foreach (DocumentObjectModel.DocumentObject domObj in domChart.TopArea.Elements)
{
if (domObj is DocumentObjectModel.Shapes.Charts.Legend)
{
chart.Legend.Docking = DockingType.Top;
domLegend = domObj as DocumentObjectModel.Shapes.Charts.Legend;
textArea = domChart.TopArea;
}
}
foreach (DocumentObjectModel.DocumentObject domObj in domChart.HeaderArea.Elements)
{
if (domObj is DocumentObjectModel.Shapes.Charts.Legend)
{
chart.Legend.Docking = DockingType.Top;
domLegend = domObj as DocumentObjectModel.Shapes.Charts.Legend;
textArea = domChart.HeaderArea;
}
}
foreach (DocumentObjectModel.DocumentObject domObj in domChart.FooterArea.Elements)
{
if (domObj is DocumentObjectModel.Shapes.Charts.Legend)
{
chart.Legend.Docking = DockingType.Bottom;
domLegend = domObj as DocumentObjectModel.Shapes.Charts.Legend;
textArea = domChart.FooterArea;
}
}
if (domLegend != null)
{
if (!domLegend.IsNull("LineFormat"))
LineFormatMapper.Map(chart.Legend.LineFormat, domLegend.LineFormat);
if (!textArea.IsNull("Style"))
FontMapper.Map(chart.Legend.Font, textArea.Document, textArea.Style);
if (!domLegend.IsNull("Format.Font"))
FontMapper.Map(chart.Legend.Font, domLegend.Format.Font);
}
}
public static void Map(Chart chart, DocumentObjectModel.Shapes.Charts.Chart domChart)
{
LegendMapper mapper = new LegendMapper();
mapper.MapObject(chart, domChart);
}
}
}

View File

@@ -0,0 +1,98 @@
#region MigraDoc - Creating Documents on the Fly
//
// Authors:
// David Stephensen
//
// Copyright (c) 2001-2017 empira Software GmbH, Cologne Area (Germany)
//
// http://www.pdfsharp.com
// http://www.migradoc.com
// http://sourceforge.net/projects/pdfsharp
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the "Software"),
// to deal in the Software without restriction, including without limitation
// the rights to use, copy, modify, merge, publish, distribute, sublicense,
// and/or sell copies of the Software, and to permit persons to whom the
// Software is furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included
// in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
#endregion
using PdfSharp.Charting;
using PdfSharp.Drawing;
namespace MigraDoc.Rendering.ChartMapper
{
/// <summary>
/// The LineFormatMapper class.
/// </summary>
public class LineFormatMapper
{
/// <summary>
/// Initializes a new instance of the <see cref="LineFormatMapper"/> class.
/// </summary>
public LineFormatMapper()
{ }
void MapObject(LineFormat lineFormat, DocumentObjectModel.Shapes.LineFormat domLineFormat)
{
if (domLineFormat.Color.IsEmpty)
lineFormat.Color = XColor.Empty;
else
{
#if noCMYK
lineFormat.Color = XColor.FromArgb(domLineFormat.Color.Argb);
#else
lineFormat.Color = ColorHelper.ToXColor(domLineFormat.Color, domLineFormat.Document.UseCmykColor);
#endif
}
switch (domLineFormat.DashStyle)
{
case DocumentObjectModel.Shapes.DashStyle.Dash:
lineFormat.DashStyle = XDashStyle.Dash;
break;
case DocumentObjectModel.Shapes.DashStyle.DashDot:
lineFormat.DashStyle = XDashStyle.DashDot;
break;
case DocumentObjectModel.Shapes.DashStyle.DashDotDot:
lineFormat.DashStyle = XDashStyle.DashDotDot;
break;
case DocumentObjectModel.Shapes.DashStyle.Solid:
lineFormat.DashStyle = XDashStyle.Solid;
break;
case DocumentObjectModel.Shapes.DashStyle.SquareDot:
lineFormat.DashStyle = XDashStyle.Dot;
break;
default:
lineFormat.DashStyle = XDashStyle.Solid;
break;
}
switch (domLineFormat.Style)
{
case DocumentObjectModel.Shapes.LineStyle.Single:
lineFormat.Style = LineStyle.Single;
break;
}
lineFormat.Visible = domLineFormat.Visible;
if (domLineFormat.IsNull("Visible"))
lineFormat.Visible = true;
lineFormat.Width = domLineFormat.Width.Point;
}
public static void Map(LineFormat lineFormat, DocumentObjectModel.Shapes.LineFormat domLineFormat)
{
LineFormatMapper mapper = new LineFormatMapper();
mapper.MapObject(lineFormat, domLineFormat);
}
}
}

View File

@@ -0,0 +1,65 @@
#region MigraDoc - Creating Documents on the Fly
//
// Authors:
// David Stephensen
//
// Copyright (c) 2001-2017 empira Software GmbH, Cologne Area (Germany)
//
// http://www.pdfsharp.com
// http://www.migradoc.com
// http://sourceforge.net/projects/pdfsharp
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the "Software"),
// to deal in the Software without restriction, including without limitation
// the rights to use, copy, modify, merge, publish, distribute, sublicense,
// and/or sell copies of the Software, and to permit persons to whom the
// Software is furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included
// in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
#endregion
using PdfSharp.Charting;
namespace MigraDoc.Rendering.ChartMapper
{
/// <summary>
/// The PlotAreaMapper class.
/// </summary>
public class PlotAreaMapper
{
/// <summary>
/// Initializes a new instance of the <see cref="PlotAreaMapper"/> class.
/// </summary>
public PlotAreaMapper()
{ }
void MapObject(PlotArea plotArea, DocumentObjectModel.Shapes.Charts.PlotArea domPlotArea)
{
plotArea.BottomPadding = domPlotArea.BottomPadding.Point;
plotArea.RightPadding = domPlotArea.RightPadding.Point;
plotArea.LeftPadding = domPlotArea.LeftPadding.Point;
plotArea.TopPadding = domPlotArea.TopPadding.Point;
if (!domPlotArea.IsNull("LineFormat"))
LineFormatMapper.Map(plotArea.LineFormat, domPlotArea.LineFormat);
if (!domPlotArea.IsNull("FillFormat"))
FillFormatMapper.Map(plotArea.FillFormat, domPlotArea.FillFormat);
}
public static void Map(PlotArea plotArea, DocumentObjectModel.Shapes.Charts.PlotArea domPlotArea)
{
PlotAreaMapper mapper = new PlotAreaMapper();
mapper.MapObject(plotArea, domPlotArea);
}
}
}

View File

@@ -0,0 +1,116 @@
#region MigraDoc - Creating Documents on the Fly
//
// Authors:
// David Stephensen
//
// Copyright (c) 2001-2017 empira Software GmbH, Cologne Area (Germany)
//
// http://www.pdfsharp.com
// http://www.migradoc.com
// http://sourceforge.net/projects/pdfsharp
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the "Software"),
// to deal in the Software without restriction, including without limitation
// the rights to use, copy, modify, merge, publish, distribute, sublicense,
// and/or sell copies of the Software, and to permit persons to whom the
// Software is furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included
// in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
#endregion
using PdfSharp.Drawing;
using PdfSharp.Charting;
namespace MigraDoc.Rendering.ChartMapper
{
/// <summary>
/// The SeriesCollectionMapper class.
/// </summary>
public class SeriesCollectionMapper
{
/// <summary>
/// Initializes a new instance of the <see cref="SeriesCollectionMapper"/> class.
/// </summary>
public SeriesCollectionMapper()
{ }
void MapObject(SeriesCollection seriesCollection, DocumentObjectModel.Shapes.Charts.SeriesCollection domSeriesCollection)
{
foreach (DocumentObjectModel.Shapes.Charts.Series domSeries in domSeriesCollection)
{
Series series = seriesCollection.AddSeries();
series.Name = domSeries.Name;
if (domSeries.IsNull("ChartType"))
{
DocumentObjectModel.Shapes.Charts.Chart chart = (DocumentObjectModel.Shapes.Charts.Chart)DocumentObjectModel.DocumentRelations.GetParentOfType(domSeries, typeof(DocumentObjectModel.Shapes.Charts.Chart));
series.ChartType = (ChartType)chart.Type;
}
else
series.ChartType = (ChartType)domSeries.ChartType;
if (!domSeries.IsNull("DataLabel"))
DataLabelMapper.Map(series.DataLabel, domSeries.DataLabel);
if (!domSeries.IsNull("LineFormat"))
LineFormatMapper.Map(series.LineFormat, domSeries.LineFormat);
if (!domSeries.IsNull("FillFormat"))
FillFormatMapper.Map(series.FillFormat, domSeries.FillFormat);
series.HasDataLabel = domSeries.HasDataLabel;
if (domSeries.MarkerBackgroundColor.IsEmpty)
series.MarkerBackgroundColor = XColor.Empty;
else
{
#if noCMYK
series.MarkerBackgroundColor = XColor.FromArgb(domSeries.MarkerBackgroundColor.Argb);
#else
series.MarkerBackgroundColor =
ColorHelper.ToXColor(domSeries.MarkerBackgroundColor, domSeries.Document.UseCmykColor);
#endif
}
if (domSeries.MarkerForegroundColor.IsEmpty)
series.MarkerForegroundColor = XColor.Empty;
else
{
#if noCMYK
series.MarkerForegroundColor = XColor.FromArgb(domSeries.MarkerForegroundColor.Argb);
#else
series.MarkerForegroundColor =
ColorHelper.ToXColor(domSeries.MarkerForegroundColor, domSeries.Document.UseCmykColor);
#endif
}
series.MarkerSize = domSeries.MarkerSize.Point;
if (!domSeries.IsNull("MarkerStyle"))
series.MarkerStyle = (MarkerStyle)domSeries.MarkerStyle;
foreach (DocumentObjectModel.Shapes.Charts.Point domPoint in domSeries.Elements)
{
if (domPoint != null)
{
Point point = series.Add(domPoint.Value);
FillFormatMapper.Map(point.FillFormat, domPoint.FillFormat);
LineFormatMapper.Map(point.LineFormat, domPoint.LineFormat);
}
else
series.Add(double.NaN);
}
}
}
public static void Map(SeriesCollection seriesCollection, DocumentObjectModel.Shapes.Charts.SeriesCollection domSeriesCollection)
{
SeriesCollectionMapper mapper = new SeriesCollectionMapper();
mapper.MapObject(seriesCollection, domSeriesCollection);
}
}
}

View File

@@ -0,0 +1,68 @@
#region MigraDoc - Creating Documents on the Fly
//
// Authors:
// David Stephensen
//
// Copyright (c) 2001-2017 empira Software GmbH, Cologne Area (Germany)
//
// http://www.pdfsharp.com
// http://www.migradoc.com
// http://sourceforge.net/projects/pdfsharp
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the "Software"),
// to deal in the Software without restriction, including without limitation
// the rights to use, copy, modify, merge, publish, distribute, sublicense,
// and/or sell copies of the Software, and to permit persons to whom the
// Software is furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included
// in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
#endregion
using PdfSharp.Charting;
namespace MigraDoc.Rendering.ChartMapper
{
/// <summary>
/// The XValuesMapper class.
/// </summary>
public class XValuesMapper
{
/// <summary>
/// Initializes a new instance of the <see cref="XValuesMapper"/> class.
/// </summary>
public XValuesMapper()
{ }
void MapObject(XValues xValues, DocumentObjectModel.Shapes.Charts.XValues domXValues)
{
foreach (DocumentObjectModel.Shapes.Charts.XSeries domXSeries in domXValues)
{
XSeries xSeries = xValues.AddXSeries();
DocumentObjectModel.Shapes.Charts.XSeriesElements domXSeriesElements = domXSeries.GetValue("XSeriesElements") as DocumentObjectModel.Shapes.Charts.XSeriesElements;
foreach (DocumentObjectModel.Shapes.Charts.XValue domXValue in domXSeriesElements)
{
if (domXValue == null)
xSeries.AddBlank();
else
xSeries.Add(domXValue.GetValue("Value").ToString());
}
}
}
public static void Map(XValues xValues, DocumentObjectModel.Shapes.Charts.XValues domXValues)
{
XValuesMapper mapper = new XValuesMapper();
mapper.MapObject(xValues, domXValues);
}
}
}