From 9c431afbdabd4f143573ea0e1001af1fbf021d23 Mon Sep 17 00:00:00 2001 From: Simon Boucher Date: Tue, 22 Mar 2022 11:43:41 -0400 Subject: [PATCH] V2.1.0 Released --- Xceed.Document.NET/AssemblyVersionInfo.cs | 2 +- Xceed.Document.NET/Properties/AssemblyInfo.cs | 1 - .../Resources/default_styles.xml.gz | Bin 2544 -> 2538 bytes Xceed.Document.NET/Src/Charts/Axis.cs | 142 +- Xceed.Document.NET/Src/Charts/BarChart.cs | 45 +- Xceed.Document.NET/Src/Charts/CategoryAxis.cs | 58 + Xceed.Document.NET/Src/Charts/Chart.cs | 442 +++--- Xceed.Document.NET/Src/Charts/LineChart.cs | 49 +- Xceed.Document.NET/Src/Charts/PieChart.cs | 17 +- Xceed.Document.NET/Src/Charts/Series.cs | 280 ++++ Xceed.Document.NET/Src/Charts/ValueAxis.cs | 67 + Xceed.Document.NET/Src/Container.cs | 217 ++- Xceed.Document.NET/Src/Document.cs | 1355 ++++++++++------- Xceed.Document.NET/Src/Footer.cs | 14 +- Xceed.Document.NET/Src/Formatting.cs | 25 +- Xceed.Document.NET/Src/Header.cs | 14 +- Xceed.Document.NET/Src/HelperFunctions.cs | 294 +++- Xceed.Document.NET/Src/Hyperlink.cs | 4 + Xceed.Document.NET/Src/PackagePartStream.cs | 43 +- Xceed.Document.NET/Src/PageNumberType.cs | 140 ++ Xceed.Document.NET/Src/Paragraph.cs | 325 ++-- Xceed.Document.NET/Src/Picture.cs | 26 + Xceed.Document.NET/Src/Section.cs | 149 +- Xceed.Document.NET/Src/ShadingPattern.cs | 89 ++ Xceed.Document.NET/Src/Table.cs | 305 +++- Xceed.Document.NET/Src/_BaseClasses.cs | 20 +- Xceed.Document.NET/Src/_Enumerations.cs | 121 ++ Xceed.Document.NET/Xceed.Document.NET.csproj | 5 + Xceed.Words.NET.Examples/Program.cs | 3 + .../Properties/AssemblyInfo.cs | 4 +- .../Samples/Bookmark/BookmarkSample.cs | 6 +- .../Bookmark/Output/InsertBookmarks.docx | Bin 5863 -> 5859 bytes .../Bookmark/Output/ReplaceBookmarkText.docx | Bin 13280 -> 13297 bytes .../Samples/Chart/ChartSample.cs | 35 +- .../Samples/Chart/Output/3DChart.docx | Bin 6995 -> 7007 bytes .../Samples/Chart/Output/BarChart.docx | Bin 7129 -> 7141 bytes .../Samples/Chart/Output/LineChart.docx | Bin 7107 -> 7118 bytes .../Samples/Chart/Output/PieChart.docx | Bin 6678 -> 6691 bytes .../Samples/Document/DocumentSample.cs | 21 +- .../Document/Output/AddCustomProperties.docx | Bin 6580 -> 6570 bytes .../Document/Output/AppendDocument.docx | Bin 11674 -> 19102 bytes .../Document/Output/ApplyTemplate.docx | Bin 22334 -> 22334 bytes .../Output/LoadDocumentWithFilename.docx | Bin 11642 -> 14806 bytes .../Output/LoadDocumentWithStream.docx | Bin 11641 -> 14804 bytes .../Document/Output/LoadDocumentWithUrl.docx | Bin 1309032 -> 1309032 bytes .../Samples/Document/Output/ReplacedText.docx | Bin 12168 -> 12168 bytes .../Output/ReplacedTextWithObjects.docx | Bin 31145 -> 31138 bytes .../Samples/Document/Resources/First.docx | Bin 11493 -> 14573 bytes .../Samples/Document/Resources/Second.docx | Bin 11646 -> 16951 bytes .../Equation/Output/EquationSample.docx | Bin 5928 -> 5922 bytes .../Output/AddCustomFootnotes.docx | Bin 6803 -> 6797 bytes .../FootnoteEndnote/Output/AddEndnotes.docx | Bin 11198 -> 11191 bytes .../FootnoteEndnote/Output/AddFootnotes.docx | Bin 7080 -> 7076 bytes .../HeaderFooter/Output/HeadersFooters.docx | Bin 9663 -> 9498 bytes .../Samples/Hyperlink/Output/Hyperlinks.docx | Bin 6136 -> 6129 bytes .../Samples/Image/ImageSample.cs | 13 +- .../Samples/Image/Output/AddPicture.docx | Bin 23204 -> 23195 bytes .../Samples/Image/Output/CopyPicture.docx | Bin 14622 -> 14611 bytes .../Samples/Image/Output/ModifyImage.docx | Bin 14925 -> 14925 bytes .../Line/Output/InsertHorizontalLine.docx | Bin 5922 -> 5915 bytes .../Samples/List/Output/AddList.docx | Bin 6619 -> 6616 bytes .../Samples/Margin/Output/Indentation.docx | Bin 5828 -> 5820 bytes .../Samples/Margin/Output/Margins.docx | Bin 5760 -> 5755 bytes .../Samples/Margin/Output/SetDirection.docx | Bin 5764 -> 5758 bytes .../Miscellaneous/MiscellaneousSample.cs | 4 +- .../Miscellaneous/Output/CompanyReport.docx | Bin 62126 -> 61799 bytes .../Miscellaneous/Output/CreateInvoice.docx | Bin 69388 -> 69376 bytes .../Miscellaneous/Output/CreateRecipe.docx | Bin 97033 -> 97026 bytes .../Output/MailMerge/Acceptance_153581.docx | Bin 23868 -> 23868 bytes .../Output/MailMerge/Acceptance_155285.docx | Bin 23866 -> 23866 bytes .../Output/MailMerge/Acceptance_159632.docx | Bin 23864 -> 23864 bytes .../Output/MailMerge/Acceptance_161002.docx | Bin 23866 -> 23866 bytes .../Output/MailMerge/Acceptance_162558.docx | Bin 23864 -> 23864 bytes .../Output/AddObjectsFromOtherDocument.docx | Bin 21302 -> 21295 bytes .../ForceMultiParagraphsOnSinglePage.docx | Bin 5982 -> 5975 bytes .../Output/ForceParagraphOnSinglePage.docx | Bin 5995 -> 5989 bytes .../Samples/Paragraph/Output/Heading.docx | Bin 5801 -> 5795 bytes .../Output/SimpleFormattedParagraphs.docx | Bin 6268 -> 6341 bytes .../Paragraph/Output/StyleParagraphs.docx | Bin 12778 -> 12778 bytes .../Samples/Paragraph/Output/TextActions.docx | Bin 6069 -> 6063 bytes .../Samples/Paragraph/ParagraphSample.cs | 55 +- .../Samples/Parallel/Output/OutputDoc1.docx | Bin 22043 -> 22038 bytes .../Samples/Parallel/Output/OutputDoc2.docx | Bin 21998 -> 21995 bytes .../Samples/Parallel/Output/OutputDoc3.docx | Bin 21983 -> 21982 bytes .../Output/AddPasswordProtection.docx | Bin 5988 -> 5978 bytes .../Protection/Output/AddProtection.docx | Bin 5850 -> 5844 bytes .../Output/UpdatedPasswordProtected.docx | Bin 5798 -> 5799 bytes .../Section/Output/InsertSections.docx | Bin 11080 -> 11319 bytes .../Section/Output/SetPageOrientations.docx | Bin 5806 -> 5798 bytes .../Samples/Section/SectionSample.cs | 28 +- .../Samples/Table/Output/ColumnsWidth.docx | Bin 6221 -> 6221 bytes .../Table/Output/CreateTableFromTemplate.docx | Bin 13879 -> 13878 bytes .../Table/Output/InsertRowAndImageTable.docx | Bin 8837 -> 8840 bytes .../Samples/Table/Output/MergeCells.docx | Bin 6058 -> 6058 bytes .../Samples/Table/Output/ShadingPattern.docx | Bin 0 -> 6179 bytes .../Table/Output/TextDirectionTable.docx | Bin 6429 -> 6430 bytes .../Samples/Table/TableSample.cs | 91 ++ .../Output/InsertTableOfContent.docx | Bin 6786 -> 6779 bytes .../InsertTableOfContentWithReference.docx | Bin 6762 -> 6757 bytes .../Xceed.Words.NET.Examples.csproj | 4 +- Xceed.Words.NET/DocX.cs | 11 +- 101 files changed, 3303 insertions(+), 1221 deletions(-) create mode 100644 Xceed.Document.NET/Src/Charts/CategoryAxis.cs create mode 100644 Xceed.Document.NET/Src/Charts/Series.cs create mode 100644 Xceed.Document.NET/Src/Charts/ValueAxis.cs create mode 100644 Xceed.Document.NET/Src/PageNumberType.cs create mode 100644 Xceed.Document.NET/Src/ShadingPattern.cs create mode 100644 Xceed.Words.NET.Examples/Samples/Table/Output/ShadingPattern.docx diff --git a/Xceed.Document.NET/AssemblyVersionInfo.cs b/Xceed.Document.NET/AssemblyVersionInfo.cs index 2913e77d..16b876eb 100644 --- a/Xceed.Document.NET/AssemblyVersionInfo.cs +++ b/Xceed.Document.NET/AssemblyVersionInfo.cs @@ -21,7 +21,7 @@ COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at internal static class _XceedVersionInfo { [System.Diagnostics.CodeAnalysis.SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )] - public const string BaseVersion = "2.0"; + public const string BaseVersion = "2.1"; [System.Diagnostics.CodeAnalysis.SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )] public const string Version = BaseVersion + ".0.0"; diff --git a/Xceed.Document.NET/Properties/AssemblyInfo.cs b/Xceed.Document.NET/Properties/AssemblyInfo.cs index 747d5027..4e8f97bf 100644 --- a/Xceed.Document.NET/Properties/AssemblyInfo.cs +++ b/Xceed.Document.NET/Properties/AssemblyInfo.cs @@ -14,7 +14,6 @@ COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at *************************************************************************************/ -using System; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; diff --git a/Xceed.Document.NET/Resources/default_styles.xml.gz b/Xceed.Document.NET/Resources/default_styles.xml.gz index 4502bac57114efcf8268e0106b847d847f9153e1..c77b4b40af7e76898dcb3ee5f6d40b114a387f87 100644 GIT binary patch literal 2538 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 diff --git a/Xceed.Document.NET/Src/Charts/Axis.cs b/Xceed.Document.NET/Src/Charts/Axis.cs index 726216fa..85709f54 100644 --- a/Xceed.Document.NET/Src/Charts/Axis.cs +++ b/Xceed.Document.NET/Src/Charts/Axis.cs @@ -16,6 +16,8 @@ COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at using System; using System.ComponentModel; +using System.Drawing; +using System.Globalization; using System.Linq; using System.Xml; using System.Xml.Linq; @@ -28,13 +30,11 @@ namespace Xceed.Document.NET /// public abstract class Axis { - #region Private properties #endregion - #region Public Properties /// @@ -75,6 +75,33 @@ public bool IsVisible + + + + + + + + + + + + + + + + + + + + + + + + + + + #endregion @@ -116,70 +143,55 @@ public Axis( String id ) #endregion } - /// - /// Represents Category Axes - /// - public class CategoryAxis : Axis - { - internal CategoryAxis( XElement xml ) - : base( xml ) - { - } - public CategoryAxis( String id ) - : base( id ) - { - Xml = XElement.Parse( String.Format( - @" - - - - - - - - - - - - - - - - ", id ) ); - } - } - /// - /// Represents Values Axes - /// - public class ValueAxis : Axis - { - internal ValueAxis( XElement xml ) - : base( xml ) - { - } - public ValueAxis( String id ) - : base( id ) - { - Xml = XElement.Parse( String.Format( - @" - - - - - - - - - - - - - - - ", id ) ); - } - } + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + } diff --git a/Xceed.Document.NET/Src/Charts/BarChart.cs b/Xceed.Document.NET/Src/Charts/BarChart.cs index 6ae7b8b2..5043fd24 100644 --- a/Xceed.Document.NET/Src/Charts/BarChart.cs +++ b/Xceed.Document.NET/Src/Charts/BarChart.cs @@ -17,6 +17,7 @@ COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at using System; using System.Globalization; using System.IO.Packaging; +using System.Linq; using System.Xml.Linq; namespace Xceed.Document.NET @@ -36,13 +37,17 @@ public BarDirection BarDirection { get { + var chartXml = GetChartTypeXElement(); + return XElementHelpers.GetValueToEnum( - ChartXml.Element( XName.Get( "barDir", Document.c.NamespaceName ) ) ); + chartXml.Element( XName.Get( "barDir", Document.c.NamespaceName ) ) ); } set { + var chartXml = GetChartTypeXElement(); + XElementHelpers.SetValueFromEnum( - ChartXml.Element( XName.Get( "barDir", Document.c.NamespaceName ) ), value ); + chartXml.Element( XName.Get( "barDir", Document.c.NamespaceName ) ), value ); } } @@ -53,16 +58,20 @@ public BarGrouping BarGrouping { get { + var chartXml = GetChartTypeXElement(); + return XElementHelpers.GetValueToEnum( - ChartXml.Element( XName.Get( "grouping", Document.c.NamespaceName ) ) ); + chartXml.Element( XName.Get( "grouping", Document.c.NamespaceName ) ) ); } set { + var chartXml = GetChartTypeXElement(); + XElementHelpers.SetValueFromEnum( - ChartXml.Element( XName.Get( "grouping", Document.c.NamespaceName ) ), value ); + chartXml.Element( XName.Get( "grouping", Document.c.NamespaceName ) ), value ); - var overlapVal = ( (value == BarGrouping.Stacked) || ( value == BarGrouping.PercentStacked ) ) ? "100" : "0"; - var overlap = ChartXml.Element( XName.Get( "overlap", Document.c.NamespaceName ) ); + var overlapVal = ( ( value == BarGrouping.Stacked ) || ( value == BarGrouping.PercentStacked ) ) ? "100" : "0"; + var overlap = chartXml.Element( XName.Get( "overlap", Document.c.NamespaceName ) ); if( overlap != null ) { overlap.Attribute( XName.Get( "val" ) ).Value = overlapVal; @@ -77,31 +86,35 @@ public Int32 GapWidth { get { + var chartXml = GetChartTypeXElement(); + return Convert.ToInt32( - ChartXml.Element( XName.Get( "gapWidth", Document.c.NamespaceName ) ).Attribute( XName.Get( "val" ) ).Value ); + chartXml.Element( XName.Get( "gapWidth", Document.c.NamespaceName ) ).Attribute( XName.Get( "val" ) ).Value ); } set { + var chartXml = GetChartTypeXElement(); + if( ( value < 1 ) || ( value > 500 ) ) throw new ArgumentException( "GapWidth lay between 0% and 500%!" ); - ChartXml.Element( XName.Get( "gapWidth", Document.c.NamespaceName ) ).Attribute( XName.Get( "val" ) ).Value = value.ToString( CultureInfo.InvariantCulture ); + chartXml.Element( XName.Get( "gapWidth", Document.c.NamespaceName ) ).Attribute( XName.Get( "val" ) ).Value = value.ToString( CultureInfo.InvariantCulture ); } } #endregion #region Constructors - + [Obsolete("BarChart() is obsolete. Use Document.AddChart() instead.")] public BarChart() { } -#endregion + #endregion #region Overrides - protected override XElement CreateChartXml() + protected override XElement CreateExternalChartXml() { return XElement.Parse( @" @@ -112,6 +125,16 @@ protected override XElement CreateChartXml() " ); } + protected override XElement GetChartTypeXElement() + { + if( this.ExternalXml == null ) + return null; + + return this.ExternalXml.Descendants().Where( chartElement => ( chartElement.Name.LocalName == "barChart" ) + || ( chartElement.Name.LocalName == "bar3DChart" ) ).SingleOrDefault(); + + } + #endregion } diff --git a/Xceed.Document.NET/Src/Charts/CategoryAxis.cs b/Xceed.Document.NET/Src/Charts/CategoryAxis.cs new file mode 100644 index 00000000..ec0bd112 --- /dev/null +++ b/Xceed.Document.NET/Src/Charts/CategoryAxis.cs @@ -0,0 +1,58 @@ +/*************************************************************************************** + + DocX – DocX is the community edition of Xceed Words for .NET + + Copyright (C) 2009-2020 Xceed Software Inc. + + This program is provided to you under the terms of the XCEED SOFTWARE, INC. + COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at + https://github.com/xceedsoftware/DocX/blob/master/license.md + + For more features and fast professional support, + pick up Xceed Words for .NET at https://xceed.com/xceed-words-for-net/ + + *************************************************************************************/ + + +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Xml.Linq; + +namespace Xceed.Document.NET +{ + /// + /// Represents Category Axis + /// + public class CategoryAxis : Axis + { + internal CategoryAxis(XElement xml) + : base(xml) + { + } + + public CategoryAxis(String id) + : base(id) + { + Xml = XElement.Parse(String.Format( + @" + + + + + + + + + + + + + + + + ", id)); + } + } +} diff --git a/Xceed.Document.NET/Src/Charts/Chart.cs b/Xceed.Document.NET/Src/Charts/Chart.cs index c9ce3f52..393540c3 100644 --- a/Xceed.Document.NET/Src/Charts/Chart.cs +++ b/Xceed.Document.NET/Src/Charts/Chart.cs @@ -35,7 +35,9 @@ public abstract class Chart private Paragraph _parentParagraph; private PackageRelationship _packageRelationship; + private List _series; + private XDocument _chartDocument; #endregion @@ -44,7 +46,16 @@ public abstract class Chart /// /// The xml representation of this chart /// - public XDocument Xml + + public XElement ExternalXml + { + get; private set; + } + + /// + /// The xml representation of this chart contained in the document paragraph with wrappings and relationId + /// + public XElement Xml { get; private set; } @@ -56,13 +67,19 @@ public List Series { get { - var series = new List(); - var ser = ChartXml.Elements( XName.Get( "ser", Document.c.NamespaceName ) ); - foreach( var element in ser ) + if(_series== null) { - series.Add( new Series( element ) ); + _series = new List(); + var chart = GetChartTypeXElement(); + var ser = chart.Elements(XName.Get("ser", Document.c.NamespaceName)); + foreach (var element in ser) + { + var serie = new Series(element); + serie.PackagePart = this.PackagePart; + _series.Add(serie); + } } - return series; + return _series; } } @@ -93,7 +110,7 @@ public CategoryAxis CategoryAxis { get { - var catAxXML = ChartRootXml.Descendants( XName.Get( "catAx", Document.c.NamespaceName ) ).SingleOrDefault(); + var catAxXML = this.ExternalXml.Descendants( XName.Get( "catAx", Document.c.NamespaceName ) ).SingleOrDefault(); return ( catAxXML != null ) ? new CategoryAxis( catAxXML ) : null; } @@ -106,7 +123,7 @@ public ValueAxis ValueAxis { get { - var valAxXML = ChartRootXml.Descendants( XName.Get( "valAx", Document.c.NamespaceName ) ).SingleOrDefault(); + var valAxXML = this.ExternalXml.Descendants( XName.Get( "valAx", Document.c.NamespaceName ) ).SingleOrDefault(); return ( valAxXML != null ) ? new ValueAxis( valAxXML ) : null; } @@ -130,24 +147,29 @@ public Boolean View3D { get { - return ChartXml.Name.LocalName.Contains( "3D" ); + var chartXml = GetChartTypeXElement(); + return chartXml != null && chartXml.Name.LocalName.Contains( "3D" ); } set { - if( value ) + var chartXml = GetChartTypeXElement(); + if( chartXml != null ) { - if( !View3D ) + if( value ) { - String currentName = ChartXml.Name.LocalName; - ChartXml.Name = XName.Get( currentName.Replace( "Chart", "3DChart" ), Document.c.NamespaceName ); + if( !View3D ) + { + String currentName = chartXml.Name.LocalName; + chartXml.Name = XName.Get( currentName.Replace( "Chart", "3DChart" ), Document.c.NamespaceName ); + } } - } - else - { - if( View3D ) + else { - String currentName = ChartXml.Name.LocalName; - ChartXml.Name = XName.Get( currentName.Replace( "3DChart", "Chart" ), Document.c.NamespaceName ); + if( View3D ) + { + String currentName = chartXml.Name.LocalName; + chartXml.Name = XName.Get( currentName.Replace( "3DChart", "Chart" ), Document.c.NamespaceName ); + } } } } @@ -160,31 +182,68 @@ public DisplayBlanksAs DisplayBlanksAs { get { + var chart = this.ExternalXml.Element( XName.Get( "chart" ) ); return XElementHelpers.GetValueToEnum( - ChartRootXml.Element( XName.Get( "dispBlanksAs", Document.c.NamespaceName ) ) ); + chart.Element( XName.Get( "dispBlanksAs", Document.c.NamespaceName ) ) ); } set { + var chart = this.ExternalXml.Element( XName.Get( "chart" ) ); + XElementHelpers.SetValueFromEnum( - ChartRootXml.Element( XName.Get( "dispBlanksAs", Document.c.NamespaceName ) ), value ); + chart.Element( XName.Get( "dispBlanksAs", Document.c.NamespaceName ) ), value ); } } #endregion - #region Protected Properties - - protected internal XElement ChartXml + #region Internal Properties + internal PackagePart PackagePart { - get; private set; + get; set; } - protected internal XElement ChartRootXml + + internal PackageRelationship RelationPackage { - get; private set; + get; set; } #endregion + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + #region Constructors /// @@ -194,7 +253,7 @@ public Chart() { // Create global xml - this.Xml = XDocument.Parse + this.ExternalXml = XElement.Parse ( @" @@ -206,13 +265,31 @@ public Chart() " ); + + // Create internal chart Xml + this.Xml = XElement.Parse + ( @" + + + + + + + + + + + + + " ); + // Create a real chart xml in an inheritor - this.ChartXml = this.CreateChartXml(); + var chartXml = this.CreateExternalChartXml(); // Create result plotarea element var plotAreaXml = new XElement( XName.Get( "plotArea", Document.c.NamespaceName ), new XElement( XName.Get( "layout", Document.c.NamespaceName ) ), - this.ChartXml ); + chartXml ); // Set labels var dLblsXml = XElement.Parse( @@ -225,7 +302,7 @@ public Chart() " ); - this.ChartXml.Add( dLblsXml ); + chartXml.Add( dLblsXml ); // if axes exists, create their if( this.IsAxisExist ) @@ -236,7 +313,7 @@ public Chart() var axIDcatXml = XElement.Parse( String.Format( @"", categoryAxis.Id ) ); var axIDvalXml = XElement.Parse( String.Format( @"", valueAxis.Id ) ); - var gapWidth = this.ChartXml.Element( XName.Get( "gapWidth", Document.c.NamespaceName ) ); + var gapWidth = chartXml.Element( XName.Get( "gapWidth", Document.c.NamespaceName ) ); if( gapWidth != null ) { gapWidth.AddAfterSelf( axIDvalXml ); @@ -244,16 +321,28 @@ public Chart() } else { - this.ChartXml.Add( axIDcatXml ); - this.ChartXml.Add( axIDvalXml ); + chartXml.Add( axIDcatXml ); + chartXml.Add( axIDvalXml ); } plotAreaXml.Add( categoryAxis.Xml ); plotAreaXml.Add( valueAxis.Xml ); } - this.ChartRootXml = this.Xml.Root.Element( XName.Get( "chart", Document.c.NamespaceName ) ); - this.ChartRootXml.Element( XName.Get( "autoTitleDeleted", Document.c.NamespaceName ) ).AddAfterSelf( plotAreaXml ); + var chartRootXml = this.ExternalXml.Element( XName.Get( "chart", Document.c.NamespaceName ) ); + chartRootXml.Element( XName.Get( "autoTitleDeleted", Document.c.NamespaceName ) ).AddAfterSelf( plotAreaXml ); + + + } + internal Chart( Paragraph parentParagraph, PackageRelationship packageRelationship, PackagePart packagePart, XDocument chartDocument ) + : this() + { + _parentParagraph = parentParagraph; + _packageRelationship = packageRelationship; + this.PackagePart = packagePart; + _chartDocument = chartDocument; + + } @@ -266,16 +355,23 @@ public Chart() /// public virtual void AddSeries( Series series ) { - var seriesCount = this.ChartXml.Elements( XName.Get( "ser", Document.c.NamespaceName ) ).Count(); - if( seriesCount >= this.MaxSeriesCount ) - throw new InvalidOperationException( "Maximum series for this chart is" + this.MaxSeriesCount.ToString() + "and have exceeded!" ); - - //To work in Words, all series need an Index and Order. - var value = seriesCount + 1; - var content = new XAttribute( XName.Get( "val" ), value.ToString() ); - series.Xml.AddFirst( new XElement( XName.Get( "order", Document.c.NamespaceName ), content ) ); - series.Xml.AddFirst( new XElement( XName.Get( "idx", Document.c.NamespaceName ), content ) ); - this.ChartXml.Add( series.Xml ); + Series.Add(series); + series.PackagePart = this.PackagePart; + + var chart = GetChartTypeXElement(); + if( chart != null ) + { + var seriesCount = chart.Elements( XName.Get( "ser", Document.c.NamespaceName ) ).Count(); + if( seriesCount >= this.MaxSeriesCount ) + throw new InvalidOperationException( "Maximum series for this chart is" + this.MaxSeriesCount.ToString() + "and have exceeded!" ); + + //To work in Words, all series need an Index and Order. + var value = seriesCount + 1; + var content = new XAttribute( XName.Get( "val" ), value.ToString() ); + series.Xml.AddFirst( new XElement( XName.Get( "order", Document.c.NamespaceName ), content ) ); + series.Xml.AddFirst( new XElement( XName.Get( "idx", Document.c.NamespaceName ), content ) ); + chart.Add( series.Xml ); + } } /// @@ -296,7 +392,11 @@ public void AddLegend( ChartLegendPosition position, Boolean overlay ) this.RemoveLegend(); } this.Legend = new ChartLegend( position, overlay ); - this.ChartRootXml.Element( XName.Get( "plotArea", Document.c.NamespaceName ) ).AddAfterSelf( Legend.Xml ); + var chart = this.ExternalXml.Element( XName.Get( "chart", Document.c.NamespaceName ) ); + if( chart != null ) + { + chart.Element( XName.Get( "plotArea", Document.c.NamespaceName ) ).AddAfterSelf( Legend.Xml ); + } } /// @@ -324,11 +424,11 @@ public void Remove() } // Remove the Xml from document. - var parentParagrahChart = _parentParagraph.Xml.Descendants( XName.Get( "chart", Document.c.NamespaceName ) ) + var parentParagraphChart = _parentParagraph.Xml.Descendants( XName.Get( "chart", Document.c.NamespaceName ) ) .FirstOrDefault( c => c.GetAttribute( XName.Get( "id", "http://schemas.openxmlformats.org/officeDocument/2006/relationships" ) ) == _packageRelationship.Id ); - if( parentParagrahChart != null ) + if( parentParagraphChart != null ) { - var parentDrawing = parentParagrahChart.Ancestors( XName.Get( "drawing", Document.w.NamespaceName ) ).FirstOrDefault(); + var parentDrawing = parentParagraphChart.Ancestors( XName.Get( "drawing", Document.w.NamespaceName ) ).FirstOrDefault(); if( parentDrawing != null ) { parentDrawing.Remove(); @@ -338,245 +438,75 @@ public void Remove() - #endregion #region Protected Methods /// - /// An abstract method which creates the current chart xml + /// An abstract method which creates the current external chart xml /// - protected abstract XElement CreateChartXml(); - - #endregion - - #region Internal Method - - - - - - #endregion - } - - /// - /// Represents a chart series - /// - public class Series - { - #region Private Members - - private XElement _strCache; - private XElement _numCache; - - #endregion - - #region Public Properties - - - - - public Color Color - { - get - { - var spPr = this.Xml.Element( XName.Get( "spPr", Document.c.NamespaceName ) ); - if( spPr == null ) - return Color.Transparent; - - var srgbClr = spPr.Descendants( XName.Get( "srgbClr", Document.a.NamespaceName ) ).FirstOrDefault(); - if( srgbClr != null ) - { - var val = srgbClr.Attribute( XName.Get( "val" ) ); - if( val != null ) - { - var rgb = Color.FromArgb( Int32.Parse( val.Value, NumberStyles.HexNumber ) ); - return Color.FromArgb( 255, rgb ); - } - } - - return Color.Transparent; - } - set - { - var spPrElement = this.Xml.Element( XName.Get( "spPr", Document.c.NamespaceName ) ); - string widthValue = string.Empty; - - if( spPrElement != null ) - { - var ln = spPrElement.Element( XName.Get( "ln", Document.a.NamespaceName ) ); - if( ln != null ) - { - var val = ln.Attribute( XName.Get( "w" ) ); - if( val != null ) - { - widthValue = val.Value; - } - } - spPrElement.Remove(); - } - - var colorData = new XElement( XName.Get( "solidFill", Document.a.NamespaceName ), - new XElement( XName.Get( "srgbClr", Document.a.NamespaceName ), new XAttribute( XName.Get( "val" ), value.ToHex() ) ) ); - - // When the chart containing this series is a lineChart, the line will be colored, else the shape will be colored. - if( string.IsNullOrEmpty( widthValue ) ) - { - spPrElement = ( ( this.Xml.Parent != null ) && ( this.Xml.Parent.Name != null ) && ( this.Xml.Parent.Name.LocalName == "lineChart" ) ) - ? new XElement( XName.Get( "spPr", Document.c.NamespaceName ), - new XElement( XName.Get( "ln", Document.a.NamespaceName ), colorData ) ) - : new XElement( XName.Get( "spPr", Document.c.NamespaceName ), colorData ); - } - else - { - spPrElement = new XElement( XName.Get( "spPr", Document.c.NamespaceName ), - new XElement( XName.Get( "ln", Document.a.NamespaceName ), - new XAttribute( XName.Get( "w" ), widthValue ), colorData ) ); - } - - this.Xml.Element( XName.Get( "tx", Document.c.NamespaceName ) ).AddAfterSelf( spPrElement ); - } - } - - - - - - - - - - - - - - - #endregion - - #region Internal Properties + protected abstract XElement CreateExternalChartXml(); /// - /// Series xml element + /// An abstract method to get the external chart xml /// - internal XElement Xml - { - get; private set; - } + protected abstract XElement GetChartTypeXElement(); #endregion - #region Constructors + #region Internal Method - internal Series( XElement xml ) + static internal IEnumerable GetChartsXml( XElement xml ) { - this.Xml = xml; + if( xml == null ) + return null; - var cat = xml.Element( XName.Get( "cat", Document.c.NamespaceName ) ); - if( cat != null ) - { - _strCache = cat.Descendants( XName.Get( "strCache", Document.c.NamespaceName ) ).FirstOrDefault(); - if( _strCache == null ) - { - _strCache = cat.Descendants( XName.Get( "strLit", Document.c.NamespaceName ) ).FirstOrDefault(); - } - } + return xml.Elements().Where( chartElement => ( chartElement.Name.LocalName == "barChart" ) + || ( chartElement.Name.LocalName == "bar3DChart" ) + || ( chartElement.Name.LocalName == "lineChart" ) + || ( chartElement.Name.LocalName == "line3DChart" ) + || ( chartElement.Name.LocalName == "pieChart" ) + || ( chartElement.Name.LocalName == "pie3DChart" ) ); - var val = xml.Element( XName.Get( "val", Document.c.NamespaceName ) ); - if( val != null ) - { - _numCache = val.Descendants( XName.Get( "numCache", Document.c.NamespaceName ) ).FirstOrDefault(); - if( _numCache == null ) - { - _numCache = val.Descendants( XName.Get( "numLit", Document.c.NamespaceName ) ).FirstOrDefault(); - } - } } - public Series( String name ) + internal void SetXml( XElement externalChartXml, XElement internalChartXml ) { - _strCache = new XElement( XName.Get( "strCache", Document.c.NamespaceName ) ); - _numCache = new XElement( XName.Get( "numCache", Document.c.NamespaceName ) ); - - this.Xml = new XElement( XName.Get( "ser", Document.c.NamespaceName ), - new XElement( XName.Get( "tx", Document.c.NamespaceName ), - new XElement( XName.Get( "strRef", Document.c.NamespaceName ), - new XElement( XName.Get( "f", Document.c.NamespaceName ), "" ), - new XElement( XName.Get( "strCache", Document.c.NamespaceName ), - new XElement( XName.Get( "pt", Document.c.NamespaceName ), - new XAttribute( XName.Get( "idx" ), "0" ), - new XElement( XName.Get( "v", Document.c.NamespaceName ), name ) ) ) ) ), - new XElement( XName.Get( "invertIfNegative", Document.c.NamespaceName ), "0" ), - new XElement( XName.Get( "cat", Document.c.NamespaceName ), - new XElement( XName.Get( "strRef", Document.c.NamespaceName ), - new XElement( XName.Get( "f", Document.c.NamespaceName ), "" ), - _strCache ) ), - new XElement( XName.Get( "val", Document.c.NamespaceName ), - new XElement( XName.Get( "numRef", Document.c.NamespaceName ), - new XElement( XName.Get( "f", Document.c.NamespaceName ), "" ), - _numCache ) ) - ); + this.ExternalXml = externalChartXml; + this.Xml = internalChartXml; } - #endregion - - #region Public Methods - - public void Bind( ICollection list, String categoryPropertyName, String valuePropertyName ) + internal void SetInternalChartSettings( string relId, float chartWidth, float chartHeight ) { - var ptCount = new XElement( XName.Get( "ptCount", Document.c.NamespaceName ), new XAttribute( XName.Get( "val" ), list.Count ) ); - var formatCode = new XElement( XName.Get( "formatCode", Document.c.NamespaceName ), "General" ); + if( string.IsNullOrEmpty( relId ) ) + throw new ArgumentNullException( "relId" ); - _strCache.RemoveAll(); - _numCache.RemoveAll(); + var width = chartWidth * Picture.EmusInPixel; + var height = chartHeight * Picture.EmusInPixel; - _strCache.Add( ptCount ); - _numCache.Add( formatCode ); - _numCache.Add( ptCount ); - - Int32 index = 0; - XElement pt; - foreach( var item in list ) + var extent = this.Xml.Descendants( XName.Get( "extent", Document.wp.NamespaceName ) ).FirstOrDefault(); + if( extent != null ) { - pt = new XElement( XName.Get( "pt", Document.c.NamespaceName ), new XAttribute( XName.Get( "idx" ), index ), - new XElement( XName.Get( "v", Document.c.NamespaceName ), item.GetType().GetProperty( categoryPropertyName ).GetValue( item, null ) ) ); - _strCache.Add( pt ); - pt = new XElement( XName.Get( "pt", Document.c.NamespaceName ), new XAttribute( XName.Get( "idx" ), index ), - new XElement( XName.Get( "v", Document.c.NamespaceName ), item.GetType().GetProperty( valuePropertyName ).GetValue( item, null ) ) ); - _numCache.Add( pt ); - index++; + extent.Attribute( "cx" ).Value = width.ToString(); + extent.Attribute( "cy" ).Value = height.ToString(); } - } - public void Bind( IList categories, IList values ) - { - if( categories.Count != values.Count ) - throw new ArgumentException( "Categories count must equal to Values count" ); - - var ptCount = new XElement( XName.Get( "ptCount", Document.c.NamespaceName ), new XAttribute( XName.Get( "val" ), categories.Count ) ); - var formatCode = new XElement( XName.Get( "formatCode", Document.c.NamespaceName ), "General" ); - - _strCache.RemoveAll(); - _numCache.RemoveAll(); - - _strCache.Add( ptCount ); - _numCache.Add( formatCode ); - _numCache.Add( ptCount ); - - XElement pt; - for( int index = 0; index < categories.Count; index++ ) + var chart = this.Xml.Descendants( XName.Get( "chart", Document.c.NamespaceName ) ).SingleOrDefault(); + if( chart != null ) { - pt = new XElement( XName.Get( "pt", Document.c.NamespaceName ), new XAttribute( XName.Get( "idx" ), index ), - new XElement( XName.Get( "v", Document.c.NamespaceName ), categories[index].ToString() ) ); - _strCache.Add( pt ); - pt = new XElement( XName.Get( "pt", Document.c.NamespaceName ), new XAttribute( XName.Get( "idx" ), index ), - new XElement( XName.Get( "v", Document.c.NamespaceName ), values[index].ToString() ) ); - _numCache.Add( pt ); + var idAttribute = chart.Attribute( XName.Get( "id", Document.r.NamespaceName ) ); + if( idAttribute != null ) + { + idAttribute.Value = relId; + } } } - #endregion + +#endregion } + /// /// Represents a chart legend /// More: http://msdn.microsoft.com/ru-ru/library/cc845123.aspx diff --git a/Xceed.Document.NET/Src/Charts/LineChart.cs b/Xceed.Document.NET/Src/Charts/LineChart.cs index d52627fa..6e92f8e3 100644 --- a/Xceed.Document.NET/Src/Charts/LineChart.cs +++ b/Xceed.Document.NET/Src/Charts/LineChart.cs @@ -18,6 +18,8 @@ COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at using System.Xml.Linq; using System.Linq; using System.Globalization; +using System.Collections.Generic; +using System; namespace Xceed.Document.NET { @@ -27,6 +29,7 @@ namespace Xceed.Document.NET /// public class LineChart : Chart { + #region Public Properties /// @@ -36,60 +39,74 @@ public Grouping Grouping { get { + var chartXml = GetChartTypeXElement(); + return XElementHelpers.GetValueToEnum( - ChartXml.Element( XName.Get( "grouping", Document.c.NamespaceName ) ) ); + chartXml.Element(XName.Get("grouping", Document.c.NamespaceName))); } set { + var chartXml = GetChartTypeXElement(); + XElementHelpers.SetValueFromEnum( - ChartXml.Element( XName.Get( "grouping", Document.c.NamespaceName ) ), value ); + chartXml.Element(XName.Get("grouping", Document.c.NamespaceName)), value); } } #endregion #region Constructors - + [Obsolete("LineChart() is obsolete. Use Document.AddChart() instead.")] public LineChart() { } - #endregion #region Overrides - public override void AddSeries( Series series ) + public override void AddSeries(Series series) { // When the series has a Color set => LineChart series will color its line, not its content. - var spPr = series.Xml.Element( XName.Get( "spPr", Document.c.NamespaceName ) ); - if( spPr != null ) + var spPr = series.Xml.Element(XName.Get("spPr", Document.c.NamespaceName)); + if (spPr != null) { - if( spPr.Element( XName.Get( "ln", Document.a.NamespaceName ) ) == null ) + if (spPr.Element(XName.Get("ln", Document.a.NamespaceName)) == null) { var spPrContent = spPr.Elements().First(); // Only color tag is defined. - var newSpPr = new XElement( XName.Get( "spPr", Document.c.NamespaceName ), - new XElement( XName.Get( "ln", Document.a.NamespaceName ), spPrContent ) ); - spPr.AddAfterSelf( newSpPr ); + var newSpPr = new XElement(XName.Get("spPr", Document.c.NamespaceName), + new XElement(XName.Get("ln", Document.a.NamespaceName), spPrContent)); + spPr.AddAfterSelf(newSpPr); spPr.Remove(); } } - base.AddSeries( series ); + series.PackagePart = this.PackagePart; + base.AddSeries(series); } - protected override XElement CreateChartXml() + protected override XElement CreateExternalChartXml() { return XElement.Parse( @" - " ); + "); } - #endregion - } + protected override XElement GetChartTypeXElement() + { + if (this.ExternalXml == null) + return null; + + return this.ExternalXml.Descendants().Where(chartElement => (chartElement.Name.LocalName == "lineChart") + || (chartElement.Name.LocalName == "line3DChart")).SingleOrDefault(); + + } +#endregion + + } /// /// Specifies the kind of grouping for a column, line, or area chart. /// 21.2.2.76 grouping (Grouping) diff --git a/Xceed.Document.NET/Src/Charts/PieChart.cs b/Xceed.Document.NET/Src/Charts/PieChart.cs index af1bf8ef..cffaa92a 100644 --- a/Xceed.Document.NET/Src/Charts/PieChart.cs +++ b/Xceed.Document.NET/Src/Charts/PieChart.cs @@ -16,6 +16,7 @@ COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at using System; using System.IO.Packaging; +using System.Linq; using System.Xml.Linq; namespace Xceed.Document.NET @@ -46,23 +47,33 @@ public override Int16 MaxSeriesCount #endregion #region Constructors - + [Obsolete("PieChart() is obsolete. Use Document.AddChart() instead.")] public PieChart() { } -#endregion + #endregion #region Overrides - protected override XElement CreateChartXml() + protected override XElement CreateExternalChartXml() { return XElement.Parse( @" " ); } + protected override XElement GetChartTypeXElement() + { + if( this.ExternalXml == null ) + return null; + + return this.ExternalXml.Descendants().Where( chartElement => ( chartElement.Name.LocalName == "pieChart" ) + || ( chartElement.Name.LocalName == "pie3DChart" ) ).SingleOrDefault(); + + } + #endregion } } diff --git a/Xceed.Document.NET/Src/Charts/Series.cs b/Xceed.Document.NET/Src/Charts/Series.cs new file mode 100644 index 00000000..3d6642c3 --- /dev/null +++ b/Xceed.Document.NET/Src/Charts/Series.cs @@ -0,0 +1,280 @@ +/*************************************************************************************** + + DocX – DocX is the community edition of Xceed Words for .NET + + Copyright (C) 2009-2020 Xceed Software Inc. + + This program is provided to you under the terms of the XCEED SOFTWARE, INC. + COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at + https://github.com/xceedsoftware/DocX/blob/master/license.md + + For more features and fast professional support, + pick up Xceed Words for .NET at https://xceed.com/xceed-words-for-net/ + + *************************************************************************************/ + + +using System; +using System.Collections; +using System.Collections.Generic; +using System.Drawing; +using System.Globalization; +using System.IO.Packaging; +using System.Linq; +using System.Xml.Linq; + +namespace Xceed.Document.NET +{ + public class Series + { + /// + /// Represents a chart series + /// + /// + + #region Private Members + + private XElement _strCache; + private XElement _numCache; + private PackagePart _packagePart; + #endregion + + + #region Public Properties + + + + + + + + + + + + + + + + + + + + + + + + + + + + + public Color Color + { + get + { + var spPr = this.Xml.Element( XName.Get( "spPr", Document.c.NamespaceName ) ); + if( spPr == null ) + return Color.Transparent; + + var srgbClr = spPr.Descendants( XName.Get( "srgbClr", Document.a.NamespaceName ) ).FirstOrDefault(); + if( srgbClr != null ) + { + var val = srgbClr.Attribute( XName.Get( "val" ) ); + if( val != null ) + { + var rgb = Color.FromArgb( Int32.Parse( val.Value, NumberStyles.HexNumber ) ); + return Color.FromArgb( 255, rgb ); + } + } + + return Color.Transparent; + } + set + { + var spPrElement = this.Xml.Element( XName.Get( "spPr", Document.c.NamespaceName ) ); + string widthValue = string.Empty; + + if( spPrElement != null ) + { + var ln = spPrElement.Element( XName.Get( "ln", Document.a.NamespaceName ) ); + if( ln != null ) + { + var val = ln.Attribute( XName.Get( "w" ) ); + if( val != null ) + { + widthValue = val.Value; + } + } + spPrElement.Remove(); + } + + var colorData = new XElement( XName.Get( "solidFill", Document.a.NamespaceName ), + new XElement( XName.Get( "srgbClr", Document.a.NamespaceName ), new XAttribute( XName.Get( "val" ), value.ToHex() ) ) ); + + // When the chart containing this series is a lineChart, the line will be colored, else the shape will be colored. + if( string.IsNullOrEmpty( widthValue ) ) + { + spPrElement = ( ( this.Xml.Parent != null ) && ( this.Xml.Parent.Name != null ) && ( this.Xml.Parent.Name.LocalName == "lineChart" ) ) + ? new XElement( XName.Get( "spPr", Document.c.NamespaceName ), + new XElement( XName.Get( "ln", Document.a.NamespaceName ), colorData ) ) + : new XElement( XName.Get( "spPr", Document.c.NamespaceName ), colorData ); + } + else + { + spPrElement = new XElement( XName.Get( "spPr", Document.c.NamespaceName ), + new XElement( XName.Get( "ln", Document.a.NamespaceName ), + new XAttribute( XName.Get( "w" ), widthValue ), colorData ) ); + } + + this.Xml.Element( XName.Get( "tx", Document.c.NamespaceName ) ).AddAfterSelf( spPrElement ); + } + } + + #endregion + + #region Internal Properties + + /// + /// Series xml element + /// + internal XElement Xml + { + get; private set; + } + + internal PackagePart PackagePart + { + get + { + return _packagePart; + } + set + { + _packagePart = value; + } + } + #endregion + + #region Constructors + + public Series( String name ) + { + _strCache = new XElement( XName.Get( "strCache", Document.c.NamespaceName ) ); + _numCache = new XElement( XName.Get( "numCache", Document.c.NamespaceName ) ); + + this.Xml = new XElement( XName.Get( "ser", Document.c.NamespaceName ), + new XElement( XName.Get( "tx", Document.c.NamespaceName ), + new XElement( XName.Get( "strRef", Document.c.NamespaceName ), + new XElement( XName.Get( "f", Document.c.NamespaceName ), "" ), + new XElement( XName.Get( "strCache", Document.c.NamespaceName ), + new XElement( XName.Get( "pt", Document.c.NamespaceName ), + new XAttribute( XName.Get( "idx" ), "0" ), + new XElement( XName.Get( "v", Document.c.NamespaceName ), name ) ) ) ) ), + new XElement( XName.Get( "invertIfNegative", Document.c.NamespaceName ), "0" ), + new XElement( XName.Get( "cat", Document.c.NamespaceName ), + new XElement( XName.Get( "strRef", Document.c.NamespaceName ), + new XElement( XName.Get( "f", Document.c.NamespaceName ), "" ), + _strCache ) ), + new XElement( XName.Get( "val", Document.c.NamespaceName ), + new XElement( XName.Get( "numRef", Document.c.NamespaceName ), + new XElement( XName.Get( "f", Document.c.NamespaceName ), "" ), + _numCache ) ) + ); + } + + internal Series( XElement xml ) + { + this.Xml = xml; + + var cat = xml.Element( XName.Get( "cat", Document.c.NamespaceName ) ); + if( cat != null ) + { + _strCache = cat.Descendants( XName.Get( "strCache", Document.c.NamespaceName ) ).FirstOrDefault(); + if( _strCache == null ) + { + _strCache = cat.Descendants( XName.Get( "strLit", Document.c.NamespaceName ) ).FirstOrDefault(); + } + } + + var val = xml.Element( XName.Get( "val", Document.c.NamespaceName ) ); + if( val != null ) + { + _numCache = val.Descendants( XName.Get( "numCache", Document.c.NamespaceName ) ).FirstOrDefault(); + if( _numCache == null ) + { + _numCache = val.Descendants( XName.Get( "numLit", Document.c.NamespaceName ) ).FirstOrDefault(); + } + } + + } + + #endregion + + #region Public Methods + + public void Bind( ICollection list, String categoryPropertyName, String valuePropertyName ) + { + var ptCount = new XElement( XName.Get( "ptCount", Document.c.NamespaceName ), new XAttribute( XName.Get( "val" ), list.Count ) ); + var formatCode = new XElement( XName.Get( "formatCode", Document.c.NamespaceName ), "General" ); + + _strCache.RemoveAll(); + _numCache.RemoveAll(); + + _strCache.Add( ptCount ); + _numCache.Add( formatCode ); + _numCache.Add( ptCount ); + Int32 index = 0; + XElement pt; + foreach( var item in list ) + { + pt = new XElement( XName.Get( "pt", Document.c.NamespaceName ), new XAttribute( XName.Get( "idx" ), index ), + new XElement( XName.Get( "v", Document.c.NamespaceName ), item.GetType().GetProperty( categoryPropertyName ).GetValue( item, null ) ) ); + _strCache.Add( pt ); + pt = new XElement( XName.Get( "pt", Document.c.NamespaceName ), new XAttribute( XName.Get( "idx" ), index ), + new XElement( XName.Get( "v", Document.c.NamespaceName ), item.GetType().GetProperty( valuePropertyName ).GetValue( item, null ) ) ); + _numCache.Add( pt ); + index++; + } + } + + public void Bind( IList categories, IList values ) + { + if( categories.Count != values.Count ) + throw new ArgumentException( "Categories count must equal to Values count" ); + + var ptCount = new XElement( XName.Get( "ptCount", Document.c.NamespaceName ), new XAttribute( XName.Get( "val" ), categories.Count ) ); + var formatCode = new XElement( XName.Get( "formatCode", Document.c.NamespaceName ), "General" ); + + _strCache.RemoveAll(); + _numCache.RemoveAll(); + + _strCache.Add( ptCount ); + _numCache.Add( formatCode ); + _numCache.Add( ptCount ); + XElement pt; + for( int index = 0; index < categories.Count; index++ ) + { + pt = new XElement( XName.Get( "pt", Document.c.NamespaceName ), new XAttribute( XName.Get( "idx" ), index ), + new XElement( XName.Get( "v", Document.c.NamespaceName ), categories[ index ].ToString() ) ); + _strCache.Add( pt ); + pt = new XElement( XName.Get( "pt", Document.c.NamespaceName ), new XAttribute( XName.Get( "idx" ), index ), + new XElement( XName.Get( "v", Document.c.NamespaceName ), values[ index ].ToString() ) ); + _numCache.Add( pt ); + } + } + + #endregion + + #region Internal Method + + + + + + + + + #endregion + } +} diff --git a/Xceed.Document.NET/Src/Charts/ValueAxis.cs b/Xceed.Document.NET/Src/Charts/ValueAxis.cs new file mode 100644 index 00000000..298e4ba8 --- /dev/null +++ b/Xceed.Document.NET/Src/Charts/ValueAxis.cs @@ -0,0 +1,67 @@ +/*************************************************************************************** + + DocX – DocX is the community edition of Xceed Words for .NET + + Copyright (C) 2009-2020 Xceed Software Inc. + + This program is provided to you under the terms of the XCEED SOFTWARE, INC. + COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at + https://github.com/xceedsoftware/DocX/blob/master/license.md + + For more features and fast professional support, + pick up Xceed Words for .NET at https://xceed.com/xceed-words-for-net/ + + *************************************************************************************/ + + +using System; +using System.Xml.Linq; + +namespace Xceed.Document.NET +{ + public class ValueAxis : Axis + { + /// + /// Represents Values Axes + /// + internal ValueAxis(XElement xml) + : base(xml) + { + } + + public ValueAxis(String id) + : base(id) + { + Xml = XElement.Parse(String.Format( + @" + + + + + + + + + + + + + + + ", id)); + } + + + + + + + + + + + + + + } +} diff --git a/Xceed.Document.NET/Src/Container.cs b/Xceed.Document.NET/Src/Container.cs index 1b20617f..f7977741 100644 --- a/Xceed.Document.NET/Src/Container.cs +++ b/Xceed.Document.NET/Src/Container.cs @@ -79,13 +79,22 @@ public virtual ReadOnlyCollection Paragraphs { get { - var paragraphs = this.GetParagraphs(); - this.InitParagraphs( paragraphs ); + if( _editableParagraphsCollection.Count == 0 ) + { + _editableParagraphsCollection = this.GetParagraphs(); + this.InitParagraphs( _editableParagraphsCollection ); + } + + if( _paragraphsCache == null || _paragraphsCache.Count == 0 ) + { + _paragraphsCache = new ReadOnlyCollection( _editableParagraphsCollection ); + } - return paragraphs.AsReadOnly(); + return _paragraphsCache; } } + public virtual ReadOnlyCollection ParagraphsDeepSearch { get @@ -207,7 +216,7 @@ public IList
GetSections() { sectionParagraphs.Add( paragraph ); - var section = new Section( Document, sectionInPara, sections.Count() > 0 ? sections.Select(s => s.Xml) : null ); + var section = new Section( this.Document, sectionInPara, sections.Count() > 0 ? sections.Select( s => s.Xml ) : null ); section.SectionParagraphs = sectionParagraphs; sections.Add( section ); @@ -227,8 +236,8 @@ public IList
GetSections() var baseSectionXml = sectPrList.LastOrDefault(); if( baseSectionXml != null ) { - var baseSection = ( sections.Count > 0 ) ? new Section( Document, baseSectionXml, sections.Select( s => s.Xml ) ) - : new Section( Document, baseSectionXml, ( sectPrList.Count() > 1 ) ? sectPrList.Take( sectPrList.Count() - 1 ) : null ); + var baseSection = ( sections.Count > 0 ) ? new Section( this.Document, baseSectionXml, sections.Select( s => s.Xml ) ) + : new Section( this.Document, baseSectionXml, ( sectPrList.Count() > 1 ) ? sectPrList.Take( sectPrList.Count() - 1 ) : null ); baseSection.SectionParagraphs = sectionParagraphs; sections.Add( baseSection ); } @@ -337,8 +346,8 @@ public virtual void ReplaceText( string searchValue, RegexOptions options = RegexOptions.None, Formatting newFormatting = null, Formatting matchFormatting = null, - MatchFormattingOptions fo = MatchFormattingOptions.SubsetMatch, - bool escapeRegEx = true, + MatchFormattingOptions fo = MatchFormattingOptions.SubsetMatch, + bool escapeRegEx = true, bool useRegExSubstitutions = false, bool removeEmptyParagraph = true ) { @@ -368,13 +377,13 @@ public virtual void ReplaceText( string searchValue, /// /// /// Remove empty paragraph - public virtual void ReplaceText( string searchValue, - Func regexMatchHandler, + public virtual void ReplaceText( string searchValue, + Func regexMatchHandler, bool trackChanges = false, RegexOptions options = RegexOptions.None, Formatting newFormatting = null, Formatting matchFormatting = null, - MatchFormattingOptions fo = MatchFormattingOptions.SubsetMatch, + MatchFormattingOptions fo = MatchFormattingOptions.SubsetMatch, bool removeEmptyParagraph = true ) { if( string.IsNullOrEmpty( searchValue ) ) @@ -532,6 +541,8 @@ split[ 1 ] ); } this.SetParentContainer( p ); + this.AddParagraphInCache( p, index ); + return p; } @@ -609,6 +620,8 @@ public virtual Paragraph InsertParagraph( Paragraph p ) var newParagraph = new Paragraph( Document, newXElement, index ); this.Document._paragraphLookup.Add( index, newParagraph ); this.SetParentContainer( newParagraph ); + this.AddParagraphInCache( newParagraph, index ); + return newParagraph; } @@ -637,6 +650,8 @@ public virtual Paragraph InsertParagraph( int index, string text, bool trackChan } this.SetParentContainer( newParagraph ); + this.AddParagraphInCache( newParagraph, index ); + return newParagraph; } @@ -700,6 +715,7 @@ public virtual Paragraph InsertParagraph( string text, bool trackChanges, Format } this.SetParentContainer( newParagraphAdded ); + this.AddParagraphInCache( newParagraphAdded ); return newParagraphAdded; } @@ -715,6 +731,7 @@ public bool RemoveParagraphAt( int index ) if( index < paragraphs.Count ) { paragraphs[ index ].Remove(); + this.RemoveParagraphFromCache( index ); return true; } @@ -854,7 +871,7 @@ public virtual List InsertList( int index, List list ) p.Xml.ReplaceWith( elements.ToArray() ); return list; - } + } public int RemoveTextInGivenFormat( Formatting formattingToMatch, MatchFormattingOptions formattingOptions = MatchFormattingOptions.SubsetMatch ) { @@ -863,7 +880,7 @@ public int RemoveTextInGivenFormat( Formatting formattingToMatch, MatchFormattin count += RecursiveRemoveText( element, formattingToMatch, formattingOptions ); return count; - } + } #endregion @@ -874,6 +891,11 @@ protected internal virtual void AddElementInXml( object element ) this.Xml.Add( element ); } + internal void ClearParagraphsCache() + { + _editableParagraphsCollection.Clear(); + } + internal List GetParagraphs() { // Need some memory that can be updated by the recursive search. @@ -943,10 +965,98 @@ internal int RecursiveRemoveText( XElement element, Formatting formattingToMatch return count; } + internal void RemoveParagraph( Paragraph paragraph, bool trackChanges ) + { + if( trackChanges ) + { + DateTime now = DateTime.Now.ToUniversalTime(); + + List elements = paragraph.Xml.Elements().ToList(); + List temp = new List(); + for( int i = 0; i < elements.Count(); i++ ) + { + XElement e = elements[ i ]; + + if( e.Name.LocalName != "del" ) + { + temp.Add( e ); + e.Remove(); + } + + else + { + if( temp.Count() > 0 ) + { + e.AddBeforeSelf( Paragraph.CreateEdit( EditType.del, now, temp.Elements() ) ); + temp.Clear(); + } + } + } + + if( temp.Count() > 0 ) + paragraph.Xml.Add( Paragraph.CreateEdit( EditType.del, now, temp ) ); + + //Remove paragraph from Cache + this.RemoveParagraphFromCache( paragraph ); + } + else + { + // If this is the only Paragraph in the Cell(nothing else than a paragraph) then we cannot remove it. + if( ( paragraph.Xml.Parent != null ) + && ( paragraph.Xml.Parent.Name.LocalName == "tc" ) + && ( paragraph.Xml.Parent.Elements( XName.Get( "p", Document.w.NamespaceName ) ).Count() == 1 ) + && ( paragraph.Xml.Parent.Elements( XName.Get( "altChunk", Document.w.NamespaceName ) ).Count() == 0 ) ) + { + paragraph.Xml.Value = string.Empty; + } + else + { + //Remove paragraph from Cache + this.RemoveParagraphFromCache( paragraph ); + + // Remove this paragraph from the document + paragraph.Xml.Remove(); + paragraph.Xml = null; + } + } + } + + #endregion + + #region Private Properties + + private List _editableParagraphsCollection = new List(); + private ReadOnlyCollection _paragraphsCache; + #endregion #region Private Methods + private void RemoveParagraphFromCache( int index ) + { + if( index != -1 ) + { + _editableParagraphsCollection.RemoveAt( index ); + } + } + + private void RemoveParagraphFromCache( Paragraph paragraph ) + { + var index = _editableParagraphsCollection.IndexOf( paragraph ); + if( index != -1 ) + { + _editableParagraphsCollection.RemoveAt( index ); + } + } + + private void AddParagraphInCache( Paragraph p, int? index = null ) + { + if( !( index.HasValue ) ) + _editableParagraphsCollection.Add( p ); + else + _editableParagraphsCollection.Insert( index.Value, p ); + } + private void GetListItemType( Paragraph p ) { var listItemType = HelperFunctions.GetListItemType( p, Document ); @@ -981,39 +1091,6 @@ private ContainerType GetParentFromXmlName( string xmlName ) } } - private void SetParentContainer( Paragraph newParagraph ) - { - var containerType = GetType(); - - switch( containerType.Name ) - { - case "Body": - newParagraph.ParentContainer = ContainerType.Body; - break; - case "Table": - newParagraph.ParentContainer = ContainerType.Table; - break; - case "TOC": - newParagraph.ParentContainer = ContainerType.TOC; - break; - case "Section": - newParagraph.ParentContainer = ContainerType.Section; - break; - case "Cell": - newParagraph.ParentContainer = ContainerType.Cell; - break; - case "Header": - newParagraph.ParentContainer = ContainerType.Header; - break; - case "Footer": - newParagraph.ParentContainer = ContainerType.Footer; - break; - case "Paragraph": - newParagraph.ParentContainer = ContainerType.Paragraph; - break; - } - } - private ListItemType GetListItemType( string listItemType ) { switch( listItemType ) @@ -1027,22 +1104,19 @@ private ListItemType GetListItemType( string listItemType ) private void InitParagraphs( List paragraphs ) { - if( (this.Document.Sections == null) || (this.Document.Sections.Count == 0)) - return; - foreach( var p in paragraphs ) { var nextElement = p.Xml.ElementsAfterSelf().FirstOrDefault(); - if ((nextElement == null) && p.IsInSdt()) + if( ( nextElement == null ) && p.IsInSdt() ) { nextElement = p.GetParentSdt().ElementsAfterSelf().FirstOrDefault(); } - else if ((nextElement != null) && nextElement.Name.Equals(Document.w + "sdt")) + else if( ( nextElement != null ) && nextElement.Name.Equals( Document.w + "sdt" ) ) { - var sdtContent = nextElement.Element(XName.Get("sdtContent", Document.w.NamespaceName)); - if (sdtContent != null) + var sdtContent = nextElement.Element( XName.Get( "sdtContent", Document.w.NamespaceName ) ); + if( sdtContent != null ) { - nextElement = sdtContent.Element(XName.Get("tbl", Document.w.NamespaceName)); + nextElement = sdtContent.Element( XName.Get( "tbl", Document.w.NamespaceName ) ); } } var containsSectionBreak = p.GetOrCreate_pPr().Element( XName.Get( "sectPr", Document.w.NamespaceName ) ); @@ -1066,6 +1140,39 @@ private void InitParagraphs( List paragraphs ) } } + private void SetParentContainer( Paragraph newParagraph ) + { + var containerType = GetType(); + + switch( containerType.Name ) + { + case "Body": + newParagraph.ParentContainer = ContainerType.Body; + break; + case "Table": + newParagraph.ParentContainer = ContainerType.Table; + break; + case "TOC": + newParagraph.ParentContainer = ContainerType.TOC; + break; + case "Section": + newParagraph.ParentContainer = ContainerType.Section; + break; + case "Cell": + newParagraph.ParentContainer = ContainerType.Cell; + break; + case "Header": + newParagraph.ParentContainer = ContainerType.Header; + break; + case "Footer": + newParagraph.ParentContainer = ContainerType.Footer; + break; + case "Paragraph": + newParagraph.ParentContainer = ContainerType.Paragraph; + break; + } + } + #endregion #region Constructors @@ -1073,9 +1180,9 @@ private void InitParagraphs( List paragraphs ) internal Container( Document document, XElement xml ) : base( document, xml ) { - } #endregion } + } diff --git a/Xceed.Document.NET/Src/Document.cs b/Xceed.Document.NET/Src/Document.cs index f917c117..2c405f1f 100644 --- a/Xceed.Document.NET/Src/Document.cs +++ b/Xceed.Document.NET/Src/Document.cs @@ -1048,6 +1048,31 @@ public BookmarkCollection Bookmarks } } + public List ParagraphFormattings + { + get + { + var paragraphStyles = + ( + from s in _styles.Element( Document.w + "styles" ).Elements( Document.w + "style" ) + let type = s.Attribute( XName.Get( "type", Document.w.NamespaceName ) ) + where ( ( type != null ) + && ( ( type.Value == "paragraph" ) || ( type.Value == "character" ) ) ) + select s + ); + + var formattings = new List(); + + foreach( var style in paragraphStyles ) + { + var formatting = HelperFunctions.GetFormattingFromStyle( this, style.GetAttribute( XName.Get( "styleId", Document.w.NamespaceName ) ) ); + formattings.Add( formatting ); + } + + return formattings; + } + } + @@ -1430,296 +1455,192 @@ public void RemoveProtection() /// public void InsertDocument( Document remote_document, bool append = true, bool useSectionBreak = true, MergingMode mergingMode = MergingMode.Both ) { - // We don't want to effect the original XDocument, so create a new one from the old one. - var remote_mainDoc = new XDocument( remote_document._mainDoc ); + XDocument remote_mainDoc; + XElement remote_body, local_body; + PackagePartCollection ppc; + MergeDocumentsPackages( remote_document, mergingMode, out remote_mainDoc, out remote_body, out local_body, out ppc ); - XDocument remote_footnotes = null; - if( remote_document._footnotes != null ) - { - remote_footnotes = new XDocument( remote_document._footnotes ); - } + ManageSectionBreak( append, useSectionBreak, remote_body, local_body ); - XDocument remote_endnotes = null; - if( remote_document._endnotes != null ) + MergeDocumentsRelations( remote_document, remote_mainDoc, remote_body, ppc ); + + // Add the remote documents contents to this document. + if( append ) { - remote_endnotes = new XDocument( remote_document._endnotes ); + local_body.Add( remote_body.Elements() ); } - - // Get the body of the remote document. - var remote_body = remote_mainDoc.Root.Element( XName.Get( "body", w.NamespaceName ) ); - // Get the body of the local document. - var local_body = _mainDoc.Root.Element( XName.Get( "body", w.NamespaceName ) ); - - // Remove all header and footer references. - remote_mainDoc.Descendants( XName.Get( "headerReference", w.NamespaceName ) ).Remove(); - remote_mainDoc.Descendants( XName.Get( "footerReference", w.NamespaceName ) ).Remove(); - - // Every file that is missing from the local document will have to be copied, every file that already exists will have to be merged. - var ppc = remote_document._package.GetParts(); - - var ignoreContentTypes = new List - { - "application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml", - "application/vnd.openxmlformats-officedocument.wordprocessingml.header+xml", - "application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml", - "application/vnd.openxmlformats-package.core-properties+xml", - "application/vnd.openxmlformats-officedocument.extended-properties+xml", - ContentTypeApplicationRelationShipXml - }; - - // Check if each PackagePart pp exists in this document. - foreach( PackagePart remote_pp in ppc ) + else { - if( ignoreContentTypes.Contains( remote_pp.ContentType ) || _imageContentTypes.Contains( remote_pp.ContentType ) ) - continue; - - // If this external PackagePart already exits then we must merge them. - if( _package.PartExists( remote_pp.Uri ) ) - { - var local_pp = _package.GetPart( remote_pp.Uri ); - switch( remote_pp.ContentType ) - { - case "application/vnd.openxmlformats-officedocument.custom-properties+xml": - merge_customs( remote_pp, local_pp, remote_mainDoc ); - break; + local_body.AddFirst( remote_body.Elements() ); + } + AddRootAttributes( remote_mainDoc ); + // Update the _cachedSection by reading the Xml to build new Sections. + this.UpdateCacheSections(); + } - // Merge footnotes/endnotes before merging styles, then set the remote_footnotes to the just updated footnotes - case "application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml": - merge_footnotes( remote_pp, local_pp, remote_mainDoc, remote_document, remote_footnotes ); - break; - case "application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml": - merge_endnotes( remote_pp, local_pp, remote_mainDoc, remote_document, remote_endnotes ); - break; - case "application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml": - merge_styles( remote_pp, local_pp, remote_mainDoc, remote_document, _footnotes, _endnotes, mergingMode ); - break; - // Merges Styles after merging the footnotes, so the changes will be applied to the correct document/footnotes. - case "application/vnd.ms-word.stylesWithEffects+xml": - merge_styles( remote_pp, local_pp, remote_mainDoc, remote_document, remote_footnotes, remote_endnotes, mergingMode ); - break; - case "application/vnd.openxmlformats-officedocument.wordprocessingml.fontTable+xml": - merge_fonts( remote_pp, local_pp, remote_mainDoc, remote_document ); - break; - case "application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml": - merge_numbering( remote_pp, local_pp, remote_mainDoc, remote_document ); - break; - } - } - // If this external PackagePart does not exits in the internal document then we can simply copy it. - else - { - var packagePart = clonePackagePart( remote_pp ); - switch( remote_pp.ContentType ) - { + /// + /// Insert a new Table at the end of this document. + /// + /// The number of columns to create. + /// The number of rows to create. + /// A new Table. + /// + /// Insert a new Table with 2 columns and 3 rows, at the end of a document. + /// + /// // Create a document. + /// using (var document = DocX.Create(@"C:\Example\Test.docx")) + /// { + /// // Create a new Table with 2 columns and 3 rows. + /// Table newTable = document.InsertTable(2, 3); + /// + /// // Set the design of this Table. + /// newTable.Design = TableDesign.LightShadingAccent2; + /// + /// // Set the column names. + /// newTable.Rows[0].Cells[0].Paragraph.InsertText("Ice Cream", false); + /// newTable.Rows[0].Cells[1].Paragraph.InsertText("Price", false); + /// + /// // Fill row 1 + /// newTable.Rows[1].Cells[0].Paragraph.InsertText("Chocolate", false); + /// newTable.Rows[1].Cells[1].Paragraph.InsertText("€3:50", false); + /// + /// // Fill row 2 + /// newTable.Rows[2].Cells[0].Paragraph.InsertText("Vanilla", false); + /// newTable.Rows[2].Cells[1].Paragraph.InsertText("€3:00", false); + /// + /// // Save all changes made to document b. + /// document.Save(); + /// }// Release this document from memory. + /// + /// + public new Table InsertTable( int rowCount, int columnCount ) + { + if( rowCount < 1 || columnCount < 1 ) + throw new ArgumentOutOfRangeException( "Row and Column count must be greater than zero." ); - case "application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml": - _endnotesPart = packagePart; - _endnotes = remote_endnotes; - break; + var t = base.InsertTable( rowCount, columnCount ); + t.PackagePart = this.PackagePart; + return t; + } - case "application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml": - _footnotesPart = packagePart; - _footnotes = remote_footnotes; - break; + public Table AddTable( int rowCount, int columnCount ) + { + if( rowCount < 1 || columnCount < 1 ) + throw new ArgumentOutOfRangeException( "Row and Column count must be greater than zero." ); - case "application/vnd.openxmlformats-officedocument.custom-properties+xml": - break; + var t = new Table( this, HelperFunctions.CreateTable( rowCount, columnCount, this.GetAvailableWidth() ), this.PackagePart ); + t.PackagePart = this.PackagePart; + return t; + } - case "application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml": - _stylesPart = packagePart; - using( TextReader tr = new StreamReader( _stylesPart.GetStream() ) ) - _styles = XDocument.Load( tr ); - break; - case "application/vnd.ms-word.stylesWithEffects+xml": - _stylesWithEffectsPart = packagePart; - using( TextReader tr = new StreamReader( _stylesWithEffectsPart.GetStream() ) ) - _stylesWithEffects = XDocument.Load( tr ); - break; - case "application/vnd.openxmlformats-officedocument.wordprocessingml.fontTable+xml": - _fontTablePart = packagePart; - using( TextReader tr = new StreamReader( _fontTablePart.GetStream() ) ) - _fontTable = XDocument.Load( tr ); - break; - case "application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml": - _numberingPart = packagePart; - using( TextReader tr = new StreamReader( _numberingPart.GetStream() ) ) - _numbering = XDocument.Load( tr ); - break; + /// + /// Insert a Table into this document. The Table's source can be a completely different document. + /// + /// The Table to insert. + /// The index to insert this Table at. + /// The Table now associated with this document. + /// + /// Extract a Table from document a and insert it into document b, at index 10. + /// + /// // Place holder for a Table. + /// Table t; + /// + /// // Load document a. + /// using (DocX documentA = DocX.Load(@"C:\Example\a.docx")) + /// { + /// // Get the first Table from this document. + /// t = documentA.Tables[0]; + /// } + /// + /// // Load document b. + /// using (DocX documentB = DocX.Load(@"C:\Example\b.docx")) + /// { + /// /* + /// * Insert the Table that was extracted from document a, into document b. + /// * This creates a new Table that is now associated with document b. + /// */ + /// Table newTable = documentB.InsertTable(10, t); + /// + /// // Save all changes made to document b. + /// documentB.Save(); + /// }// Release this document from memory. + /// + /// + public new Table InsertTable( int index, Table t ) + { + var t2 = base.InsertTable( index, t ); + t2.PackagePart = this.PackagePart; + return t2; + } - } - - clonePackageRelationship( remote_document, remote_pp, remote_mainDoc ); - } - } - - - - if( useSectionBreak ) - { - // append : Move local body section to the last paragraph of the body. - // insert : Move Remote Body section to the last paragraph of the body. - this.MoveSectionIntoLastParagraph( append ? local_body : remote_body ); - } - else - { - if( append ) - { - // The last section of local will become the last section of remote(will be the last section of the resulting document). - this.ReplaceLastSection( local_body, remote_body ); - } - else - { - // The last section of remote is removed. The last section of local will be the last section of the resulting document. - this.RemoveLastSection( remote_body ); - } - } - - foreach( var hyperlink_rel in remote_document.PackagePart.GetRelationshipsByType( "http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink" ) ) - { - var old_rel_Id = hyperlink_rel.Id; - var new_rel_Id = this.PackagePart.CreateRelationship( hyperlink_rel.TargetUri, hyperlink_rel.TargetMode, hyperlink_rel.RelationshipType ).Id; - var hyperlink_refs = remote_mainDoc.Descendants( XName.Get( "hyperlink", w.NamespaceName ) ); - foreach( var hyperlink_ref in hyperlink_refs ) - { - var a0 = hyperlink_ref.Attribute( XName.Get( "id", r.NamespaceName ) ); - if( a0 != null && a0.Value == old_rel_Id ) - { - a0.SetValue( new_rel_Id ); - } - } - } - - foreach( var oleObject_rel in remote_document.PackagePart.GetRelationshipsByType( "http://schemas.openxmlformats.org/officeDocument/2006/relationships/oleObject" ) ) - { - var oldRelationshipID = oleObject_rel.Id; - var newRelationshipID = this.PackagePart.CreateRelationship( oleObject_rel.TargetUri, oleObject_rel.TargetMode, oleObject_rel.RelationshipType ).Id; - var references = remote_mainDoc.Descendants( XName.Get( "OLEObject", "urn:schemas-microsoft-com:office:office" ) ); - - foreach( var reference in references ) - { - var attribute = reference.Attribute( XName.Get( "id", r.NamespaceName ) ); - if( attribute != null && attribute.Value == oldRelationshipID ) - attribute.SetValue( newRelationshipID ); - } - } - - var remoteNumberingRelationship = remote_document.PackagePart.GetRelationshipsByType( "http://schemas.openxmlformats.org/officeDocument/2006/relationships/numbering" ); - var localNumberingRelationship = this.PackagePart.GetRelationshipsByType( "http://schemas.openxmlformats.org/officeDocument/2006/relationships/numbering" ); - if( ( remoteNumberingRelationship.Count() > 0 ) && ( localNumberingRelationship.Count() == 0 ) ) - { - foreach( var rel in remoteNumberingRelationship ) - { - this.PackagePart.CreateRelationship( rel.TargetUri, rel.TargetMode, rel.RelationshipType ); - } - } - - //var remoteCustomXmlRelationship = remote_document.PackagePart.GetRelationshipsByType( "http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXml" ); - //var localCustomXmlRelationship = this.PackagePart.GetRelationshipsByType( "http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXml" ); - //if( ( remoteCustomXmlRelationship.Count() > 0 ) && ( localCustomXmlRelationship.Count() == 0 ) ) - //{ - // foreach( var rel in remoteCustomXmlRelationship ) - // { - // var uri = new Uri( "../" + rel.TargetUri.OriginalString, UriKind.Relative); - // this.PackagePart.CreateRelationship( uri, rel.TargetMode, rel.RelationshipType ); - // } - //} - - if( ( remote_document._fontTablePart != null ) && ( this._fontTablePart != null ) ) - { - var remoteFontRelationship = remote_document._fontTablePart.GetRelationshipsByType( "http://schemas.openxmlformats.org/officeDocument/2006/relationships/font" ); - var localFontRelationship = this._fontTablePart.GetRelationshipsByType( "http://schemas.openxmlformats.org/officeDocument/2006/relationships/font" ); - if( ( remoteFontRelationship.Count() > 0 ) && ( localFontRelationship.Count() == 0 ) ) - { - foreach( var rel in remoteFontRelationship ) - { - this._fontTablePart.CreateRelationship( rel.TargetUri, rel.TargetMode, rel.RelationshipType ); - } - } - } - - foreach( PackagePart remote_pp in ppc ) - { - if( _imageContentTypes.Contains( remote_pp.ContentType ) ) - { - merge_images( remote_pp, remote_document, remote_mainDoc, remote_pp.ContentType ); - } - } - - int id = 0; - var local_docPrs = _mainDoc.Root.Descendants( XName.Get( "docPr", wp.NamespaceName ) ); - foreach( var local_docPr in local_docPrs ) - { - var a_id = local_docPr.Attribute( XName.Get( "id" ) ); - int a_id_value; - if( a_id != null && HelperFunctions.TryParseInt( a_id.Value, out a_id_value ) ) - { - if( a_id_value > id ) - { - id = a_id_value; - } - } - } - id++; - - // docPr must be sequential - var docPrs = remote_body.Descendants( XName.Get( "docPr", wp.NamespaceName ) ); - foreach( var docPr in docPrs ) - { - docPr.SetAttributeValue( XName.Get( "id" ), id ); - id++; - } - - // Add the remote documents contents to this document. - if( append ) - { - local_body.Add( remote_body.Elements() ); - } - else - { - local_body.AddFirst( remote_body.Elements() ); - } - - // Copy any missing root attributes to the local document. - foreach( XAttribute a in remote_mainDoc.Root.Attributes() ) - { - if( _mainDoc.Root.Attribute( a.Name ) == null ) - { - _mainDoc.Root.SetAttributeValue( a.Name, a.Value ); - } - } - - // Update the _cachedSection by reading the Xml to build new Sections. - this.UpdateCacheSections(); - } + /// + /// Insert a Table into this document. The Table's source can be a completely different document. + /// + /// The Table to insert. + /// The Table now associated with this document. + /// + /// Extract a Table from document a and insert it at the end of document b. + /// + /// // Place holder for a Table. + /// Table t; + /// + /// // Load document a. + /// using (DocX documentA = DocX.Load(@"C:\Example\a.docx")) + /// { + /// // Get the first Table from this document. + /// t = documentA.Tables[0]; + /// } + /// + /// // Load document b. + /// using (DocX documentB = DocX.Load(@"C:\Example\b.docx")) + /// { + /// /* + /// * Insert the Table that was extracted from document a, into document b. + /// * This creates a new Table that is now associated with document b. + /// */ + /// Table newTable = documentB.InsertTable(t); + /// + /// // Save all changes made to document b. + /// documentB.Save(); + /// }// Release this document from memory. + /// + /// + public new Table InsertTable( Table t ) + { + t = base.InsertTable( t ); + t.PackagePart = this.PackagePart; + return t; + } /// /// Insert a new Table at the end of this document. /// /// The number of columns to create. /// The number of rows to create. + /// The index to insert this Table at. /// A new Table. /// - /// Insert a new Table with 2 columns and 3 rows, at the end of a document. + /// Insert a new Table with 2 columns and 3 rows, at index 37 in this document. /// /// // Create a document. - /// using (var document = DocX.Create(@"C:\Example\Test.docx")) + /// using (var document = DocX.Load(@"C:\Example\Test.docx")) /// { - /// // Create a new Table with 2 columns and 3 rows. - /// Table newTable = document.InsertTable(2, 3); + /// // Create a new Table with 3 rows and 2 columns. Insert this Table at index 37. + /// Table newTable = document.InsertTable(37, 3, 2); /// /// // Set the design of this Table. - /// newTable.Design = TableDesign.LightShadingAccent2; + /// newTable.Design = TableDesign.LightShadingAccent3; /// /// // Set the column names. /// newTable.Rows[0].Cells[0].Paragraph.InsertText("Ice Cream", false); @@ -1738,167 +1659,30 @@ public void InsertDocument( Document remote_document, bool append = true, bool u /// }// Release this document from memory. /// /// - public new Table InsertTable( int rowCount, int columnCount ) + public new Table InsertTable( int index, int rowCount, int columnCount ) { if( rowCount < 1 || columnCount < 1 ) throw new ArgumentOutOfRangeException( "Row and Column count must be greater than zero." ); - var t = base.InsertTable( rowCount, columnCount ); + var t = base.InsertTable( index, rowCount, columnCount ); + t.PackagePart = this.PackagePart; return t; } - public Table AddTable( int rowCount, int columnCount ) - { - if( rowCount < 1 || columnCount < 1 ) - throw new ArgumentOutOfRangeException( "Row and Column count must be greater than zero." ); - var t = new Table( this, HelperFunctions.CreateTable( rowCount, columnCount, this.GetAvailableWidth() ), this.PackagePart ); - t.PackagePart = this.PackagePart; - return t; - } - /// - /// Insert a Table into this document. The Table's source can be a completely different document. - /// - /// The Table to insert. - /// The index to insert this Table at. - /// The Table now associated with this document. - /// - /// Extract a Table from document a and insert it into document b, at index 10. - /// - /// // Place holder for a Table. - /// Table t; - /// - /// // Load document a. - /// using (DocX documentA = DocX.Load(@"C:\Example\a.docx")) - /// { - /// // Get the first Table from this document. - /// t = documentA.Tables[0]; - /// } - /// - /// // Load document b. - /// using (DocX documentB = DocX.Load(@"C:\Example\b.docx")) - /// { - /// /* - /// * Insert the Table that was extracted from document a, into document b. - /// * This creates a new Table that is now associated with document b. - /// */ - /// Table newTable = documentB.InsertTable(10, t); - /// - /// // Save all changes made to document b. - /// documentB.Save(); - /// }// Release this document from memory. - /// - /// - public new Table InsertTable( int index, Table t ) - { - var t2 = base.InsertTable( index, t ); - t2.PackagePart = this.PackagePart; - return t2; - } - /// - /// Insert a Table into this document. The Table's source can be a completely different document. - /// - /// The Table to insert. - /// The Table now associated with this document. - /// - /// Extract a Table from document a and insert it at the end of document b. - /// - /// // Place holder for a Table. - /// Table t; - /// - /// // Load document a. - /// using (DocX documentA = DocX.Load(@"C:\Example\a.docx")) - /// { - /// // Get the first Table from this document. - /// t = documentA.Tables[0]; - /// } - /// - /// // Load document b. - /// using (DocX documentB = DocX.Load(@"C:\Example\b.docx")) - /// { - /// /* - /// * Insert the Table that was extracted from document a, into document b. - /// * This creates a new Table that is now associated with document b. - /// */ - /// Table newTable = documentB.InsertTable(t); - /// - /// // Save all changes made to document b. - /// documentB.Save(); - /// }// Release this document from memory. - /// - /// - public new Table InsertTable( Table t ) + + + + public Footnote AddFootnote( object footnoteContent, Formatting formatting = null ) { - t = base.InsertTable( t ); - t.PackagePart = this.PackagePart; - return t; - } - - /// - /// Insert a new Table at the end of this document. - /// - /// The number of columns to create. - /// The number of rows to create. - /// The index to insert this Table at. - /// A new Table. - /// - /// Insert a new Table with 2 columns and 3 rows, at index 37 in this document. - /// - /// // Create a document. - /// using (var document = DocX.Load(@"C:\Example\Test.docx")) - /// { - /// // Create a new Table with 3 rows and 2 columns. Insert this Table at index 37. - /// Table newTable = document.InsertTable(37, 3, 2); - /// - /// // Set the design of this Table. - /// newTable.Design = TableDesign.LightShadingAccent3; - /// - /// // Set the column names. - /// newTable.Rows[0].Cells[0].Paragraph.InsertText("Ice Cream", false); - /// newTable.Rows[0].Cells[1].Paragraph.InsertText("Price", false); - /// - /// // Fill row 1 - /// newTable.Rows[1].Cells[0].Paragraph.InsertText("Chocolate", false); - /// newTable.Rows[1].Cells[1].Paragraph.InsertText("€3:50", false); - /// - /// // Fill row 2 - /// newTable.Rows[2].Cells[0].Paragraph.InsertText("Vanilla", false); - /// newTable.Rows[2].Cells[1].Paragraph.InsertText("€3:00", false); - /// - /// // Save all changes made to document b. - /// document.Save(); - /// }// Release this document from memory. - /// - /// - public new Table InsertTable( int index, int rowCount, int columnCount ) - { - if( rowCount < 1 || columnCount < 1 ) - throw new ArgumentOutOfRangeException( "Row and Column count must be greater than zero." ); - - var t = base.InsertTable( index, rowCount, columnCount ); - t.PackagePart = this.PackagePart; - return t; - } - - - - - - - - - - - public Footnote AddFootnote( object footnoteContent, Formatting formatting = null ) - { - if( footnoteContent == null ) - return null; + if( footnoteContent == null ) + return null; var footnotes_package_uri = new Uri( "/word/footnotes.xml", UriKind.Relative ); @@ -2155,25 +1939,37 @@ public void ApplyTemplate( Stream templateStream, bool includeContent ) { _package.CreatePart( packagePart.Uri, packagePart.ContentType, packagePart.CompressionOption ); } - var packagePartEncoding = Encoding.Default; - if( packagePart.Uri.ToString().EndsWith( ".xml" ) || packagePart.Uri.ToString().EndsWith( ".rels" ) ) - { - packagePartEncoding = Encoding.UTF8; - } + var nativePart = _package.GetPart( packagePart.Uri ); - using( var stream = packagePart.GetStream( FileMode.Open, FileAccess.Read ) ) + if( packagePart.Uri.ToString().EndsWith( ".xml" ) || packagePart.Uri.ToString().EndsWith( ".rels" ) ) { - using( var tr = new StreamReader( stream, packagePartEncoding ) ) + var packagePartEncoding = Encoding.UTF8; + + using( var stream = packagePart.GetStream( FileMode.Open, FileAccess.Read ) ) { - using( var nativePartStream = new PackagePartStream( nativePart.GetStream( FileMode.Create, FileAccess.Write ) ) ) + using( var tr = new StreamReader( stream, packagePartEncoding ) ) { - using( var tw = new StreamWriter( nativePartStream, tr.CurrentEncoding ) ) + using( var nativePartStream = new PackagePartStream( nativePart.GetStream( FileMode.Create, FileAccess.Write ) ) ) { - tw.Write( tr.ReadToEnd() ); + using( var tw = new StreamWriter( nativePartStream, tr.CurrentEncoding ) ) + { + tw.Write( tr.ReadToEnd() ); + } } } } } + else + { + using( var s_read = packagePart.GetStream() ) + { + using( var s_write = new PackagePartStream( nativePart.GetStream( FileMode.Create ) ) ) + { + HelperFunctions.CopyStream( s_read, s_write ); + } + } + } + break; } } @@ -2184,8 +1980,7 @@ public void ApplyTemplate( Stream templateStream, bool includeContent ) { _package.DeletePart( documentPart.Uri ); } - var documentNewPart = _package.CreatePart( - documentPart.Uri, mainContentType, documentPart.CompressionOption ); + var documentNewPart = _package.CreatePart( documentPart.Uri, mainContentType, documentPart.CompressionOption ); using( var stream = new PackagePartStream( documentNewPart.GetStream( FileMode.Create, FileAccess.Write ) ) ) { using( XmlWriter xw = XmlWriter.Create( stream ) ) @@ -2717,6 +2512,7 @@ public override Paragraph InsertParagraph() { var p = base.InsertParagraph(); p.PackagePart = this.PackagePart; + return p; } @@ -2724,6 +2520,7 @@ public override Paragraph InsertParagraph( int index, string text, bool trackCha { var p = base.InsertParagraph( index, text, trackChanges ); p.PackagePart = this.PackagePart; + return p; } @@ -2733,6 +2530,7 @@ public override Paragraph InsertParagraph( Paragraph p ) this.InsertParagraphPictures( p ); p.PackagePart = this.PackagePart; + return base.InsertParagraph( p ); } @@ -2742,6 +2540,7 @@ public override Paragraph InsertParagraph( int index, Paragraph p ) this.InsertParagraphPictures( p ); p.PackagePart = this.PackagePart; + return base.InsertParagraph( index, p ); } @@ -2749,6 +2548,7 @@ public override Paragraph InsertParagraph( int index, string text, bool trackCha { var p = base.InsertParagraph( index, text, trackChanges, formatting ); p.PackagePart = this.PackagePart; + return p; } @@ -2756,6 +2556,7 @@ public override Paragraph InsertParagraph( string text ) { var p = base.InsertParagraph( text ); p.PackagePart = this.PackagePart; + return p; } @@ -2763,6 +2564,7 @@ public override Paragraph InsertParagraph( string text, bool trackChanges ) { var p = base.InsertParagraph( text, trackChanges ); p.PackagePart = this.PackagePart; + return p; } @@ -2784,6 +2586,7 @@ public Paragraph[] InsertParagraphs( string text ) p.PackagePart = this.PackagePart; paragraphs.Add( p ); } + return paragraphs.ToArray(); } @@ -2794,6 +2597,7 @@ public override Paragraph InsertEquation( String equation, Alignment align = Ali { var p = base.InsertEquation( equation, align ); p.PackagePart = this.PackagePart; + return p; } @@ -3093,7 +2897,13 @@ public void SetDefaultFont( Font fontFamily, double fontSize = 11d, Color? fontC - + public T AddChart() where T : Chart, new() + { + var chart = new T(); + chart.PackagePart = CreateChartPackagePart(); + chart.RelationPackage = CreateChartRelationShip(chart.PackagePart); + return chart; + } #endregion #region Internal Methods @@ -3933,19 +3743,50 @@ internal long GetNextFreeDocPrId() return nextFreeDocPrId.Value; } - var xNameBookmarkStart = XName.Get( "bookmarkStart", Document.w.NamespaceName ); - var xNameDocPr = XName.Get( "docPr", Document.wp.NamespaceName ); - long newDocPrId = 1; - HashSet existingIds = new HashSet(); - foreach( var bookmarkId in Xml.Descendants() ) + var existingIds = new HashSet(); + //In Body + existingIds.UnionWith( this.GetExistingDocPrIds( this.Xml ) ); + + foreach( var section in this.Sections ) { - if( bookmarkId.Name != xNameBookmarkStart && bookmarkId.Name != xNameDocPr ) - continue; + // In Headers. + var headers = section.Headers; + if( headers != null ) + { + if( headers.Odd != null ) + { + existingIds.UnionWith( this.GetExistingDocPrIds( headers.Odd.Xml ) ); + } + if( headers.Even != null ) + { + existingIds.UnionWith( this.GetExistingDocPrIds( headers.Even.Xml ) ); + } + if( headers.First != null ) + { + existingIds.UnionWith( this.GetExistingDocPrIds( headers.First.Xml ) ); + } + } - var idAtt = bookmarkId.Attributes().FirstOrDefault( x => x.Name.LocalName == "id" ); - if( idAtt != null ) - existingIds.Add( idAtt.Value ); + // In Footers. + var footers = section.Footers; + if( footers != null ) + { + if( footers.Odd != null ) + { + existingIds.UnionWith( this.GetExistingDocPrIds( footers.Odd.Xml ) ); + } + + if( footers.Even != null ) + { + existingIds.UnionWith( this.GetExistingDocPrIds( footers.Even.Xml ) ); + } + + if( footers.First != null ) + { + existingIds.UnionWith( this.GetExistingDocPrIds( footers.First.Xml ) ); + } + } } if( existingIds.Count > 0 ) @@ -3972,74 +3813,335 @@ from s in _styles.Element( XName.Get( "styles", Document.w.NamespaceName ) ).Ele select s ).FirstOrDefault(); - if( normalStyle != null ) + if( normalStyle != null ) + { + var styleId = normalStyle.Attribute( XName.Get( "styleId", Document.w.NamespaceName ) ); + if( styleId != null ) + { + _defaultParagraphStyleId = styleId.Value; + } + } + + if( _defaultParagraphStyleId == null ) + { + _defaultParagraphStyleId = "Normal"; + } + + return _defaultParagraphStyleId; + } + + internal static void PrepareDocument( ref Document document, DocumentTypes documentType ) + { + // Store this document in memory + var ms = new MemoryStream(); + + // Create the docx package + var package = Package.Open( ms, FileMode.Create, FileAccess.ReadWrite ); + + Document.PostCreation( package, documentType ); + document = Document.Load( ms, document, documentType ); + } + + internal void UpdateCacheSections() + { + ClearParagraphsCache(); + _cachedSections = this.GetSections(); + } + + internal Paragraph GetNextParagraph( Paragraph refParagraph ) + { + if( refParagraph == null ) + return null; + + var paragraphs = this.GetParagraphs(); + + var index = paragraphs.FindIndex( p => p._endIndex == refParagraph._endIndex ); + + if( ( index < 0 ) || ( index >= paragraphs.Count - 1 ) ) + return null; + + return paragraphs[ index + 1 ]; + } + + internal Paragraph GetPreviousParagraph( Paragraph refParagraph ) + { + if( refParagraph == null ) + return null; + + var paragraphs = this.GetParagraphs(); + + var index = paragraphs.FindIndex( p => p._endIndex == refParagraph._endIndex ); + + if( index < 1 ) + return null; + + return paragraphs[ index - 1 ]; + } + + #endregion + + #region Private Methods + + + + + + + + + + + + + + + + + private void MergeDocumentsPackages( Document remote_document, MergingMode mergingMode, out XDocument remote_mainDoc, out XElement remote_body, out XElement local_body, out PackagePartCollection ppc ) + { + // We don't want to effect the original XDocument, so create a new one from the old one. + remote_mainDoc = new XDocument( remote_document._mainDoc ); + XDocument remote_footnotes = null; + if( remote_document._footnotes != null ) + { + remote_footnotes = new XDocument( remote_document._footnotes ); + } + + XDocument remote_endnotes = null; + if( remote_document._endnotes != null ) + { + remote_endnotes = new XDocument( remote_document._endnotes ); + } + + // Get the body of the remote document. + remote_body = remote_mainDoc.Root.Element( XName.Get( "body", w.NamespaceName ) ); + // Get the body of the local document. + local_body = _mainDoc.Root.Element( XName.Get( "body", w.NamespaceName ) ); + + // Remove all header and footer references. + remote_mainDoc.Descendants( XName.Get( "headerReference", w.NamespaceName ) ).Remove(); + remote_mainDoc.Descendants( XName.Get( "footerReference", w.NamespaceName ) ).Remove(); + + // Every file that is missing from the local document will have to be copied, every file that already exists will have to be merged. + ppc = remote_document._package.GetParts(); + var ignoreContentTypes = new List + { + "application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml", + "application/vnd.openxmlformats-officedocument.wordprocessingml.header+xml", + "application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml", + "application/vnd.openxmlformats-package.core-properties+xml", + "application/vnd.openxmlformats-officedocument.extended-properties+xml", + ContentTypeApplicationRelationShipXml + }; + + // Check if each PackagePart pp exists in this document. + foreach( PackagePart remote_pp in ppc ) + { + if( ignoreContentTypes.Contains( remote_pp.ContentType ) || _imageContentTypes.Contains( remote_pp.ContentType ) ) + continue; + + // If this external PackagePart already exits then we must merge them. + if( _package.PartExists( remote_pp.Uri ) ) + { + var local_pp = _package.GetPart( remote_pp.Uri ); + switch( remote_pp.ContentType ) + { + case "application/vnd.openxmlformats-officedocument.custom-properties+xml": + merge_customs( remote_pp, local_pp, remote_mainDoc ); + break; + + + + // Merge footnotes/endnotes before merging styles, then set the remote_footnotes to the just updated footnotes + case "application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml": + merge_footnotes( remote_pp, local_pp, remote_mainDoc, remote_document, remote_footnotes ); + break; + + case "application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml": + merge_endnotes( remote_pp, local_pp, remote_mainDoc, remote_document, remote_endnotes ); + break; + + case "application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml": + merge_styles( remote_pp, local_pp, remote_mainDoc, remote_document, _footnotes, _endnotes, mergingMode ); + break; + + // Merges Styles after merging the footnotes, so the changes will be applied to the correct document/footnotes. + case "application/vnd.ms-word.stylesWithEffects+xml": + merge_styles( remote_pp, local_pp, remote_mainDoc, remote_document, remote_footnotes, remote_endnotes, mergingMode ); + break; + + case "application/vnd.openxmlformats-officedocument.wordprocessingml.fontTable+xml": + merge_fonts( remote_pp, local_pp, remote_mainDoc, remote_document ); + break; + + case "application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml": + merge_numbering( remote_pp, local_pp, remote_mainDoc, remote_document ); + break; + } + } + // If this external PackagePart does not exits in the internal document then we can simply copy it. + else + { + var packagePart = clonePackagePart( remote_pp ); + switch( remote_pp.ContentType ) + { + + + case "application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml": + _endnotesPart = packagePart; + _endnotes = remote_endnotes; + break; + + case "application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml": + _footnotesPart = packagePart; + _footnotes = remote_footnotes; + break; + + case "application/vnd.openxmlformats-officedocument.custom-properties+xml": + break; + + case "application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml": + _stylesPart = packagePart; + using( TextReader tr = new StreamReader( _stylesPart.GetStream() ) ) + _styles = XDocument.Load( tr ); + break; + + case "application/vnd.ms-word.stylesWithEffects+xml": + _stylesWithEffectsPart = packagePart; + using( TextReader tr = new StreamReader( _stylesWithEffectsPart.GetStream() ) ) + _stylesWithEffects = XDocument.Load( tr ); + break; + + case "application/vnd.openxmlformats-officedocument.wordprocessingml.fontTable+xml": + _fontTablePart = packagePart; + using( TextReader tr = new StreamReader( _fontTablePart.GetStream() ) ) + _fontTable = XDocument.Load( tr ); + break; + + case "application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml": + _numberingPart = packagePart; + using( TextReader tr = new StreamReader( _numberingPart.GetStream() ) ) + _numbering = XDocument.Load( tr ); + break; + + } + + clonePackageRelationship( remote_document, remote_pp, remote_mainDoc ); + } + } + + } + + private void MergeDocumentsRelations( Document remote_document, XDocument remote_mainDoc, XElement remote_body, PackagePartCollection ppc ) + { + foreach( var hyperlink_rel in remote_document.PackagePart.GetRelationshipsByType( "http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink" ) ) + { + var old_rel_Id = hyperlink_rel.Id; + var new_rel_Id = this.PackagePart.CreateRelationship( hyperlink_rel.TargetUri, hyperlink_rel.TargetMode, hyperlink_rel.RelationshipType ).Id; + var hyperlink_refs = remote_mainDoc.Descendants( XName.Get( "hyperlink", w.NamespaceName ) ); + foreach( var hyperlink_ref in hyperlink_refs ) + { + var a0 = hyperlink_ref.Attribute( XName.Get( "id", r.NamespaceName ) ); + if( a0 != null && a0.Value == old_rel_Id ) + { + a0.SetValue( new_rel_Id ); + } + } + } + + foreach( var oleObject_rel in remote_document.PackagePart.GetRelationshipsByType( "http://schemas.openxmlformats.org/officeDocument/2006/relationships/oleObject" ) ) + { + var oldRelationshipID = oleObject_rel.Id; + var newRelationshipID = this.PackagePart.CreateRelationship( oleObject_rel.TargetUri, oleObject_rel.TargetMode, oleObject_rel.RelationshipType ).Id; + var references = remote_mainDoc.Descendants( XName.Get( "OLEObject", "urn:schemas-microsoft-com:office:office" ) ); + + foreach( var reference in references ) + { + var attribute = reference.Attribute( XName.Get( "id", r.NamespaceName ) ); + if( attribute != null && attribute.Value == oldRelationshipID ) + attribute.SetValue( newRelationshipID ); + } + } + + var remoteNumberingRelationship = remote_document.PackagePart.GetRelationshipsByType( "http://schemas.openxmlformats.org/officeDocument/2006/relationships/numbering" ); + var localNumberingRelationship = this.PackagePart.GetRelationshipsByType( "http://schemas.openxmlformats.org/officeDocument/2006/relationships/numbering" ); + if( ( remoteNumberingRelationship.Count() > 0 ) && ( localNumberingRelationship.Count() == 0 ) ) + { + foreach( var rel in remoteNumberingRelationship ) + { + this.PackagePart.CreateRelationship( rel.TargetUri, rel.TargetMode, rel.RelationshipType ); + } + } + + //var remoteCustomXmlRelationship = remote_document.PackagePart.GetRelationshipsByType( "http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXml" ); + //var localCustomXmlRelationship = this.PackagePart.GetRelationshipsByType( "http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXml" ); + //if( ( remoteCustomXmlRelationship.Count() > 0 ) && ( localCustomXmlRelationship.Count() == 0 ) ) + //{ + // foreach( var rel in remoteCustomXmlRelationship ) + // { + // var uri = new Uri( "../" + rel.TargetUri.OriginalString, UriKind.Relative); + // this.PackagePart.CreateRelationship( uri, rel.TargetMode, rel.RelationshipType ); + // } + //} + + if( ( remote_document._fontTablePart != null ) && ( this._fontTablePart != null ) ) + { + var remoteFontRelationship = remote_document._fontTablePart.GetRelationshipsByType( "http://schemas.openxmlformats.org/officeDocument/2006/relationships/font" ); + var localFontRelationship = this._fontTablePart.GetRelationshipsByType( "http://schemas.openxmlformats.org/officeDocument/2006/relationships/font" ); + if( ( remoteFontRelationship.Count() > 0 ) && ( localFontRelationship.Count() == 0 ) ) + { + foreach( var rel in remoteFontRelationship ) + { + this._fontTablePart.CreateRelationship( rel.TargetUri, rel.TargetMode, rel.RelationshipType ); + } + } + } + + foreach( PackagePart remote_pp in ppc ) { - var styleId = normalStyle.Attribute( XName.Get( "styleId", Document.w.NamespaceName ) ); - if( styleId != null ) + if( _imageContentTypes.Contains( remote_pp.ContentType ) ) { - _defaultParagraphStyleId = styleId.Value; + merge_images( remote_pp, remote_document, remote_mainDoc, remote_pp.ContentType ); } } - if( _defaultParagraphStyleId == null ) + int id = 0; + var local_docPrs = _mainDoc.Root.Descendants( XName.Get( "docPr", wp.NamespaceName ) ); + foreach( var local_docPr in local_docPrs ) { - _defaultParagraphStyleId = "Normal"; + var a_id = local_docPr.Attribute( XName.Get( "id" ) ); + int a_id_value; + if( a_id != null && HelperFunctions.TryParseInt( a_id.Value, out a_id_value ) ) + { + if( a_id_value > id ) + { + id = a_id_value; + } + } } + id++; - return _defaultParagraphStyleId; - } - - internal static void PrepareDocument( ref Document document, DocumentTypes documentType ) - { - // Store this document in memory - var ms = new MemoryStream(); - - // Create the docx package - var package = Package.Open( ms, FileMode.Create, FileAccess.ReadWrite ); - - Document.PostCreation( package, documentType ); - document = Document.Load( ms, document, documentType ); - } - - internal void UpdateCacheSections() - { - _cachedSections = this.GetSections(); - } - - internal Paragraph GetNextParagraph( Paragraph refParagraph ) - { - if( refParagraph == null ) - return null; - - var paragraphs = this.GetParagraphs(); - - var index = paragraphs.FindIndex( p => p._endIndex == refParagraph._endIndex ); - - if( ( index < 0 ) || ( index >= paragraphs.Count - 1 ) ) - return null; - - return paragraphs[ index + 1 ]; + // docPr must be sequential + var docPrs = remote_body.Descendants( XName.Get( "docPr", wp.NamespaceName ) ); + foreach( var docPr in docPrs ) + { + docPr.SetAttributeValue( XName.Get( "id" ), id ); + id++; + } } - internal Paragraph GetPreviousParagraph( Paragraph refParagraph ) + private void AddRootAttributes( XDocument remote_mainDoc ) { - if( refParagraph == null ) - return null; - - var paragraphs = this.GetParagraphs(); - - var index = paragraphs.FindIndex( p => p._endIndex == refParagraph._endIndex ); - - if( index < 1 ) - return null; - - return paragraphs[ index - 1 ]; + // Copy any missing root attributes to the local document. + foreach( XAttribute a in remote_mainDoc.Root.Attributes() ) + { + if( _mainDoc.Root.Attribute( a.Name ) == null ) + { + _mainDoc.Root.SetAttributeValue( a.Name, a.Value ); + } + } } - #endregion - - #region Private Methods - private void DeleteHeadersOrFooters( bool isHeader, bool deleteReferences = true ) { var reference = isHeader ? "header" : "footer"; @@ -4139,7 +4241,12 @@ private void merge_images( PackagePart remote_pp, Document remote_document, XDoc } } - var remote_Id = remote_rel.Id; + this.MergeImagesCore( remote_rel, remote_pp, remote_mainDoc, contentType, this.PackagePart ); + } + + private void MergeImagesCore( PackageRelationship relationship, PackagePart remote_pp, XDocument remote_mainDoc, String contentType, PackagePart packagePartToSaveTo ) + { + var remote_Id = relationship.Id; bool found = false; using( Stream s_read = remote_pp.GetStream() ) @@ -4157,17 +4264,20 @@ private void merge_images( PackagePart remote_pp, Document remote_document, XDoc // This image already exists in this document. found = true; - var local_rel = this.PackagePart.GetRelationships().Where( r => r.TargetUri.OriginalString.Equals( part.Uri.OriginalString.Replace( "/word/", "" ) ) ).FirstOrDefault(); + var local_rel = packagePartToSaveTo.GetRelationships().Where( r => r.TargetUri.OriginalString.Equals( part.Uri.OriginalString.Replace( "/word/", "" ) ) ).FirstOrDefault(); if( local_rel == null ) { - local_rel = this.PackagePart.GetRelationships().Where( r => r.TargetUri.OriginalString.Equals( part.Uri.OriginalString ) ).FirstOrDefault(); + local_rel = packagePartToSaveTo.GetRelationships().Where( r => r.TargetUri.OriginalString.Equals( part.Uri.OriginalString ) ).FirstOrDefault(); if( local_rel == null ) { // Look in _numbering. - local_rel = _numberingPart.GetRelationships().Where( r => r.TargetUri.OriginalString.Equals( part.Uri.OriginalString.Replace( "/word/", "" ) ) ).FirstOrDefault(); - if( local_rel == null ) + if( _numberingPart != null ) { - local_rel = _numberingPart.GetRelationships().Where( r => r.TargetUri.OriginalString.Equals( part.Uri.OriginalString ) ).FirstOrDefault(); + local_rel = _numberingPart.GetRelationships().Where( r => r.TargetUri.OriginalString.Equals( part.Uri.OriginalString.Replace( "/word/", "" ) ) ).FirstOrDefault(); + if( local_rel == null ) + { + local_rel = _numberingPart.GetRelationships().Where( r => r.TargetUri.OriginalString.Equals( part.Uri.OriginalString ) ).FirstOrDefault(); + } } } } @@ -4181,6 +4291,11 @@ private void merge_images( PackagePart remote_pp, Document remote_document, XDoc // Replace all instances of remote_Id in the local document with local_Id (for shapes) this.ReplaceAllRemoteID( remote_mainDoc, "imagedata", "id", v.NamespaceName, remote_Id, new_Id ); } + else + { + // Using same image in header/footers for document1 and document2. + this.CreateRelationshipForImage( remote_pp.Uri, remote_Id, remote_mainDoc, packagePartToSaveTo ); + } break; } @@ -4209,28 +4324,32 @@ private void merge_images( PackagePart remote_pp, Document remote_document, XDoc } } - var pr = this.PackagePart.CreateRelationship( new Uri( new_uri, UriKind.Relative ), TargetMode.Internal, RelationshipImage ); - - var new_Id = pr.Id; + this.CreateRelationshipForImage( new Uri( new_uri, UriKind.Relative ), remote_Id, remote_mainDoc, packagePartToSaveTo ); + } + } - //Check if the remote relationship id is a default rId from Word - Match relationshipID = Regex.Match( remote_Id, @"rId\d+", RegexOptions.IgnoreCase ); + private void CreateRelationshipForImage( Uri newUri, string remote_Id, XDocument remote_mainDoc, PackagePart packagePartToSaveTo ) + { + var pr = packagePartToSaveTo.CreateRelationship( newUri, TargetMode.Internal, RelationshipImage ); + var new_Id = pr.Id; - // Replace all instances of remote_Id in the local document with local_Id - this.ReplaceAllRemoteID( remote_mainDoc, "blip", "embed", a.NamespaceName, remote_Id, new_Id ); + //Check if the remote relationship id is a default rId from Word + Match relationshipID = Regex.Match( remote_Id, @"rId\d+", RegexOptions.IgnoreCase ); - if( !relationshipID.Success ) - { - // Replace all instances of remote_Id in the local document with local_Id - this.ReplaceAllRemoteID( _mainDoc, "blip", "embed", a.NamespaceName, remote_Id, new_Id ); + // Replace all instances of remote_Id in the local document with local_Id + this.ReplaceAllRemoteID( remote_mainDoc, "blip", "embed", a.NamespaceName, remote_Id, new_Id ); - // Replace all instances of remote_Id in the local document with local_Id (for shapes) - this.ReplaceAllRemoteID( _mainDoc, "imagedata", "id", v.NamespaceName, remote_Id, new_Id ); - } + if( !relationshipID.Success ) + { + // Replace all instances of remote_Id in the local document with local_Id + this.ReplaceAllRemoteID( _mainDoc, "blip", "embed", a.NamespaceName, remote_Id, new_Id ); // Replace all instances of remote_Id in the local document with local_Id (for shapes) - this.ReplaceAllRemoteID( remote_mainDoc, "imagedata", "id", v.NamespaceName, remote_Id, new_Id ); + this.ReplaceAllRemoteID( _mainDoc, "imagedata", "id", v.NamespaceName, remote_Id, new_Id ); } + + // Replace all instances of remote_Id in the local document with local_Id (for shapes) + this.ReplaceAllRemoteID( remote_mainDoc, "imagedata", "id", v.NamespaceName, remote_Id, new_Id ); } private void ReplaceAllRemoteID( XDocument remote_mainDoc, string localName, string localNameAttribute, string namespaceName, string remote_Id, string new_Id ) @@ -4664,17 +4783,6 @@ private void merge_styles( PackagePart remote_pp, PackagePart local_pp, XDocumen } // Create a new style from the remote style and add it to the local document style. - - if( this.IsDefaultParagraphStyle( remote_style ) ) - { - // Update remote document default paragraph with default remote document values. - // This way, the remote default document values won't be necessary anymore. - // The final merged document default paragraph will be used by initial document only (not by remote document). - this.MergeDefaultParagraphStyles( remote, remote_style ); - - remote_style.Attribute( XName.Get( "default", w.NamespaceName ) ).Remove(); - } - guuid = Guid.NewGuid().ToString(); // Set the styleId and name in the remote_style to this new Guid remote_style.SetAttributeValue( XName.Get( "styleId", w.NamespaceName ), guuid ); @@ -4709,6 +4817,64 @@ private void merge_styles( PackagePart remote_pp, PackagePart local_pp, XDocumen { e_styleId.SetValue( guuid ); } + + var tablePrs = ( + from s in remote._styles.Element( Document.w + "styles" ).Elements( Document.w + "style" ) + let type = s.Attribute( XName.Get( "type", Document.w.NamespaceName ) ) + where ( ( type != null ) && ( ( type.Value == "table" ) ) ) + select s.Element( XName.Get( "tblPr", Document.w.NamespaceName ) ) + ); + foreach( var tblPr in tablePrs ) + { + var tblInd = tblPr.Element( XName.Get( "tblInd", Document.w.NamespaceName ) ); + if( tblInd != null ) + { + var w = tblInd.Attribute( XName.Get( "w", Document.w.NamespaceName ) ); + if( ( w != null ) && ( w.Value == "0" ) ) + { + tblInd.Remove(); + } + } + } + } + + if( this.IsDefaultParagraphStyle( remote_style ) ) + { + // Update remote document default paragraph with default remote document values. + // This way, the remote default document values won't be necessary anymore. + // The final merged document default paragraph will be used by initial document only (not by remote document). + this.MergeDefaultParagraphStyles( remote, remote_style ); + + remote_style.Attribute( XName.Get( "default", w.NamespaceName ) ).Remove(); + + foreach( var p in remote_mainDoc.Root.Descendants( XName.Get( "p", w.NamespaceName ) ) ) + { + if( ( p.Parent != null ) && ( p.Parent.Name != null ) && ( p.Parent.Name.LocalName == "tc" ) ) + continue; + + var pPr = p.Element( XName.Get( "pPr", w.NamespaceName ) ); + if( pPr == null ) + { + p.Add( new XElement( XName.Get( "pPr", w.NamespaceName ) ) ); + pPr = p.Element( XName.Get( "pPr", w.NamespaceName ) ); + } + + var pStyle = pPr.Element( XName.Get( "pStyle", w.NamespaceName ) ); + if( pStyle == null ) + { + pPr.Add( new XElement( XName.Get( "pStyle", w.NamespaceName ) ) ); + pStyle = pPr.Element( XName.Get( "pStyle", w.NamespaceName ) ); + pStyle.SetAttributeValue( XName.Get( "val", w.NamespaceName ), guuid ); + } + else + { + var e_styleId = pStyle.Attribute( XName.Get( "val", w.NamespaceName ) ); + if( ( e_styleId != null ) && e_styleId.Value.Equals( styleId.Value ) ) + { + e_styleId.SetValue( guuid ); + } + } + } } if( remote_endnotes != null ) @@ -4818,6 +4984,9 @@ private void merge_styles( PackagePart remote_pp, PackagePart local_pp, XDocumen + + + @@ -5076,6 +5245,29 @@ private Section InsertSection( bool trackChanges, bool isPageBreak ) } } + private void ManageSectionBreak( bool append, bool useSectionBreak, XElement remote_body, XElement local_body ) + { + if( useSectionBreak ) + { + // append : Move local body section to the last paragraph of the body. + // insert : Move Remote Body section to the last paragraph of the body. + this.MoveSectionIntoLastParagraph( append ? local_body : remote_body ); + } + else + { + if( append ) + { + // The last section of local will become the last section of remote(will be the last section of the resulting document). + this.ReplaceLastSection( local_body, remote_body ); + } + else + { + // The last section of remote is removed. The last section of local will be the last section of the resulting document. + this.RemoveLastSection( remote_body ); + } + } + } + private void MoveSectionIntoLastParagraph( XElement body ) { Debug.Assert( body != null, "body shouldn't be null." ); @@ -5086,7 +5278,7 @@ private void MoveSectionIntoLastParagraph( XElement body ) var bodyLastParagraph = body.Elements( XName.Get( "p", Document.w.NamespaceName ) ).LastOrDefault(); if( bodyLastParagraph == null ) { - body.AddFirst( new XElement( XName.Get( "p", Document.w.NamespaceName ) ) ); + body.Add( new XElement( XName.Get( "p", Document.w.NamespaceName ) ) ); bodyLastParagraph = body.Elements( XName.Get( "p", Document.w.NamespaceName ) ).LastOrDefault(); } var bodyLastParagraphProperties = bodyLastParagraph.Element( XName.Get( "pPr", Document.w.NamespaceName ) ); @@ -5134,58 +5326,19 @@ private void ReplaceLastSection( XElement first, XElement second ) private void InsertChart( Chart chart, Paragraph paragraph, float width = 432f, float height = 252f ) { - Paragraph p; - - // Create a new chart part uri. - var chartPartUriPath = String.Empty; - var chartIndex = 1; - do - { - chartPartUriPath = String.Format( "/word/charts/chart{0}.xml", chartIndex ); - chartIndex++; - } while( _package.PartExists( new Uri( chartPartUriPath, UriKind.Relative ) ) ); - - // Create chart part. - var chartPackagePart = _package.CreatePart( new Uri( chartPartUriPath, UriKind.Relative ), "application/vnd.openxmlformats-officedocument.drawingml.chart+xml", CompressionOption.Normal ); - - // Create a new chart relationship - var relID = this.GetNextFreeRelationshipID(); - var rel = this.PackagePart.CreateRelationship( chartPackagePart.Uri, TargetMode.Internal, "http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart", relID ); + var p = this.CreateChartElement( chart, paragraph, width, height ); + p.Xml.Add( chart.Xml ); - // Save a chart info the chartPackagePart - if( paragraph == null ) - { - using( TextWriter tw = new StreamWriter( new PackagePartStream( chartPackagePart.GetStream( FileMode.Create, FileAccess.Write ) ) ) ) - { - chart.Xml.Save( tw ); - } - p = InsertParagraph(); - } - else - { - using( TextWriter tw = new StreamWriter( chartPackagePart.GetStream( FileMode.Create, FileAccess.Write ) ) ) - { - chart.Xml.Save( tw ); - } - p = paragraph; - } - - var chartWidth = width * Picture.EmusInPixel; - var chartHeight = height * Picture.EmusInPixel; + // Extract the attribute id from the Chart Xml. + var docPr = + ( + from e in p.Xml.Elements().Last().Descendants() + where e.Name.LocalName.Equals( "docPr" ) + select e + ).Single(); - // Insert a new chart into a paragraph. - var chartElement = new XElement( XName.Get( "r", w.NamespaceName ), - new XElement( XName.Get( "drawing", w.NamespaceName ), - new XElement( XName.Get( "inline", wp.NamespaceName ), - new XElement( XName.Get( "extent", wp.NamespaceName ), new XAttribute( "cx", chartWidth ), new XAttribute( "cy", chartHeight ) ), - new XElement( XName.Get( "effectExtent", wp.NamespaceName ), new XAttribute( "l", "0" ), new XAttribute( "t", "0" ), new XAttribute( "r", "19050" ), new XAttribute( "b", "19050" ) ), - new XElement( XName.Get( "docPr", wp.NamespaceName ), new XAttribute( "id", "1" ), new XAttribute( "name", "chart" ) ), - new XElement( XName.Get( "graphic", a.NamespaceName ), - new XElement( XName.Get( "graphicData", a.NamespaceName ), - new XAttribute( "uri", c.NamespaceName ), - new XElement( XName.Get( "chart", c.NamespaceName ), - new XAttribute( XName.Get( "id", r.NamespaceName ), relID ) ) ) ) ) ) ); - p.Xml.Add( chartElement ); + // Set its value to a unique id. + docPr.SetAttributeValue( "id", this.Document.GetNextFreeDocPrId().ToString() ); } private void UpdateNoteXmlFromContent( XElement noteXml, Paragraph noteParagraph, object footnoteContent, Formatting formatting ) @@ -5231,17 +5384,93 @@ private int GetMaxId( XElement xElement ) return Int32.Parse( lastId.Value ) + 1; } + private HashSet GetExistingDocPrIds( XElement xElement ) + { + var result = new HashSet(); + + if( xElement == null ) + return result; + + var xNameBookmarkStart = XName.Get( "bookmarkStart", Document.w.NamespaceName ); + var xNameDocPr = XName.Get( "docPr", Document.wp.NamespaceName ); + + foreach( var id in xElement.Descendants() ) + { + if( ( id.Name != xNameBookmarkStart ) && ( id.Name != xNameDocPr ) ) + continue; + + var idAtt = id.Attributes().FirstOrDefault( x => x.Name.LocalName == "id" ); + if( idAtt != null ) + { + result.Add( idAtt.Value ); + } + } + + return result; + } + + + + + #endregion + + #region Internal Methods + + internal Paragraph CreateChartElement( Chart chart, Paragraph paragraph, float width, float height ) + { + if (chart.PackagePart == null) + { + chart.PackagePart = this.CreateChartPackagePart(); + chart.RelationPackage = this.CreateChartRelationShip(chart.PackagePart); + } + var relID = chart.RelationPackage.Id.ToString(); + + // Save a chart info the chartPackagePart + var p = ( paragraph == null ) ? InsertParagraph() : paragraph; + + using( TextWriter tw = new StreamWriter( chart.PackagePart.GetStream( FileMode.Create, FileAccess.Write ) ) ) + { + chart.ExternalXml.Save( tw ); + } + + // Insert a new chart into a paragraph. + chart.SetInternalChartSettings( relID, width, height ); + + return p; + } + + internal PackagePart CreateChartPackagePart() + { + // Create a new chart part uri. + var chartPartUriPath = String.Empty; + var chartIndex = 1; + do + { + chartPartUriPath = String.Format("/word/charts/chart{0}.xml", chartIndex); + chartIndex++; + } while (_package.PartExists(new Uri(chartPartUriPath, UriKind.Relative))); + + // Create chart part. + var chartPackagePart = _package.CreatePart(new Uri(chartPartUriPath, UriKind.Relative), "application/vnd.openxmlformats-officedocument.drawingml.chart+xml", CompressionOption.Normal); + return chartPackagePart; + } + internal PackageRelationship CreateChartRelationShip(PackagePart chartPackagePart) + { + // Create a new chart relationship + var relID = this.GetNextFreeRelationshipID(); + return this.PackagePart.CreateRelationship(chartPackagePart.Uri, TargetMode.Internal, "http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart", relID); + } #endregion #region Constructors internal Document( Document document, XElement xml ) - : base( document, xml ) + : base( document, xml ) { Paragraph.ResetDefaultValues(); } diff --git a/Xceed.Document.NET/Src/Footer.cs b/Xceed.Document.NET/Src/Footer.cs index a1a6d702..a522e87f 100644 --- a/Xceed.Document.NET/Src/Footer.cs +++ b/Xceed.Document.NET/Src/Footer.cs @@ -168,8 +168,20 @@ public override Paragraph InsertParagraph( int index, string text, bool trackCha public override Paragraph InsertParagraph( string text ) { - var p = base.InsertParagraph( text ); + Paragraph p = null; + + if( this.Paragraphs.Count == 0 ) + { + p = base.InsertParagraph( text ); + p.StyleId = "footer"; + } + else + { + p = base.InsertParagraph( text ); + } + p.PackagePart = this.PackagePart; + return p; } diff --git a/Xceed.Document.NET/Src/Formatting.cs b/Xceed.Document.NET/Src/Formatting.cs index 7d4b177f..f4450263 100644 --- a/Xceed.Document.NET/Src/Formatting.cs +++ b/Xceed.Document.NET/Src/Formatting.cs @@ -37,6 +37,7 @@ public class Formatting : IComparable private Script? _script; private Highlight? _highlight; private Color? _shading; + private ShadingPattern _shadingPattern; private Border _border; private double? _size; private Color? _fontColor; @@ -163,7 +164,7 @@ public double? Size double? temp = value * 2; // Accepting only whole number or half number. - if( temp - (int)temp != 0 ) + if( temp - ( int )temp != 0 ) { if( value.HasValue ) { @@ -260,7 +261,7 @@ public double? Spacing { double? temp = value * 20; - if( temp - (int)temp == 0 ) + if( temp - ( int )temp == 0 ) { if( value > -1585 && value < 1585 ) _spacing = value; @@ -306,6 +307,7 @@ public Highlight? Highlight /// /// Shading color. /// + [Obsolete( "This property is obsolete and should no longer be used. Use the ShadingPattern property instead." )] public Color? Shading { get @@ -318,6 +320,18 @@ public Color? Shading } } + public ShadingPattern ShadingPattern + { + get + { + return _shadingPattern; + } + set + { + _shadingPattern = value; + } + } + public Border Border { get @@ -665,7 +679,7 @@ public Formatting Clone() clone.FontFamily = _fontFamily; clone.Hidden = _hidden; clone.Highlight = _highlight; - clone.Shading = _shading; + clone.ShadingPattern = _shadingPattern; clone.Border = _border; clone.Italic = _italic; if( _kerning.HasValue ) @@ -702,7 +716,6 @@ public Formatting Clone() return clone; } - public static Formatting Parse( XElement rPr, Formatting formatting = null ) { if( formatting == null ) @@ -874,7 +887,7 @@ public static Formatting Parse( XElement rPr, Formatting formatting = null ) var fill = option.GetAttribute( XName.Get( "fill", Document.w.NamespaceName ) ); if( !string.IsNullOrEmpty( fill ) ) { - formatting.Shading = HelperFunctions.GetColorFromHtml( fill ); + formatting.ShadingPattern = new ShadingPattern() { Fill = HelperFunctions.GetColorFromHtml( fill ) }; } break; case "bdr": @@ -894,7 +907,7 @@ public static Formatting Parse( XElement rPr, Formatting formatting = null ) public int CompareTo( object obj ) { - Formatting other = (Formatting)obj; + Formatting other = ( Formatting )obj; if( other._hidden != _hidden ) return -1; diff --git a/Xceed.Document.NET/Src/Header.cs b/Xceed.Document.NET/Src/Header.cs index c47969a3..8be4c7d7 100644 --- a/Xceed.Document.NET/Src/Header.cs +++ b/Xceed.Document.NET/Src/Header.cs @@ -177,8 +177,20 @@ public override Paragraph InsertParagraph( int index, string text, bool trackCha public override Paragraph InsertParagraph( string text ) { - var p = base.InsertParagraph( text ); + Paragraph p = null; + + if( this.Paragraphs.Count == 0 ) + { + p = base.InsertParagraph( text ); + p.StyleId = "header"; + } + else + { + p = base.InsertParagraph( text ); + } + p.PackagePart = this.PackagePart; + return p; } diff --git a/Xceed.Document.NET/Src/HelperFunctions.cs b/Xceed.Document.NET/Src/HelperFunctions.cs index d793444e..ea0e78e1 100644 --- a/Xceed.Document.NET/Src/HelperFunctions.cs +++ b/Xceed.Document.NET/Src/HelperFunctions.cs @@ -70,6 +70,21 @@ internal static void CreateRelsPackagePart( Document Document, Uri uri ) } } + internal static void CreateRelsPackagePart(Package package, Uri uri) + { + PackagePart pp = package.CreatePart(uri, Document.ContentTypeApplicationRelationShipXml, CompressionOption.Maximum); + using (TextWriter tw = new StreamWriter(new PackagePartStream(pp.GetStream()))) + { + XDocument d = new XDocument + ( + new XDeclaration("1.0", "UTF-8", "yes"), + new XElement(XName.Get("Relationships", Document.rel.NamespaceName)) + ); + var root = d.Root; + d.Save(tw); + } + } + internal static int GetSize( XElement Xml ) { switch( Xml.Name.LocalName ) @@ -105,32 +120,32 @@ internal static void GetTextRecursive( XElement Xml, ref StringBuilder sb ) sb.Append( ToText( Xml ) ); // Do not read text from Fallback or drawing(a new paragraph will take care of drawing). - var fallbackValue = Xml.Name.Equals( XName.Get( "Fallback", Document.mc.NamespaceName ) ); - var drawingValue = Xml.Name.Equals( XName.Get( "drawing", Document.w.NamespaceName ) ); - if( Xml.HasElements && !fallbackValue && !drawingValue ) + if( Xml.HasElements && Paragraph.CanReadXml(Xml)) foreach( XElement e in Xml.Elements() ) GetTextRecursive( e, ref sb ); } - internal static List GetFormattedText( XElement e ) + internal static List GetFormattedText( Document document, XElement e ) { - List alist = new List(); - GetFormattedTextRecursive( e, ref alist ); + var alist = new List(); + HelperFunctions.GetFormattedTextRecursive( document, e, ref alist ); return alist; } - internal static void GetFormattedTextRecursive( XElement Xml, ref List alist ) + internal static void GetFormattedTextRecursive( Document document, XElement Xml, ref List alist ) { - FormattedText ft = ToFormattedText( Xml ); + var ft = HelperFunctions.ToFormattedText( document, Xml ); FormattedText last = null; if( ft != null ) { if( alist.Count() > 0 ) + { last = alist.Last(); + } - if( last != null && last.CompareTo( ft ) == 0 ) + if( (last != null) && (last.CompareTo( ft ) == 0) ) { // Update text of last entry. last.text += ft.text; @@ -139,21 +154,27 @@ internal static void GetFormattedTextRecursive( XElement Xml, ref List runs ) : base( document, null ) diff --git a/Xceed.Document.NET/Src/PackagePartStream.cs b/Xceed.Document.NET/Src/PackagePartStream.cs index cdb1eb15..032eb17b 100644 --- a/Xceed.Document.NET/Src/PackagePartStream.cs +++ b/Xceed.Document.NET/Src/PackagePartStream.cs @@ -15,27 +15,26 @@ COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at using System.IO; -using System.Threading; -// This classe is used to prevent deadlocks. +// This class is used to prevent deadlocks. // It is based on https://stackoverflow.com/questions/21482820/openxml-hanging-while-writing-elements namespace Xceed.Document.NET { - public class PackagePartStream : Stream + internal class PackagePartStream : Stream { #region Private Members - private static readonly object lockObject = new object(); - private readonly Stream _stream; + private static readonly object s_lockObject = new object(); + private readonly Stream m_stream; #endregion - #region constructors + #region Constructors public PackagePartStream( Stream stream ) { - _stream = stream; + m_stream = stream; } #endregion @@ -46,7 +45,7 @@ public override bool CanRead { get { - return _stream.CanRead; + return m_stream.CanRead; } } @@ -54,7 +53,7 @@ public override bool CanSeek { get { - return _stream.CanSeek; + return m_stream.CanSeek; } } @@ -62,7 +61,7 @@ public override bool CanWrite { get { - return _stream.CanWrite; + return m_stream.CanWrite; } } @@ -70,7 +69,7 @@ public override long Length { get { - return _stream.Length; + return m_stream.Length; } } @@ -78,12 +77,12 @@ public override long Position { get { - return _stream.Position; + return m_stream.Position; } set { - _stream.Position = value; + m_stream.Position = value; } } @@ -93,43 +92,43 @@ public override long Position public override long Seek( long offset, SeekOrigin origin ) { - return _stream.Seek( offset, origin ); + return m_stream.Seek( offset, origin ); } public override void SetLength( long value ) { - _stream.SetLength( value ); + m_stream.SetLength( value ); } public override int Read( byte[] buffer, int offset, int count ) { - return _stream.Read( buffer, offset, count ); + return m_stream.Read( buffer, offset, count ); } public override void Write( byte[] buffer, int offset, int count ) { - lock(lockObject) + lock( s_lockObject ) { - _stream.Write( buffer, offset, count ); + m_stream.Write( buffer, offset, count ); } } public override void Flush() { - lock(lockObject) + lock( s_lockObject ) { - _stream.Flush(); + m_stream.Flush(); } } public override void Close() { - _stream.Close(); + m_stream.Close(); } protected override void Dispose( bool disposing ) { - _stream.Dispose(); + m_stream.Dispose(); } #endregion diff --git a/Xceed.Document.NET/Src/PageNumberType.cs b/Xceed.Document.NET/Src/PageNumberType.cs new file mode 100644 index 00000000..d096664a --- /dev/null +++ b/Xceed.Document.NET/Src/PageNumberType.cs @@ -0,0 +1,140 @@ +/*************************************************************************************** + + DocX – DocX is the community edition of Xceed Words for .NET + + Copyright (C) 2009-2020 Xceed Software Inc. + + This program is provided to you under the terms of the XCEED SOFTWARE, INC. + COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at + https://github.com/xceedsoftware/DocX/blob/master/license.md + + For more features and fast professional support, + pick up Xceed Words for .NET at https://xceed.com/xceed-words-for-net/ + + *************************************************************************************/ + + +using System; +using System.ComponentModel; + +namespace Xceed.Document.NET +{ + public class PageNumberType : INotifyPropertyChanged + { + #region Private Members + + private int? _pageNumberStart; + private int _chapterStyle; + private NumberingFormat _pageNumberFormat; + private ChapterSeparator _chapterNumberSeparator; + + #endregion + + #region Public Properties + + #region PageNumberStart + + public int? PageNumberStart + { + get + { + return _pageNumberStart; + } + set + { + _pageNumberStart = value; + OnPropertyChanged("PageNumberStart"); + } + } + + #endregion + + #region Chapter Style + + public int ChapterStyle + { + get + { + return _chapterStyle; + } + + set + { + if (value <= 9 && value > 0) + { + _chapterStyle = value; + OnPropertyChanged("ChapterStyle"); + } + else + { + throw new Exception("The index number cannot be less than 0 and over 9."); + } + } + } + + #endregion + + #region PageNumberFormat + + public NumberingFormat PageNumberFormat + { + get + { + return _pageNumberFormat; + } + + set + { + _pageNumberFormat = value; + OnPropertyChanged("PageNumberFormat"); + } + } + + #endregion + + #region ChapterNumberSeparator + + public ChapterSeparator ChapterNumberSeparator + { + get + { + return _chapterNumberSeparator; + } + + set + { + _chapterNumberSeparator = value; + OnPropertyChanged("ChapterNumberSeparator"); + } + } + + #endregion + + #endregion + + #region Constructors + + public PageNumberType() + { + _pageNumberStart = null; + _chapterStyle = 1; + _pageNumberFormat = NumberingFormat.decimalNormal; + _chapterNumberSeparator = ChapterSeparator.hyphen; + } + + #endregion + + #region INotifyPropertyChanged + + public event PropertyChangedEventHandler PropertyChanged; + protected void OnPropertyChanged(string propertyName) + { + if (PropertyChanged != null) + { + PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); + } + } + + #endregion + } +} diff --git a/Xceed.Document.NET/Src/Paragraph.cs b/Xceed.Document.NET/Src/Paragraph.cs index a2c55326..8ddfb2cf 100644 --- a/Xceed.Document.NET/Src/Paragraph.cs +++ b/Xceed.Document.NET/Src/Paragraph.cs @@ -122,7 +122,6 @@ internal int OutlineLevel - public ContainerType ParentContainer { get; set; @@ -697,7 +696,7 @@ public List MagicText { if( _magicText == null ) { - _magicText = HelperFunctions.GetFormattedText( Xml ); + _magicText = HelperFunctions.GetFormattedText( this.Document, Xml ); } return _magicText; } @@ -1001,6 +1000,7 @@ public override Table InsertTableBeforeSelf( Table t ) { t = base.InsertTableBeforeSelf( t ); t.PackagePart = this.PackagePart; + return t; } @@ -1176,6 +1176,7 @@ public override Paragraph InsertParagraphBeforeSelf( Paragraph p ) { var p2 = base.InsertParagraphBeforeSelf( p ); p2.PackagePart = this.PackagePart; + return p2; } @@ -1204,6 +1205,7 @@ public override Paragraph InsertParagraphBeforeSelf( string text ) { var p = base.InsertParagraphBeforeSelf( text ); p.PackagePart = this.PackagePart; + return p; } @@ -1233,6 +1235,7 @@ public override Paragraph InsertParagraphBeforeSelf( string text, bool trackChan { var p = base.InsertParagraphBeforeSelf( text, trackChanges ); p.PackagePart = this.PackagePart; + return p; } @@ -1266,6 +1269,7 @@ public override Paragraph InsertParagraphBeforeSelf( string text, bool trackChan { var p = base.InsertParagraphBeforeSelf( text, trackChanges, formatting ); p.PackagePart = this.PackagePart; + return p; } @@ -1381,9 +1385,9 @@ public Paragraph InsertHyperlink( Hyperlink h, int index = 0 ) // Replace the origional run. run.Xml.ReplaceWith ( - splitRun[0], + splitRun[ 0 ], h.Xml, - splitRun[1] + splitRun[ 1 ] ); // Get the first run effected by this Insert @@ -1397,6 +1401,7 @@ public Paragraph InsertHyperlink( Hyperlink h, int index = 0 ) h_xml.SetAttributeValue( Document.r + "id", Id ); _runs = this.Xml.Elements().Last().Elements( XName.Get( "r", Document.w.NamespaceName ) ).ToList(); + return this; } @@ -1478,6 +1483,7 @@ public override Paragraph InsertParagraphAfterSelf( Paragraph p ) { var p2 = base.InsertParagraphAfterSelf( p ); p2.PackagePart = this.PackagePart; + return p2; } @@ -1511,6 +1517,7 @@ public override Paragraph InsertParagraphAfterSelf( string text, bool trackChang { var p = base.InsertParagraphAfterSelf( text, trackChanges, formatting ); p.PackagePart = this.PackagePart; + return p; } @@ -1540,6 +1547,7 @@ public override Paragraph InsertParagraphAfterSelf( string text, bool trackChang { var p = base.InsertParagraphAfterSelf( text, trackChanges ); p.PackagePart = this.PackagePart; + return p; } @@ -1568,6 +1576,7 @@ public override Paragraph InsertParagraphAfterSelf( string text ) { var p = base.InsertParagraphAfterSelf( text ); p.PackagePart = this.PackagePart; + return p; } @@ -1594,50 +1603,9 @@ public override Paragraph InsertParagraphAfterSelf( string text ) /// public void Remove( bool trackChanges ) { - if( trackChanges ) - { - DateTime now = DateTime.Now.ToUniversalTime(); - - List elements = Xml.Elements().ToList(); - List temp = new List(); - for( int i = 0; i < elements.Count(); i++ ) - { - XElement e = elements[i]; - - if( e.Name.LocalName != "del" ) - { - temp.Add( e ); - e.Remove(); - } - - else - { - if( temp.Count() > 0 ) - { - e.AddBeforeSelf( CreateEdit( EditType.del, now, temp.Elements() ) ); - temp.Clear(); - } - } - } - - if( temp.Count() > 0 ) - Xml.Add( CreateEdit( EditType.del, now, temp ) ); - } - else + if( this.Document != null ) { - // If this is the only Paragraph in the Cell(nothing else than a paragraph) then we cannot remove it. - if( ( this.Xml.Parent.Name.LocalName == "tc" ) - && ( this.Xml.Parent.Elements( XName.Get( "p", Document.w.NamespaceName ) ).Count() == 1 ) - && ( this.Xml.Parent.Elements( XName.Get( "altChunk", Document.w.NamespaceName ) ).Count() == 0 ) ) - { - this.Xml.Value = string.Empty; - } - else - { - // Remove this paragraph from the document - this.Xml.Remove(); - this.Xml = null; - } + this.Document.RemoveParagraph( this, trackChanges ); } } @@ -2020,9 +1988,9 @@ public void InsertText( int index, string value, bool trackChanges = false, Form // Replace the origional run parentElement.ReplaceWith ( - splitEdit[0], + splitEdit[ 0 ], insert, - splitEdit[1] + splitEdit[ 1 ] ); break; @@ -2042,9 +2010,9 @@ public void InsertText( int index, string value, bool trackChanges = false, Form // Replace the origional run run.Xml.ReplaceWith ( - splitRun[0], + splitRun[ 0 ], insert, - splitRun[1] + splitRun[ 1 ] ); break; @@ -2084,6 +2052,7 @@ public Paragraph Culture( CultureInfo culture ) this.ApplyTextFormattingProperty( XName.Get( "lang", Document.w.NamespaceName ), string.Empty, new XAttribute( XName.Get( "val", Document.w.NamespaceName ), culture.Name ) ); + return this; } @@ -2175,6 +2144,10 @@ public Paragraph Append( string text, Formatting format ) if( format.Shading.HasValue ) Shading( format.Shading.Value ); + // ShadingPattern + if( format.ShadingPattern != null ) + ShadingPattern( format.ShadingPattern ); + // Border if( format.Border != null ) Border( format.Border ); @@ -2318,25 +2291,36 @@ public Paragraph AppendPicture( Picture p ) // Check to see if the rels file exists and create it if not. if( !Document._package.PartExists( rels_path ) ) { - HelperFunctions.CreateRelsPackagePart( Document, rels_path ); + HelperFunctions.CreateRelsPackagePart( this.Document, rels_path ); } // Check to see if a rel for this Picture exists, create it if not. - var Id = GetOrGenerateRel( p ); + var rel_Id = GetOrGenerateRel( p ); // Add the Picture Xml to the end of the Paragragraph Xml. - Xml.Add( p.Xml ); + this.Xml.Add( p.Xml ); // Extract the attribute id from the Pictures Xml. - var a_id = + var embed_id = ( - from e in Xml.Elements().Last().Descendants() + from e in this.Xml.Elements().Last().Descendants() where e.Name.LocalName.Equals( "blip" ) - select e.Attribute( XName.Get( "embed", "http://schemas.openxmlformats.org/officeDocument/2006/relationships" ) ) + select e.Attribute( XName.Get( "embed", Document.r.NamespaceName ) ) ).Single(); // Set its value to the Pictures relationships id. - a_id.SetValue( Id ); + embed_id.SetValue( rel_Id ); + + // Extract the attribute id from the Pictures Xml. + var docPr = + ( + from e in this.Xml.Elements().Last().Descendants() + where e.Name.LocalName.Equals( "docPr" ) + select e + ).Single(); + + // Set its value to a unique id. + docPr.SetAttributeValue( "id", this.Document.GetNextFreeDocPrId().ToString() ); // For formatting such as .Bold() // _runs = Xml.Elements( XName.Get( "r", Document.w.NamespaceName ) ).Reverse().Take( p.Xml.Elements( XName.Get( "r", Document.w.NamespaceName ) ).Count() ).ToList(); @@ -2359,6 +2343,11 @@ select e.Attribute( XName.Get( "embed", "http://schemas.openxmlformats.org/offic + + + + + @@ -2466,7 +2455,7 @@ public Paragraph AppendEquation( String equation, Alignment align = Alignment.ce /// /// Insert a Picture into a Paragraph at the given text index. - /// If not index is provided defaults to 0. + /// If no index is provided defaults to 0. /// /// The Picture to insert. /// The text index to insert at. @@ -2533,9 +2522,6 @@ public Paragraph InsertPicture( Picture p, int index = 0 ) HelperFunctions.CreateRelsPackagePart( Document, rels_path ); } - // Check to see if a rel for this Picture exists, create it if not. - var Id = GetOrGenerateRel( p ); - XElement p_xml; if( index == 0 ) { @@ -2572,9 +2558,8 @@ public Paragraph InsertPicture( Picture p, int index = 0 ) { // Split this run at the point you want to insert var splitRun = Run.SplitRun( run, index ); - - // Replace the origional run. - run.Xml.ReplaceWith( splitRun[0], p.Xml, splitRun[1] ); + // Replace the original run. + run.Xml.ReplaceWith( splitRun[ 0 ], p.Xml, splitRun[ 1 ] ); // Get the first run effected by this Insert run = GetFirstRunEffectedByEdit( index ); @@ -2584,20 +2569,37 @@ public Paragraph InsertPicture( Picture p, int index = 0 ) } } - // Extract the attribute id from the Pictures Xml. - XAttribute a_id = + // Extract the id attribute from the Pictures Xml. + var embed_id = ( from e in p_xml.Descendants() where e.Name.LocalName.Equals( "blip" ) - select e.Attribute( XName.Get( "embed", "http://schemas.openxmlformats.org/officeDocument/2006/relationships" ) ) + select e.Attribute( XName.Get( "embed", Document.r.NamespaceName ) ) ).Single(); + var rel_id = this.GetOrGenerateRel( p ); + // Set its value to the Pictures relationships id. - a_id.SetValue( Id ); + embed_id.SetValue( rel_id ); + + // Extract the attribute id from the Pictures Xml. + var docPr = + ( + from e in p_xml.Descendants() + where e.Name.LocalName.Equals( "docPr" ) + select e + ).Single(); + + // Set its value to a unique id. + docPr.SetAttributeValue( "id", this.Document.GetNextFreeDocPrId().ToString() ); return this; } + + + + /// /// Add a new TabStopPosition in the current paragraph. /// @@ -2662,14 +2664,15 @@ public Paragraph InsertTabStopPosition( Alignment alignment, float position, Tab newTab.SetAttributeValue( XName.Get( "leader", Document.w.NamespaceName ), leaderString ); var tabsList = tabs.Elements().ToList(); - if( (index >= 0) && (index < tabsList.Count()) ) + if( ( index >= 0 ) && ( index < tabsList.Count() ) ) { - tabsList[index].AddBeforeSelf( newTab ); + tabsList[ index ].AddBeforeSelf( newTab ); } else { tabs.Add( newTab ); } + return this; } @@ -2745,6 +2748,7 @@ public Paragraph AppendLine() public Paragraph Bold( bool isBold = true ) { ApplyTextFormattingProperty( XName.Get( "b", Document.w.NamespaceName ), string.Empty, isBold ? null : new XAttribute( XName.Get( "val", Document.w.NamespaceName ), "0" ) ); + return this; } @@ -2773,6 +2777,7 @@ public Paragraph Bold( bool isBold = true ) public Paragraph Italic( bool isItalic = true ) { ApplyTextFormattingProperty( XName.Get( "i", Document.w.NamespaceName ), string.Empty, isItalic ? null : new XAttribute( XName.Get( "val", Document.w.NamespaceName ), "0" ) ); + return this; } @@ -2802,6 +2807,7 @@ public Paragraph Italic( bool isItalic = true ) public Paragraph Color( Color c ) { ApplyTextFormattingProperty( XName.Get( "color", Document.w.NamespaceName ), string.Empty, new XAttribute( XName.Get( "val", Document.w.NamespaceName ), c.ToHex() ) ); + return this; } @@ -2848,6 +2854,7 @@ public Paragraph UnderlineStyle( UnderlineStyle underlineStyle ) } ApplyTextFormattingProperty( XName.Get( "u", Document.w.NamespaceName ), string.Empty, new XAttribute( XName.Get( "val", Document.w.NamespaceName ), value ) ); + return this; } @@ -3053,6 +3060,7 @@ public Paragraph Highlight( Highlight highlight ) return this; } + [Obsolete( "This method is obsolete and should no longer be used. Use the ShadingPattern method instead." )] public Paragraph Shading( Color shading, ShadingType shadingType = ShadingType.Text ) { // Add to run @@ -3085,6 +3093,35 @@ public Paragraph Shading( Color shading, ShadingType shadingType = ShadingType.T return this; } + public Paragraph ShadingPattern( ShadingPattern shadingPattern, ShadingType shadingType = ShadingType.Text ) + { + // Add to run + if( shadingType == ShadingType.Text ) + { + this.ApplyTextFormattingProperty( XName.Get( "shd", Document.w.NamespaceName ), string.Empty, new XAttribute( XName.Get( "fill", Document.w.NamespaceName ), shadingPattern.Fill.ToHex() ) ); + this.ApplyTextFormattingProperty( XName.Get( "shd", Document.w.NamespaceName ), string.Empty, new XAttribute( XName.Get( "val", Document.w.NamespaceName ), HelperFunctions.GetValueFromTablePatternStyle( shadingPattern.Style ) ) ); + this.ApplyTextFormattingProperty( XName.Get( "shd", Document.w.NamespaceName ), string.Empty, new XAttribute( XName.Get( "color", Document.w.NamespaceName ), shadingPattern.StyleColor.ToHex() ) ); + } + // Add to paragraph + else + { + var pPr = GetOrCreate_pPr(); + var shd = pPr.Element( XName.Get( "shd", Document.w.NamespaceName ) ); + if( shd == null ) + { + + shd = new XElement( XName.Get( "shd", Document.w.NamespaceName ) ); + pPr.Add( shd ); + } + + shd.SetAttributeValue( XName.Get( "fill", Document.w.NamespaceName ), shadingPattern.Fill.ToHex() ); + shd.SetAttributeValue( XName.Get( "val", Document.w.NamespaceName ), HelperFunctions.GetValueFromTablePatternStyle( shadingPattern.Style ) ); + shd.SetAttributeValue( XName.Get( "color", Document.w.NamespaceName ), shadingPattern.Style == PatternStyle.Clear ? "auto" : shadingPattern.StyleColor.ToHex() ); + } + + return this; + } + public Paragraph Border( Border border ) { var size = Xceed.Document.NET.Border.GetNumericSize( border.Size ); @@ -3326,6 +3363,7 @@ public Paragraph SpacingBefore( double spacingBefore ) if( !spacing.HasAttributes ) spacing.Remove(); } + return this; } @@ -3360,6 +3398,7 @@ public Paragraph SpacingAfter( double spacingAfter ) if( !spacing.HasAttributes ) spacing.Remove(); } + return this; } @@ -3394,12 +3433,14 @@ public Paragraph SpacingLine( double lineSpacing ) if( !spacing.HasAttributes ) spacing.Remove(); } + return this; } public Paragraph Kerning( float kerning ) { ApplyTextFormattingProperty( XName.Get( "kern", Document.w.NamespaceName ), string.Empty, new XAttribute( XName.Get( "val", Document.w.NamespaceName ), kerning * 2f ) ); + return this; } @@ -3462,6 +3503,7 @@ public Paragraph PercentageScale( float percentageScale ) public Paragraph AppendDocProperty( CustomProperty cp, bool trackChanges = false, Formatting f = null ) { this.InsertDocProperty( cp, trackChanges, f ); + return this; } @@ -3577,7 +3619,7 @@ public void RemoveText( int index, int count, bool trackChanges = false, bool re var min = Math.Min( count - processed, run.Xml.ElementsAfterSelf().Sum( e => GetElementTextLength( e ) ) ); var splitEditAfter = this.SplitEdit( parentElement, index + min, EditType.del ); - var temp = this.SplitEdit( splitEditBefore[1], index + min, EditType.del )[1]; + var temp = this.SplitEdit( splitEditBefore[ 1 ], index + min, EditType.del )[ 1 ]; var middle = Paragraph.CreateEdit( EditType.del, remove_datetime, temp.Elements() ); processed += Paragraph.GetElementTextLength( middle as XElement ); reCalculateIds = true; @@ -3587,7 +3629,7 @@ public void RemoveText( int index, int count, bool trackChanges = false, bool re middle = null; } - parentElement.ReplaceWith( splitEditBefore[0], middle, splitEditAfter[0] ); + parentElement.ReplaceWith( splitEditBefore[ 0 ], middle, splitEditAfter[ 0 ] ); processed += Paragraph.GetElementTextLength( middle as XElement ); break; @@ -3615,7 +3657,7 @@ public void RemoveText( int index, int count, bool trackChanges = false, bool re var min = Math.Min( index + ( count - processed ), run.EndIndex ); var splitRunAfter = Run.SplitRun( run, min, EditType.del ); - var middle = Paragraph.CreateEdit( EditType.del, remove_datetime, new List() { Run.SplitRun( new Run( Document, splitRunBefore[1], run.StartIndex + GetElementTextLength( splitRunBefore[0] ) ), min, EditType.del )[0] } ); + var middle = Paragraph.CreateEdit( EditType.del, remove_datetime, new List() { Run.SplitRun( new Run( Document, splitRunBefore[ 1 ], run.StartIndex + GetElementTextLength( splitRunBefore[ 0 ] ) ), min, EditType.del )[ 0 ] } ); processed = processed + Paragraph.GetElementTextLength( middle as XElement ); reCalculateIds = true; @@ -3624,7 +3666,7 @@ public void RemoveText( int index, int count, bool trackChanges = false, bool re middle = null; } - run.Xml.ReplaceWith( splitRunBefore[0], middle, splitRunAfter[1] ); + run.Xml.ReplaceWith( splitRunBefore[ 0 ], middle, splitRunAfter[ 1 ] ); } else { @@ -3657,6 +3699,7 @@ public void RemoveText( int index, int count, bool trackChanges = false, bool re { HelperFunctions.RenumberIDs( Document ); } + } @@ -3808,13 +3851,13 @@ public void ReplaceText( string searchValue, int lastcap = 0; for( int k = 0; k < m.Groups.Count; k++ ) { - var g = m.Groups[k]; + var g = m.Groups[ k ]; if( ( g == null ) || ( g.Value == "" ) ) continue; newValue = newValue.Replace( "$" + k.ToString(), g.Value ); lastcap = k; } - newValue = newValue.Replace( "$+", m.Groups[lastcap].Value ); + newValue = newValue.Replace( "$+", m.Groups[ lastcap ].Value ); } if( m.Index > 0 ) { @@ -3880,13 +3923,13 @@ public void ReplaceText( string findPattern, Func regexMatchHand int lastcap = 0; for( int k = 0; k < match.Groups.Count; k++ ) { - var g = match.Groups[k]; + var g = match.Groups[ k ]; if( ( g == null ) || ( g.Value == "" ) ) continue; lastcap = k; } - var newValue = regexMatchHandler.Invoke( match.Groups[lastcap].Value ); + var newValue = regexMatchHandler.Invoke( match.Groups[ lastcap ].Value ); this.InsertText( match.Index + match.Value.Length, newValue, trackChanges, newFormatting ); this.RemoveText( match.Index, match.Value.Length, trackChanges, removeEmptyParagraph ); } @@ -4115,18 +4158,22 @@ select m.Value /// /// /// - public void InsertPageNumber( PageNumberFormat pnf, int index = 0 ) + public void InsertPageNumber( PageNumberFormat? pnf = null, int index = 0 ) { var fldSimple = new XElement( XName.Get( "fldSimple", Document.w.NamespaceName ) ); if( pnf == PageNumberFormat.normal ) { - fldSimple.Add( new XAttribute( XName.Get( "instr", Document.w.NamespaceName ), @" PAGE \* MERGEFORMAT " ) ); + fldSimple.Add( new XAttribute( XName.Get( "instr", Document.w.NamespaceName ), @" PAGE \* MERGEFORMAT ") ); } - else + else if(pnf == PageNumberFormat.roman ) { fldSimple.Add( new XAttribute( XName.Get( "instr", Document.w.NamespaceName ), @" PAGE \* ROMAN \* MERGEFORMAT " ) ); } + else + { + fldSimple.Add(new XAttribute(XName.Get("instr", Document.w.NamespaceName), @" PAGE ")); + } var content = this.GetNumberContentBasedOnLast_rPr(); @@ -4142,13 +4189,14 @@ public void InsertPageNumber( PageNumberFormat pnf, int index = 0 ) var splitEdit = SplitEdit( r.Xml, index, EditType.ins ); r.Xml.ReplaceWith ( - splitEdit[0], + splitEdit[ 0 ], fldSimple, - splitEdit[1] + splitEdit[ 1 ] ); } } + /// /// Append a PageNumber place holder onto the end of a Paragraph. /// @@ -4183,14 +4231,22 @@ public void InsertPageNumber( PageNumberFormat pnf, int index = 0 ) /// /// /// - public Paragraph AppendPageNumber( PageNumberFormat pnf ) + public Paragraph AppendPageNumber( PageNumberFormat? pnf = null ) { XElement fldSimple = new XElement( XName.Get( "fldSimple", Document.w.NamespaceName ) ); if( pnf == PageNumberFormat.normal ) - fldSimple.Add( new XAttribute( XName.Get( "instr", Document.w.NamespaceName ), @" PAGE \* MERGEFORMAT " ) ); + { + fldSimple.Add(new XAttribute(XName.Get("instr", Document.w.NamespaceName), @" PAGE \* MERGEFORMAT ")); + } + else if (pnf == PageNumberFormat.roman) + { + fldSimple.Add(new XAttribute(XName.Get("instr", Document.w.NamespaceName), @" PAGE \* ROMAN \* MERGEFORMAT ")); + } else - fldSimple.Add( new XAttribute( XName.Get( "instr", Document.w.NamespaceName ), @" PAGE \* ROMAN \* MERGEFORMAT " ) ); + { + fldSimple.Add(new XAttribute(XName.Get("instr", Document.w.NamespaceName), @" PAGE ")); + } var content = this.GetNumberContentBasedOnLast_rPr(); @@ -4200,6 +4256,8 @@ public Paragraph AppendPageNumber( PageNumberFormat pnf ) return this; } + + /// /// Insert a PageCount place holder into a Paragraph. /// This place holder should only be inserted into a Header or Footer Paragraph. @@ -4234,14 +4292,22 @@ public Paragraph AppendPageNumber( PageNumberFormat pnf ) /// /// /// - public void InsertPageCount( PageNumberFormat pnf, int index = 0 ) + public void InsertPageCount( PageNumberFormat? pnf = null, int index = 0 ) { XElement fldSimple = new XElement( XName.Get( "fldSimple", Document.w.NamespaceName ) ); if( pnf == PageNumberFormat.normal ) - fldSimple.Add( new XAttribute( XName.Get( "instr", Document.w.NamespaceName ), @" NUMPAGES \* MERGEFORMAT " ) ); + { + fldSimple.Add(new XAttribute(XName.Get("instr", Document.w.NamespaceName), @" NUMPAGES \* MERGEFORMAT ")); + } + else if (pnf == PageNumberFormat.roman) + { + fldSimple.Add(new XAttribute(XName.Get("instr", Document.w.NamespaceName), @" NUMPAGES \* ROMAN \* MERGEFORMAT ")); + } else - fldSimple.Add( new XAttribute( XName.Get( "instr", Document.w.NamespaceName ), @" NUMPAGES \* ROMAN \* MERGEFORMAT " ) ); + { + fldSimple.Add(new XAttribute(XName.Get("instr", Document.w.NamespaceName), @" NUMPAGES ")); + } var content = this.GetNumberContentBasedOnLast_rPr(); @@ -4255,9 +4321,9 @@ public void InsertPageCount( PageNumberFormat pnf, int index = 0 ) XElement[] splitEdit = SplitEdit( r.Xml, index, EditType.ins ); r.Xml.ReplaceWith ( - splitEdit[0], + splitEdit[ 0 ], fldSimple, - splitEdit[1] + splitEdit[ 1 ] ); } } @@ -4296,14 +4362,22 @@ public void InsertPageCount( PageNumberFormat pnf, int index = 0 ) /// /// /// - public Paragraph AppendPageCount( PageNumberFormat pnf ) + public Paragraph AppendPageCount( PageNumberFormat? pnf = null ) { XElement fldSimple = new XElement( XName.Get( "fldSimple", Document.w.NamespaceName ) ); - if( pnf == PageNumberFormat.normal ) - fldSimple.Add( new XAttribute( XName.Get( "instr", Document.w.NamespaceName ), @" NUMPAGES \* MERGEFORMAT " ) ); + if (pnf == PageNumberFormat.normal) + { + fldSimple.Add(new XAttribute(XName.Get("instr", Document.w.NamespaceName), @" NUMPAGES \* MERGEFORMAT ")); + } + else if (pnf == PageNumberFormat.roman) + { + fldSimple.Add(new XAttribute(XName.Get("instr", Document.w.NamespaceName), @" NUMPAGES \* ROMAN \* MERGEFORMAT ")); + } else - fldSimple.Add( new XAttribute( XName.Get( "instr", Document.w.NamespaceName ), @" NUMPAGES \* ROMAN \* MERGEFORMAT " ) ); + { + fldSimple.Add(new XAttribute(XName.Get("instr", Document.w.NamespaceName), @" NUMPAGES ")); + } var content = this.GetNumberContentBasedOnLast_rPr(); @@ -4313,6 +4387,7 @@ public Paragraph AppendPageCount( PageNumberFormat pnf ) return this; } + /// /// Set the Line spacing for this paragraph manually. /// @@ -4332,7 +4407,7 @@ public void SetLineSpacing( LineSpacingType spacingType, float spacingFloat ) var spacingTypeAttribute = ( spacingType == LineSpacingType.Before ) ? "before" : ( spacingType == LineSpacingType.After ) ? "after" : "line"; - spacing.SetAttributeValue( XName.Get( spacingTypeAttribute, Document.w.NamespaceName ), (int)( spacingFloat * 20f ) ); + spacing.SetAttributeValue( XName.Get( spacingTypeAttribute, Document.w.NamespaceName ), ( int )( spacingFloat * 20f ) ); } /// @@ -4729,6 +4804,7 @@ internal static void ResetDefaultValues() internal static void SetDefaultValues( XElement pPr ) { + if( pPr == null ) return; @@ -4905,8 +4981,6 @@ internal void ResetBackers() static internal Picture CreatePicture( Document document, string id, string name, string descr, float width, float height ) { var part = document._package.GetPart( document.PackagePart.GetRelationship( id ).TargetUri ); - - long newDocPrId = document.GetNextFreeDocPrId(); long cx, cy; using( PackagePartStream packagePartStream = new PackagePartStream( part.GetStream() ) ) @@ -4924,11 +4998,11 @@ static internal Picture CreatePicture( Document document, string id, string name var xml = XElement.Parse ( string.Format( @" - + - + @@ -4960,7 +5034,7 @@ static internal Picture CreatePicture( Document document, string id, string name - ", cx, cy, id, name, descr, newDocPrId.ToString() ) ); + ", cx, cy, id, name, descr ) ); var picture = new Picture( document, xml, new Image( document, document.PackagePart.GetRelationship( id ) ) ); if( width > -1f ) @@ -5050,13 +5124,24 @@ internal Run GetFirstRunEffectedByEdit( int index, EditType type = EditType.ins return theOne; } + internal static bool CanReadXml(XElement xml) + { + return (!xml.Name.Equals(XName.Get("drawing", Document.w.NamespaceName)) && !xml.Name.Equals(XName.Get("Fallback", Document.mc.NamespaceName))); + } internal void GetFirstRunEffectedByEditRecursive( XElement Xml, int index, ref int count, ref Run theOne, EditType type ) { - count += HelperFunctions.GetSize( Xml ); + if (CanReadXml(Xml)) + { + count += HelperFunctions.GetSize(Xml); + } + else + { + return; + } // If the EditType is deletion then we must return the next blah - if( count > 0 && ( ( type == EditType.del && count > index ) || ( type == EditType.ins && count >= index ) ) ) + if ( count > 0 && ( ( type == EditType.del && count > index ) || ( type == EditType.ins && count >= index ) ) ) { // Correct the index foreach( XElement e in Xml.ElementsBeforeSelf() ) @@ -5133,11 +5218,11 @@ internal XElement[] SplitEdit( XElement edit, int index, EditType type ) XElement[] splitRun = Run.SplitRun( run, index, type ); - XElement splitLeft = new XElement( edit.Name, edit.Attributes(), run.Xml.ElementsBeforeSelf(), splitRun[0] ); + XElement splitLeft = new XElement( edit.Name, edit.Attributes(), run.Xml.ElementsBeforeSelf(), splitRun[ 0 ] ); if( GetElementTextLength( splitLeft ) == 0 ) splitLeft = null; - XElement splitRight = new XElement( edit.Name, edit.Attributes(), splitRun[1], run.Xml.ElementsAfterSelf() ); + XElement splitRight = new XElement( edit.Name, edit.Attributes(), splitRun[ 1 ], run.Xml.ElementsAfterSelf() ); if( GetElementTextLength( splitRight ) == 0 ) splitRight = null; @@ -5332,6 +5417,23 @@ internal bool IsLineSpacingRuleExactlyOrAtLeast() return false; } + internal bool IsLineSpacingRuleExactly() + { + var pPr = GetOrCreate_pPr(); + var spacing = pPr.Element( XName.Get( "spacing", Document.w.NamespaceName ) ); + + if( spacing != null ) + { + var lineRule = spacing.Attribute( XName.Get( "lineRule", Document.w.NamespaceName ) ); + if( lineRule != null ) + { + return ( lineRule.Value == "exact" ); + } + } + + return false; + } + internal void ClearMagicTextCache() { _magicText = null; @@ -5425,7 +5527,7 @@ internal bool IsInTOCVisible() var bound2 = tocSwitches.Value.IndexOf( "\"", bound1 ); var includedHeadingStyles = tocSwitches.Value.Substring( bound1, bound2 - bound1 ); - var maxStyle = int.Parse( includedHeadingStyles[includedHeadingStyles.Length - 1].ToString() ); + var maxStyle = int.Parse( includedHeadingStyles[ includedHeadingStyles.Length - 1 ].ToString() ); int counter = 1; var styleDigitValue = int.Parse( string.Concat( styleDigit ) ); while( counter <= maxStyle ) @@ -5440,7 +5542,7 @@ internal bool IsInTOCVisible() } } } - } + } } return true; @@ -5624,7 +5726,7 @@ from e in p.Descendants() where e.Name.LocalName.Equals( localNameEquals ) select e.Attribute( XName.Get( attributeName, "http://schemas.openxmlformats.org/officeDocument/2006/relationships" ) ).Value ) - where (ids != null) && (ids.Count() > 0) + where ( ids != null ) && ( ids.Count() > 0 ) from id in ids select new Picture( this.Document, p, new Image( this.Document, this.PackagePart.GetRelationship( id ) ) ) { PackagePart = this.PackagePart } @@ -5651,7 +5753,6 @@ from id in ids - private void ReplaceAtBookmark_Core( string text, XElement bookmark, Formatting formatting = null ) { @@ -5857,11 +5958,11 @@ static internal XElement[] SplitRun( Run r, int index, EditType type = EditType. Text t = r.GetFirstTextEffectedByEdit( index, type ); XElement[] splitText = Text.SplitText( t, index ); - XElement splitLeft = new XElement( r.Xml.Name, r.Xml.Attributes(), r.Xml.Element( XName.Get( "rPr", Document.w.NamespaceName ) ), t.Xml.ElementsBeforeSelf().Where( n => n.Name.LocalName != "rPr" ), splitText[0] ); + XElement splitLeft = new XElement( r.Xml.Name, r.Xml.Attributes(), r.Xml.Element( XName.Get( "rPr", Document.w.NamespaceName ) ), t.Xml.ElementsBeforeSelf().Where( n => n.Name.LocalName != "rPr" ), splitText[ 0 ] ); if( Paragraph.GetElementTextLength( splitLeft ) == 0 ) splitLeft = null; - XElement splitRight = new XElement( r.Xml.Name, r.Xml.Attributes(), r.Xml.Element( XName.Get( "rPr", Document.w.NamespaceName ) ), splitText[1], t.Xml.ElementsAfterSelf().Where( n => n.Name.LocalName != "rPr" ) ); + XElement splitRight = new XElement( r.Xml.Name, r.Xml.Attributes(), r.Xml.Element( XName.Get( "rPr", Document.w.NamespaceName ) ), splitText[ 1 ], t.Xml.ElementsAfterSelf().Where( n => n.Name.LocalName != "rPr" ) ); if( Paragraph.GetElementTextLength( splitRight ) == 0 ) splitRight = null; diff --git a/Xceed.Document.NET/Src/Picture.cs b/Xceed.Document.NET/Src/Picture.cs index 5e528849..5efc47b8 100644 --- a/Xceed.Document.NET/Src/Picture.cs +++ b/Xceed.Document.NET/Src/Picture.cs @@ -443,6 +443,8 @@ select d + + } #endregion @@ -520,6 +522,18 @@ public void SetPictureShape( CalloutShapes shape ) SetPictureShape( ( object )shape ); } + public Paragraph InsertCaptionAfterSelf( string caption ) + { + var parentXElement = this.GetParentP(); + + if( parentXElement == null ) + throw new Exception( "Cannot find the parent XElement" ); + + var p = new Paragraph(this.Document, parentXElement, 0); + + return p.InsertCaptionAfterSelf( caption ); + } + //public void Delete() //{ // // Remove xml @@ -540,6 +554,11 @@ internal bool IsJpegImage() ( this.FileName.EndsWith( "jpg" ) || this.FileName.EndsWith( "jpeg" ) ) ); } + internal XElement GetParentP() + { + return this.Xml.Ancestors( XName.Get( "p", Document.w.NamespaceName ) ).FirstOrDefault(); + } + #endregion #region Private Methods @@ -585,6 +604,8 @@ private void SetPictureShape( object shape ) + + @@ -593,4 +614,9 @@ private void SetPictureShape( object shape ) + + + + + } diff --git a/Xceed.Document.NET/Src/Section.cs b/Xceed.Document.NET/Src/Section.cs index 51d857dd..24778b4d 100644 --- a/Xceed.Document.NET/Src/Section.cs +++ b/Xceed.Document.NET/Src/Section.cs @@ -40,6 +40,7 @@ public class Section : Container private static float _pageSizeMultiplier = 20.0f; private NoteProperties _footnoteProperties; private NoteProperties _endnoteProperties; + private PageNumberType _pageNumberType; #endregion @@ -367,34 +368,73 @@ public PageLayout PageLayout private set; } - public int PageNumberStart + public PageNumberType PageNumberType { get { - var pgNumType = this.Xml.Element( XName.Get( "pgNumType", w.NamespaceName ) ); - if( pgNumType != null ) + var pgNumType = this.Xml.Element(XName.Get("pgNumType", w.NamespaceName)); + _pageNumberType = new PageNumberType(); + + if (pgNumType != null) { - var start = pgNumType.Attribute( XName.Get( "start", Document.w.NamespaceName ) ); - if( start != null ) + var start = pgNumType.Attribute(XName.Get("start", Document.w.NamespaceName)); + var chapStyle = pgNumType.Attribute(XName.Get("chapStyle", Document.w.NamespaceName)); + var fmt = pgNumType.Attribute(XName.Get("fmt", Document.w.NamespaceName)); + var chapSep = pgNumType.Attribute(XName.Get("chapSep", Document.w.NamespaceName)); + + + if (start != null) { int i; - if( HelperFunctions.TryParseInt( start.Value, out i ) ) - return i; + if (HelperFunctions.TryParseInt(start.Value, out i)) + _pageNumberType.PageNumberStart = i; + } + + if (chapStyle != null) + { + int i; + if (HelperFunctions.TryParseInt(chapStyle.Value, out i)) + _pageNumberType.ChapterStyle = i; + } + + if (fmt != null) + { + if (fmt.Value.Equals("decimal")) + { + _pageNumberType.PageNumberFormat = NumberingFormat.decimalNormal; + } + else + { + _pageNumberType.PageNumberFormat = Enum.GetValues(typeof(NumberingFormat)).Cast().FirstOrDefault(x => x.ToString().Equals(fmt.Value)); + } + } + + if (chapSep != null) + { + _pageNumberType.ChapterNumberSeparator = Enum.GetValues(typeof(ChapterSeparator)).Cast().FirstOrDefault(x => x.ToString().Equals(chapSep.Value)) ; } } - return -1; + _pageNumberType.PropertyChanged += this.PageNumberType_PropertyChanged; + + return _pageNumberType; } set { - var pgNumType = this.Xml.Element( XName.Get( "pgNumType", w.NamespaceName ) ); - if( pgNumType == null ) + if (_pageNumberType != null) { - this.Xml.Add( new XElement( XName.Get( "pgNumType", w.NamespaceName ) ) ); - pgNumType = this.Xml.Element( XName.Get( "pgNumType", w.NamespaceName ) ); + _pageNumberType.PropertyChanged -= this.PageNumberType_PropertyChanged; } - pgNumType.SetAttributeValue( XName.Get( "start", w.NamespaceName ), value ); + + _pageNumberType = value; + + if (_pageNumberType != null) + { + _pageNumberType.PropertyChanged += this.PageNumberType_PropertyChanged; + } + + this.UpdatePageNumberTypeXml(); } } @@ -514,8 +554,11 @@ internal Section( Document document, XElement xml, IEnumerable lastSec // Create the Header/Footer container based on the xml copy. this.AddHeadersContainer( xmlCopy ); this.AddFootersContainer( xmlCopy ); + + this.PackagePart = document.PackagePart; } + #endregion #region Overrides @@ -556,6 +599,36 @@ public void AddFooters() this.AddHeadersOrFootersXml( false ); } + public void Remove() + { + if( this.Document.Sections.Count == 1 ) + throw new InvalidOperationException( "Can't remove the last section of a document." ); + + foreach( var paragraphToFind in this.SectionParagraphs ) + { + var paragraph = this.Document.Paragraphs.FirstOrDefault( p => p.Equals( paragraphToFind ) ); + if( paragraph.FollowingTables != null ) + { + foreach( var table in paragraph.FollowingTables ) + { + table.Remove(); + } + } + + paragraph.Remove( false ); + } + + this.DeleteHeadersOrFooters( true ); + this.DeleteHeadersOrFooters( false ); + + this.Xml.Remove(); + + this.Document.UpdateCacheSections(); + } + + + + #endregion #region Internal Methods @@ -607,12 +680,7 @@ internal void AddHeadersOrFootersXml( bool b ) header = XDocument.Parse ( string.Format( @" - - - - - - ", element, reference ) + ", element ) ); } @@ -1048,6 +1116,42 @@ private void SetNoteProperties( string propertiesType, NoteProperties newValue ) } } } + private void UpdatePageNumberTypeXml() + { + var pgNumType = this.Xml.Element(XName.Get("pgNumType", w.NamespaceName)); + + if (pgNumType == null) + { + this.Xml.Add(new XElement(XName.Get("pgNumType", w.NamespaceName))); + pgNumType = this.Xml.Element(XName.Get("pgNumType", w.NamespaceName)); + } + + if(_pageNumberType != null) + { + pgNumType.SetAttributeValue(XName.Get("chapStyle", w.NamespaceName), _pageNumberType.ChapterStyle); + + if (_pageNumberType.PageNumberStart.HasValue && _pageNumberType.PageNumberStart.Value > 0) + { + pgNumType.SetAttributeValue(XName.Get("start", w.NamespaceName), _pageNumberType.PageNumberStart); + } + else + { + pgNumType.SetAttributeValue(XName.Get("start", w.NamespaceName), null); + } + + pgNumType.SetAttributeValue(XName.Get("chapSep", w.NamespaceName), _pageNumberType.ChapterNumberSeparator); + + if (_pageNumberType.PageNumberFormat == NumberingFormat.decimalNormal) + { + pgNumType.SetAttributeValue(XName.Get("fmt", w.NamespaceName), "decimal"); + } + else + { + pgNumType.SetAttributeValue(XName.Get("fmt", w.NamespaceName), _pageNumberType.PageNumberFormat); + } + } + } + #endregion @@ -1063,6 +1167,11 @@ private void EndnoteProperties_PropertyChanged( object sender, PropertyChangedEv this.SetNoteProperties( "endnotePr", _endnoteProperties ); } -#endregion + private void PageNumberType_PropertyChanged(object sender, PropertyChangedEventArgs e) + { + this.UpdatePageNumberTypeXml(); + } + + #endregion } } diff --git a/Xceed.Document.NET/Src/ShadingPattern.cs b/Xceed.Document.NET/Src/ShadingPattern.cs new file mode 100644 index 00000000..e13581ff --- /dev/null +++ b/Xceed.Document.NET/Src/ShadingPattern.cs @@ -0,0 +1,89 @@ +/*************************************************************************************** + + DocX – DocX is the community edition of Xceed Words for .NET + + Copyright (C) 2009-2020 Xceed Software Inc. + + This program is provided to you under the terms of the XCEED SOFTWARE, INC. + COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at + https://github.com/xceedsoftware/DocX/blob/master/license.md + + For more features and fast professional support, + pick up Xceed Words for .NET at https://xceed.com/xceed-words-for-net/ + + *************************************************************************************/ + + +using System.ComponentModel; +using System.Drawing; + +namespace Xceed.Document.NET +{ + public class ShadingPattern : INotifyPropertyChanged + { + #region Private Members + + private Color _fill; + private PatternStyle _style; + private Color _styleColor; + + #endregion + + #region Public Properties + + public Color Fill + { + get + { + return _fill; + } + set + { + _fill = value; + OnPropertyChanged( "Fill" ); + } + } + + public PatternStyle Style + { + get + { + return _style; + } + set + { + _style = value; + OnPropertyChanged( "Style" ); + } + } + + public Color StyleColor + { + get + { + return _styleColor; + } + set + { + _styleColor = value; + OnPropertyChanged( "StyleColor" ); + } + } + + #endregion + + + #region INotifyPropertyChanged + + public event PropertyChangedEventHandler PropertyChanged; + protected void OnPropertyChanged( string propertyName ) + { + if( PropertyChanged != null ) + { + PropertyChanged( this, new PropertyChangedEventArgs( propertyName ) ); + } + } + + #endregion + } +} diff --git a/Xceed.Document.NET/Src/Table.cs b/Xceed.Document.NET/Src/Table.cs index 7182ee17..a5ad76d4 100644 --- a/Xceed.Document.NET/Src/Table.cs +++ b/Xceed.Document.NET/Src/Table.cs @@ -40,6 +40,7 @@ public class Table : InsertBeforeOrAfter private TableDesign _design; private TableLook _tableLook; private double _indentFromLeft; + /// /// The custom design\style to apply to this table. /// @@ -965,6 +966,48 @@ public List ColumnWidths } } + public ShadingPattern ShadingPattern + { + get + { + if( Rows.Count < 0 ) + throw new IndexOutOfRangeException(); + + if( Rows[ 0 ].ColumnCount < 0 ) + throw new IndexOutOfRangeException(); + + ShadingPattern shadingPattern = Rows[ 0 ].Cells[ 0 ].ShadingPattern; + + foreach( Row r in Rows ) + { + var cells = r.Cells; + + foreach( Cell c in cells ) + { + if( !shadingPattern.Equals( c.ShadingPattern ) ) + { + return new ShadingPattern(); + } + } + } + + return shadingPattern; + } + + set + { + foreach( Row r in Rows ) + { + var cells = r.Cells; + + foreach( Cell c in cells ) + { + c.ShadingPattern = value; + } + } + } + } + #endregion #region Constructors @@ -981,7 +1024,7 @@ internal Table( Document document, XElement xml, PackagePart packagePart ) var tblGrid = xml.Element( XName.Get( "tblGrid", Document.w.NamespaceName ) ); if( tblGrid == null ) { - this.SetColumnWidth(0, -1, false); + this.SetColumnWidth( 0, -1, false ); } var alignment = properties?.Element( XName.Get( "jc", Document.w.NamespaceName ) ); @@ -990,7 +1033,7 @@ internal Table( Document document, XElement xml, PackagePart packagePart ) var val = alignment.Attribute( XName.Get( "val", Document.w.NamespaceName ) ); if( val != null ) { - _alignment = (Alignment)Enum.Parse( typeof( Alignment ), val.Value ); + _alignment = ( Alignment )Enum.Parse( typeof( Alignment ), val.Value ); } } @@ -1005,7 +1048,7 @@ internal Table( Document document, XElement xml, PackagePart packagePart ) if( Enum.IsDefined( typeof( TableDesign ), cleanValue ) ) { - this.Design = (TableDesign)Enum.Parse( typeof( TableDesign ), cleanValue ); + this.Design = ( TableDesign )Enum.Parse( typeof( TableDesign ), cleanValue ); } else @@ -1557,7 +1600,7 @@ public void InsertColumn( int index, bool direction ) { this.AddCellToRow( row, cell, index, direction ); } - } + } var newWidths = new List( colCount + 1 ); this.ColumnWidths.ForEach( pWidth => newWidths.Add( Convert.ToSingle( pWidth ) ) ); @@ -2228,7 +2271,7 @@ public Border GetBorder( TableBorderType borderType ) try { var bordertype = "Tcbs_" + val.Value; - b.Tcbs = (BorderStyle)Enum.Parse( typeof( BorderStyle ), bordertype ); + b.Tcbs = ( BorderStyle )Enum.Parse( typeof( BorderStyle ), bordertype ); } catch { @@ -2352,7 +2395,7 @@ public void SetColumnWidth( int columnIndex = 0, double width = -1, bool fixWidt throw new Exception( "There is at least one row required to detect the existing columns." ); columnWidths = new List(); - var cells = this.Rows[0].Cells; + var cells = this.Rows[ 0 ].Cells; foreach( var c in cells ) { columnWidths.Add( c.Width ); @@ -2368,7 +2411,7 @@ public void SetColumnWidth( int columnIndex = 0, double width = -1, bool fixWidt var unknownWidthColumnCount = columnWidths.Count - knownWidth.Count(); var wantedColumnWidth = availableSpace / unknownWidthColumnCount; - for(int i = 0; i < columnWidths.Count; ++i ) + for( int i = 0; i < columnWidths.Count; ++i ) { if( double.IsNaN( columnWidths[ i ] ) ) { @@ -2668,6 +2711,8 @@ private void TableLook_PropertyChanged( object sender, PropertyChangedEventArgs + + @@ -2937,7 +2982,7 @@ private void SetHeight( double height, bool isHeightExact ) trHeight.SetAttributeValue( XName.Get( "hRule", Document.w.NamespaceName ), isHeightExact ? "exact" : "atLeast" ); // Using 20 to match Document._pageSizeMultiplier. - trHeight.SetAttributeValue( XName.Get( "val", Document.w.NamespaceName ), ( (int)( Math.Round( height * 20, 0 ) ) ).ToString( CultureInfo.InvariantCulture ) ); + trHeight.SetAttributeValue( XName.Get( "val", Document.w.NamespaceName ), ( ( int )( Math.Round( height * 20, 0 ) ) ).ToString( CultureInfo.InvariantCulture ) ); } #endregion @@ -2983,7 +3028,7 @@ public void MergeCells( int startIndex, int endIndex ) // Add this cells Pragraph to the merge start Cell. this.Cells[ startIndex ].Xml.Add( c.Xml.Elements( XName.Get( "p", Document.w.NamespaceName ) ) ); - this.Cells[startIndex].Width += c.Width; + this.Cells[ startIndex ].Width += c.Width; // Remove this Cell. c.Xml.Remove(); @@ -3051,6 +3096,7 @@ public class Cell : Container #region Internal Members internal Row _row; + internal ShadingPattern _shadingPattern; #endregion @@ -3136,7 +3182,7 @@ public VerticalAlignment VerticalAlignment // If val is not a VerticalAlign enum, something is wrong with this attributes value, so remove it and return VerticalAlignment.Center; try { - return (VerticalAlignment)Enum.Parse( typeof( VerticalAlignment ), val.Value, true ); + return ( VerticalAlignment )Enum.Parse( typeof( VerticalAlignment ), val.Value, true ); } catch @@ -3175,6 +3221,7 @@ public VerticalAlignment VerticalAlignment } } + [Obsolete( "This property is obsolete and should no longer be used. Use the ShadingPattern property instead." )] public Color Shading { get @@ -3236,6 +3283,67 @@ public Color Shading } } + #region ShadingPattern + + public ShadingPattern ShadingPattern + { + get + { + if( _shadingPattern != null ) + return _shadingPattern; + + /* + * Get the tcPr (table cell properties) element for this Cell, + * null will be return if no such element exists. + */ + XElement tcPr = Xml.Element( XName.Get( "tcPr", Document.w.NamespaceName ) ); + + // If tcPr is null, this cell contains no Pattern information. + // Get the shd (table shade) element for this Cell, + // null will be return if no such element exists. + XElement shd = tcPr?.Element( XName.Get( "shd", Document.w.NamespaceName ) ); + + + _shadingPattern = new ShadingPattern(); + + // If shd is not null, this cell contains Pattern information, else return an empty ShadingPattern. + if( shd != null ) + { + // Get the w attribute of the tcW element. + XAttribute fill = shd.Attribute( XName.Get( "fill", Document.w.NamespaceName ) ); + XAttribute style = shd.Attribute( XName.Get( "val", Document.w.NamespaceName ) ); + XAttribute styleColor = shd.Attribute( XName.Get( "color", Document.w.NamespaceName ) ); + + _shadingPattern.Fill = HelperFunctions.GetColorFromHtml( fill.Value ); + _shadingPattern.Style = HelperFunctions.GetTablePatternStyleFromValue( style.Value ); + _shadingPattern.StyleColor = HelperFunctions.GetColorFromHtml( styleColor.Value ); + } + + _shadingPattern.PropertyChanged += this.ShadingPattern_PropertyChanged; + + return _shadingPattern; + } + + set + { + if( _shadingPattern != null ) + { + _shadingPattern.PropertyChanged -= this.ShadingPattern_PropertyChanged; + } + + _shadingPattern = value; + + if( _shadingPattern != null ) + { + _shadingPattern.PropertyChanged += this.ShadingPattern_PropertyChanged; + } + + this.UpdateShadingPatternXml(); + } + } + + #endregion //ShadingPattern + /// /// Width in pixels. /// @@ -3923,7 +4031,7 @@ public int RowSpan for( var i = rowIndex + 1; i < rows.Count; ++i ) { - if( cellIndex >= rows[i].Cells.Count ) + if( cellIndex >= rows[ i ].Cells.Count ) break; var cell = rows[ i ].Cells[ cellIndex ]; @@ -4163,7 +4271,7 @@ public Border GetBorder( TableCellBorderType borderType ) try { string bordertype = "Tcbs_" + val.Value; - b.Tcbs = (BorderStyle)Enum.Parse( typeof( BorderStyle ), bordertype ); + b.Tcbs = ( BorderStyle )Enum.Parse( typeof( BorderStyle ), bordertype ); } catch @@ -4268,24 +4376,111 @@ public Border GetBorder( TableCellBorderType borderType ) return b; } + public override Paragraph InsertParagraph( int index, Paragraph p ) + { + if( IsDefaultParagraph() ) + this.Paragraphs[ 0 ].Remove( false ); + + return base.InsertParagraph( index, p ); + } + + public override Paragraph InsertParagraph( int index, string text, bool trackChanges, Formatting formatting ) + { + if( IsDefaultParagraph() ) + this.Paragraphs[ 0 ].Remove( false ); + + return base.InsertParagraph( index, text, trackChanges, formatting ); + } + + public override Paragraph InsertParagraph( string text, bool trackChanges, Formatting formatting ) + { + if( IsDefaultParagraph() ) + this.Paragraphs[ 0 ].Remove( false ); + + return base.InsertParagraph( text, trackChanges, formatting ); + } + + public override Paragraph InsertParagraph( Paragraph p ) + { + if( IsDefaultParagraph() ) + this.Paragraphs[ 0 ].Remove( false ); + + return base.InsertParagraph( p ); + } + + public override Paragraph InsertEquation( string equation, Alignment align = Alignment.center ) + { + if( IsDefaultParagraph() ) + this.Paragraphs[ 0 ].Remove( false ); + + return base.InsertEquation( equation, align ); + } + public override Table InsertTable( int rowCount, int columnCount ) { - var table = base.InsertTable( rowCount, columnCount ); - table.PackagePart = this.PackagePart; - this.InsertParagraph(); //It is necessary to put paragraph in the end of the cell, without it MS-Word will say that the document is corrupted - //IMPORTANT: It will be better to check all methods that work with adding anything to cells - return table; + if( IsDefaultParagraph() ) + this.Paragraphs[ 0 ].Remove( false ); + + return base.InsertTable( rowCount, columnCount ); + } + + public override Table InsertTable( int index, int rowCount, int columnCount ) + { + if( IsDefaultParagraph() ) + this.Paragraphs[ 0 ].Remove( false ); + + return base.InsertTable( index, rowCount, columnCount ); } public override Table InsertTable( Table t ) { - var table = base.InsertTable( t ); - table.PackagePart = this.PackagePart; - this.InsertParagraph(); //It is necessary to put paragraph in the end of the cell, without it MS-Word will say that the document is corrupted - //IMPORTANT: It will be better to check all methods that work with adding anything to cells - return table; + if( IsDefaultParagraph() ) + this.Paragraphs[ 0 ].Remove( false ); + + return base.InsertTable( t ); + } + + public override Table InsertTable( int index, Table t ) + { + if( IsDefaultParagraph() ) + this.Paragraphs[ 0 ].Remove( false ); + + return base.InsertTable( index, t ); } + public override List InsertList( List list ) + { + if( IsDefaultParagraph() ) + this.Paragraphs[ 0 ].Remove( false ); + + return base.InsertList( list ); + } + + public override List InsertList( List list, double fontSize ) + { + if( IsDefaultParagraph() ) + this.Paragraphs[ 0 ].Remove( false ); + + return base.InsertList( list, fontSize ); + } + + public override List InsertList( List list, Font fontFamily, double fontSize ) + { + if( IsDefaultParagraph() ) + this.Paragraphs[ 0 ].Remove( false ); + + return base.InsertList( list, fontFamily, fontSize ); + } + + public override List InsertList( int index, List list ) + { + if( IsDefaultParagraph() ) + this.Paragraphs[ 0 ].Remove( false ); + + return base.InsertList( index, list ); + } + + #endregion // @@ -4311,6 +4506,72 @@ public override Table InsertTable( Table t ) // } // // + + #region Private Methods + + private bool IsDefaultParagraph() + { + if( this.Paragraphs.Count < 1 ) + return false; + + var firstParagraph = this.Paragraphs[ 0 ]; + return this.Paragraphs.Count == 1 + && string.IsNullOrEmpty(firstParagraph.Text) + && !firstParagraph.IsListItem + && firstParagraph.Pictures.Count == 0 + && firstParagraph.Hyperlinks.Count == 0; + + } + + private void UpdateShadingPatternXml() + { + if( _shadingPattern == null ) + { + throw new Exception( "Shading pattern value is invalid." ); + } + + /* + * Get the tcPr (table cell properties) element for this Cell, + * null will be return if no such element exists. + */ + XElement tcPr = Xml.Element( XName.Get( "tcPr", Document.w.NamespaceName ) ); + if( tcPr == null ) + { + Xml.SetElementValue( XName.Get( "tcPr", Document.w.NamespaceName ), string.Empty ); + tcPr = Xml.Element( XName.Get( "tcPr", Document.w.NamespaceName ) ); + } + + /* + * Get the shd (table shade) element for this Cell, + * null will be return if no such element exists. + */ + XElement shd = tcPr.Element( XName.Get( "shd", Document.w.NamespaceName ) ); + if( shd == null ) + { + tcPr.SetElementValue( XName.Get( "shd", Document.w.NamespaceName ), string.Empty ); + shd = tcPr.Element( XName.Get( "shd", Document.w.NamespaceName ) ); + } + + // The fill attribute needs to be set to the hex for this Color. + shd.SetAttributeValue( XName.Get( "fill", Document.w.NamespaceName ), _shadingPattern.Fill.ToHex() ); + + // Set the value to val attribute. + shd.SetAttributeValue( XName.Get( "val", Document.w.NamespaceName ), HelperFunctions.GetValueFromTablePatternStyle( _shadingPattern.Style ) ); + + // The color attribute needs to be set to the hex for this Color. + shd.SetAttributeValue( XName.Get( "color", Document.w.NamespaceName ), _shadingPattern.Style == PatternStyle.Clear ? "auto" : _shadingPattern.StyleColor.ToHex() ); + } + + #endregion + + #region Event Handlers + + private void ShadingPattern_PropertyChanged( object sender, PropertyChangedEventArgs e ) + { + this.UpdateShadingPatternXml(); + } + + #endregion } public class TableLook : INotifyPropertyChanged diff --git a/Xceed.Document.NET/Src/_BaseClasses.cs b/Xceed.Document.NET/Src/_BaseClasses.cs index 7baf305e..df273fe3 100644 --- a/Xceed.Document.NET/Src/_BaseClasses.cs +++ b/Xceed.Document.NET/Src/_BaseClasses.cs @@ -44,7 +44,10 @@ public abstract class DocumentElement /// ///

///
- public XElement Xml { get; set; } + public XElement Xml + { + get; set; + } public PackagePart PackagePart { @@ -66,7 +69,10 @@ public PackagePart PackagePart /// This is a reference to the Document object that this element belongs to. /// Every Document element is connected to a document. ///
- internal Document Document { get; set; } + internal Document Document + { + get; set; + } #endregion @@ -103,7 +109,7 @@ public abstract class InsertBeforeOrAfter : DocumentElement { #region Constructors - public InsertBeforeOrAfter( Document document, XElement xml ) + public InsertBeforeOrAfter( Document document, XElement xml ) : base( document, xml ) { } @@ -159,9 +165,9 @@ public virtual Paragraph InsertCaptionAfterSelf( string captionText ) fldSimple.Add( new XAttribute( XName.Get( "instr", Document.w.NamespaceName ), @" SEQ " + captionText + @" \* ARABIC " ) ); var actualCaptions = this.Document.Xml.Descendants( XName.Get( "fldSimple", Document.w.NamespaceName ) ) - .Where( field => (field != null) - && (field.GetAttribute( XName.Get( "instr", Document.w.NamespaceName ) ) != null ) - && field.GetAttribute( XName.Get( "instr", Document.w.NamespaceName ) ).StartsWith(" SEQ " + captionText) ); + .Where( field => ( field != null ) + && ( field.GetAttribute( XName.Get( "instr", Document.w.NamespaceName ) ) != null ) + && field.GetAttribute( XName.Get( "instr", Document.w.NamespaceName ) ).StartsWith( " SEQ " + captionText ) ); var captionNumber = actualCaptions.Count() + 1; var content = XElement.Parse( string.Format( @@ -171,7 +177,7 @@ public virtual Paragraph InsertCaptionAfterSelf( string captionText ) {0} ", - captionNumber) + captionNumber ) ); fldSimple.Add( content ); diff --git a/Xceed.Document.NET/Src/_Enumerations.cs b/Xceed.Document.NET/Src/_Enumerations.cs index ba569786..eb1e08f6 100644 --- a/Xceed.Document.NET/Src/_Enumerations.cs +++ b/Xceed.Document.NET/Src/_Enumerations.cs @@ -60,6 +60,14 @@ public enum PageNumberFormat roman } + public enum ChapterSeparator + { + colon, + emDash, + enDash, + hyphen, + period + } public enum BorderSize { one, @@ -765,6 +773,47 @@ public enum TableCellMarginType top } + public enum PatternStyle + { + Clear, + Solid, + Percent5, + Percent10, + Percent12, + Percent15, + Percent20, + Percent25, + Percent30, + Percent35, + Percent37, + Percent40, + Percent45, + Percent50, + Percent55, + Percent60, + Percent62, + Percent65, + Percent70, + Percent75, + Percent80, + Percent85, + Percent87, + Percent90, + Percent95, + DkHorizonal, + DkVertical, + DkDwnDiagonal, + DkUpDiagonal, + DkGrid, + DkTrellis, + LtHorizonal, + LtVertical, + LtDwnDiagonal, + LtUpDiagonal, + LtGrid, + LtTrellis, + } + public enum HorizontalBorderPosition { top, @@ -789,6 +838,78 @@ public enum NoteNumberFormat chicago } + /// + /// The numbering format which shall be used for a group of automatically numbered objects. + /// Reference : https://c-rex.net/projects/samples/ooxml/e1/Part4/OOXML_P4_DOCX_ST_NumberFormat_topic_ID0EDNB3.html#topic_ID0EDNB3 + /// + public enum NumberingFormat + { + aiueo, + aiueoFullWidth, + arabicAlpha, + bullet, + cardinalText, + chicago, + chineseCounting, + chineseCountingThousand, + chineseLegalSimplified, + chosung, + decimalNormal, + decimalEnclosedCircle, + decimalEnclosedCircleChinese, + decimalEnclosedFullstop, + decimalEnclosedParen, + decimalFullWidth, + decimalFullWidth2, + decimalHalfWidth, + decimalZero, + ganada, + hebrew1, + hebrew2, + hex, + hindiConsonants, + hindiCounting, + hindiNumbers, + hindiVowels, + ideographDigital, + ideographEnclosedCircle, + ideographLegalTraditional, + ideographTraditional, + ideographZodiac, + ideographZodiacTraditional, + iroha, + irohaFullWidth, + japaneseCounting, + japaneseDigitalTenThousand, + japaneseLegal, + koreanCounting, + koreanDigital, + koreanDigital2, + koreanLegal, + lowerLetter, + lowerRoman, + none, + numberInDash, + ordinal, + ordinalText, + russianLower, + russianUpper, + taiwaneseCounting, + taiwaneseCountingThousand, + taiwaneseDigital, + thaiCounting, + thaiLetters, + thaiNumbers, + upperLetter, + upperRoman, + vietnameseCounting + } + + + + + + diff --git a/Xceed.Document.NET/Xceed.Document.NET.csproj b/Xceed.Document.NET/Xceed.Document.NET.csproj index 8ecb585c..c6756591 100644 --- a/Xceed.Document.NET/Xceed.Document.NET.csproj +++ b/Xceed.Document.NET/Xceed.Document.NET.csproj @@ -95,9 +95,12 @@ + + + @@ -119,7 +122,9 @@ + + diff --git a/Xceed.Words.NET.Examples/Program.cs b/Xceed.Words.NET.Examples/Program.cs index b952171f..1027fa53 100644 --- a/Xceed.Words.NET.Examples/Program.cs +++ b/Xceed.Words.NET.Examples/Program.cs @@ -54,6 +54,7 @@ private static void Main( string[] args ) DocumentSample.LoadDocumentWithStringUrl(); DocumentSample.AddHtmlFromFile(); DocumentSample.AddRtfFromFile(); + DocumentSample.InsertDocument(); //Images ImageSample.AddPicture(); @@ -77,6 +78,7 @@ private static void Main( string[] args ) TableSample.CreateRowsFromTemplate(); TableSample.ColumnsWidth(); TableSample.MergeCells(); + TableSample.ShadingPattern(); //Hyperlink HyperlinkSample.Hyperlinks(); @@ -106,6 +108,7 @@ private static void Main( string[] args ) ChartSample.PieChart(); ChartSample.Chart3D(); ChartSample.ModifyChartData(); + ChartSample.AddChartWithTextWrapping(); //Tale of Content TableOfContentSample.InsertTableOfContent(); diff --git a/Xceed.Words.NET.Examples/Properties/AssemblyInfo.cs b/Xceed.Words.NET.Examples/Properties/AssemblyInfo.cs index 12bab9f5..6648c2af 100644 --- a/Xceed.Words.NET.Examples/Properties/AssemblyInfo.cs +++ b/Xceed.Words.NET.Examples/Properties/AssemblyInfo.cs @@ -47,5 +47,5 @@ // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion( "2.0.0.0" )] -[assembly: AssemblyFileVersion( "2.0.0.0" )] +[assembly: AssemblyVersion( "2.1.0.0" )] +[assembly: AssemblyFileVersion( "2.1.0.0" )] diff --git a/Xceed.Words.NET.Examples/Samples/Bookmark/BookmarkSample.cs b/Xceed.Words.NET.Examples/Samples/Bookmark/BookmarkSample.cs index c78f266f..4635de17 100644 --- a/Xceed.Words.NET.Examples/Samples/Bookmark/BookmarkSample.cs +++ b/Xceed.Words.NET.Examples/Samples/Bookmark/BookmarkSample.cs @@ -100,9 +100,11 @@ public static void ReplaceText() // Get the formatted bookmark from the document and replace its Text. var formattedBookmark = document.Bookmarks[ "formattedBookmark" ]; - if( formattedBookmark != null ) + if( (formattedBookmark != null) + && (formattedBookmark.Paragraph != null) + && (formattedBookmark.Paragraph.MagicText.Count >= 1) ) { - formattedBookmark.SetText( "Formatted Bookmark has been changed" ); + formattedBookmark.SetText( "Formatted Bookmark has been changed", formattedBookmark.Paragraph.MagicText[ 1 ].formatting ); } document.SaveAs( BookmarkSample.BookmarkSampleOutputDirectory + @"ReplaceBookmarkText.docx" ); diff --git a/Xceed.Words.NET.Examples/Samples/Bookmark/Output/InsertBookmarks.docx b/Xceed.Words.NET.Examples/Samples/Bookmark/Output/InsertBookmarks.docx index cd732ffbd5480374bf4887b41de8e81a41704085..f390b68ad642244ab500c13f6d4636a77e057836 100644 GIT binary patch delta 2782 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 diff --git a/Xceed.Words.NET.Examples/Samples/Bookmark/Output/ReplaceBookmarkText.docx b/Xceed.Words.NET.Examples/Samples/Bookmark/Output/ReplaceBookmarkText.docx index 0af11ff34dcdec72f608258aa6d3f0f46769e03e..87384bbf5860eed527c3d9444fe29ac96d748eb2 100644 GIT binary patch delta 1240 zcmV;}1Sk98XYpsSAPEhrTy|7_opyu?1ONa^lPw7vf7@>3HV}O;(0>s0o=EcD!a9q@ zUI+V7z*uje3!0)OH54h3w4LzXH)?$~vMs3)3lQauOzbBj?aw#A|MqF;2OMt_!juINO!~VNPwYsk z)OQ?-eqaLL!|8uP^A>vfEYv*RLgIL8pw26Rz{8HW50$i|#8bjxam_`76bwb^BuG4L(knnt zk&0I_jnxx?x`P6S!|n*?=MYyV8Li@HWb%K7e}*{4Zl*HJch*>R1fjrzGa1Ecxjo5i z(O@wuK(@!6*e292Q_JgJmRqxIUn;;;=;xc6(2V(UM9)28M>IsKaSDZ|&4NjSVpbV` zRcLC#_4?-lbXoudNzQ}l=Mav3N~+S>rQv0}d@uMWtpcMs1u=f^hpJjHy(p6$ZYql(C&MO`~nQt>nt(^}oKKM4VUAH?J zj)y(Fm|6%uIUWz({=A%=ku};-)m~ZDrgHqu!a|foGx0YDjV+=R8$<0AVOvg9Kr}SW zl>DdA>AFq%e0eI53Q)wtLV&QVKbLz(f1RdPJ+AZCqz*>qy%9G$>gF3s^@?gZ)Np6T z`GY=6mI}@wFc1gemEKB*63Cyw?)e?U4|QWTr7tX~RGbeRC5kYy?sA{3@8nTEA2gE@ z&y>ws6*BDf$L{U%3ONv=ixT)hOMdS4`{U^$^39cBMm__5Ya3bq>I1}=DJ1d4e@+FF zL~MzD^F4~C1%JpAB-~IWtQR_gs0Xy?b%(>*%LV(of-Cxme-5SmQ2LoMd?{pynx|Ja zPY8U`RrcB=oZ5W-MQH!jQwpLoC6pSN=Njn`3_&~Y?Q)n(8mE9|Q>nIX@#Qyc(n^mW3R%M*uu4QF+ zzu|B=@cR2QmqsR2n{%f0jSxv3!&~lF#E4pV)ZAEiess%Zdlt*q6hTtm${6h}wCt_g zQ=5XLeu7bA3~Ai5tJt$!C3yDKkp2^yISxIl##ykJFfAQn5=A7h* z@kkP^7Kbh!$J|7NDflS`;6a;$S z(4fa*q_l3=Fj#S=cv6iiS=Ux0f&v2chVDoY*PN@`Fx)6J+<&S7FbtOp$5 zi&!T-jTu?Q3WEdPf!oaJ4lHhFLJ#vFSM+D`Blyj;JPk1h1gTthRI_mtFb4#wTy|8m zr5YIz1gTthRI|bJtbQ1so zcW-iJFLRTDGaHl3F&YG77XSd0ZxlXx;b z0VtETGCl#Ylk_qo1gTthRFfJr8Un>Blh7#?lS(rx0q~P`GeH3`leaS?21hUe0001u Cr$rwC delta 1208 zcmV;p1V{VvXW(bBAPEh!MS@fHvUx@L0{{RSlPw7vf7x#1HWYm?(0>s0o=Ea0TNr1M z*yCUx3K-+*b3s$o(om#8(stah@1=Ixj+ZzylN1F4L|pE<`yuI1pPv(Itcj2@XJga3 zwM~OC%>9^!V{@f~o1tk)g_w^hXJl+{i8Mdo{r=mhjpuW`N(fU1KrrcTQam;zrBctb zB#uaef8=cvW5Fd4)Gg+T#e*Qm#M*G-TOHf6v#(TeOr!*T6U5d?ngtwwJ`c?oXam9; zuxH^22}Pc34Ci8yzBRIj`#_yn0D*@cXBR5jj}lJ_gT;W01SuGb&`OYaTBSFDoFWx3 zV;ZY1fZBr+hC_A)^9qQY$`~!;<;E2MN(pg}f8JbVT4XlUXbD2W2F_#@r&W5A*P_8< zRD!IJIk8TtS(TR4yRNpTd0uM3bIdQ2nb6$w*_*J24 z1lQ?b2GH397)Wv%M8ANrELM3{!v-XK~M*_8aJ zlv*i3q zA0-O~XAmfeeeg=BlA#3Z=dVZpfbdgOSwrXx^J@|7!$yfBOpJ%ZC*wPLRxbxFtB4oc z=AsU9JN=P;f4oBuMChsl{?8gebNcWh$mAh;<1?ueU}>FEL8q=H+pmlV??9yd5id{%7UmkKn?{595&}Sj`XJA&$AVe*mHE;y>vQ zX4AI);X-%H1`cp%qo$wEo)eTQ!L(g$D^f-)^mhEO1EV)uVsmGKA zjn#-CpMZI;J=DX1bJZAzE0qm*U!KtKx>XB$%r>{yeU2YRtP7sTjLc(&!GZ3;ZdY_3 zw`@WWi{DE0XZf4<-M>&vvrr8#1_ZK2f>X1C6EFt^vPFVZv$h%;4+OGBf>X28DMSYi zvPFVZ^|EV=jG8zGwlZi4s0T+|TGCl#HlLa#(1hPefQ(); c.AddLegend( ChartLegendPosition.Left, false ); c.BarDirection = BarDirection.Bar; c.BarGrouping = BarGrouping.Standard; c.GapWidth = 200; + // Create the data. var canada = ChartData.CreateCanadaExpenses(); var usa = ChartData.CreateUSAExpenses(); @@ -105,8 +106,10 @@ public static void LineChart() document.InsertParagraph( "Line Chart" ).FontSize( 15d ).SpacingAfter( 50d ).Alignment = Alignment.center; // Create a line chart. - var c = new LineChart(); - c.AddLegend( ChartLegendPosition.Left, false ); + var c = document.AddChart(); + + + c.AddLegend(ChartLegendPosition.Left, false); // Create the data. var canada = ChartData.CreateCanadaExpenses(); @@ -117,11 +120,15 @@ public static void LineChart() var s1 = new Series( "Brazil" ); s1.Color = Color.Yellow; s1.Bind( brazil, "Category", "Expenses" ); + + + c.AddSeries( s1 ); var s2 = new Series( "USA" ); s2.Color = Color.Blue; s2.Bind( usa, "Category", "Expenses" ); + c.AddSeries( s2 ); var s3 = new Series( "Canada" ); @@ -132,8 +139,8 @@ public static void LineChart() // Insert chart into document document.InsertParagraph( "Expenses(M$) for selected categories per country" ).FontSize( 15 ).SpacingAfter( 10d ); document.InsertChart( c ); - document.Save(); + Console.WriteLine( "\tCreated: LineChart.docx\n" ); } } @@ -152,7 +159,7 @@ public static void PieChart() document.InsertParagraph( "Pie Chart" ).FontSize( 15d ).SpacingAfter( 50d ).Alignment = Alignment.center; // Create a pie chart. - var c = new PieChart(); + var c = document.AddChart(); c.AddLegend( ChartLegendPosition.Left, false ); // Create the data. @@ -187,7 +194,7 @@ public static void Chart3D() document.InsertParagraph( "3D Chart" ).FontSize( 15d ).SpacingAfter( 50d ).Alignment = Alignment.center; // Create a 3D Bar chart. - var c = new BarChart(); + var c = document.AddChart(); c.View3D = true; // Create the data. @@ -221,6 +228,20 @@ public static void ModifyChartData() // This option is available when you buy Xceed Words for .NET from https://xceed.com/xceed-words-for-net/. } + + public static void AddChartWithTextWrapping() + { + + + + + + + + + // This option is available when you buy Xceed Words for .NET from https://xceed.com/xceed-words-for-net/. + + } #endregion } } diff --git a/Xceed.Words.NET.Examples/Samples/Chart/Output/3DChart.docx b/Xceed.Words.NET.Examples/Samples/Chart/Output/3DChart.docx index c81391c93d2470b4a6291bf9738ffd5a2367ff12..c4d748b4c97f29053c0342a06c171078961b26aa 100644 GIT binary patch delta 4594 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 hK~483fd4cl0D$~oCW>SLgen;Y0!%}MDNl8`^K+ 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
JA zr7)tEmn$?1s;vXpZC>)WTfj#3nMDj0E^x=lC)m6^Y$?91(3p@MjLUsmWAp>Q&^+5| z$(UdqXBF8>1;?zR5|KlS{5m;^Glz9Ft0rhWdLx(g{YkNTN^?i!$ccz`4R*D=k!gG8 zVQO|Gq%V<`G!CC1X>BYJxjy5Z#ELstop%0JMZ*Idot+F_yct_0RR{g0fRO)IK-J8+ za3qw6BVctap2^=|bOcmD(8Jm#%9CY26aWAMS0a85D|X78WbuzY+cPJb=phJYOg|OB zHypI1#rA$O)3TXod#2obJ#&Bgxw?XqOS)heMb>_cN5!Kvqh6hTTQH5+z~s>pwOYK* zag`#YjzOU56n=G`^qH7`Fu!(Jf<9MAyFXzc}z#I3|LhZQ3j!1+A9i6I!dpH70; zgBiysV1su2C&;L3dT++!vGaGwULfy#H&G2IE{`k*%%~|6x6{2{!C+&LRs!0q$Tm`7 zy!mS8K=jMIXi8&B5S5323sSa6;f5+kPoJ55x9I!+`_-mTe`HS|LoPB&P{aba;vN0F zmuse?X@p3#n`XBG&Bt~>U>KrHgL+jG{ZKIsNtoMQ>9pF{Q@u~|!fAR9IsNYkrWcr^ z*hz03gI`;Wk+zhpwBlT&)kvCP>~M6wpmB>?+5W^qlqJb~DzmxmrgWI<2Sc_G#>+~^ z3+wJbQm%C%>0T_Uf1;tlprI2P@02;JSJ$jvXWFmHdWb%v2whfqe7%X>Mrcd$xL7(Bt$TQ3A+^alG0AKwPdja!MK@a<+?1e65QCZL zXtYmsyd6(cOC8;_YGS}u(O(DZRxMAT++&_VSM|^E?`~{MNSbj+l;Vtotw0;}uLL z(_!2gtIDUySrVw{w+UA9FMZVUQ3sW}29X_MTxY7^S0bH(y(|`m$ZvmG7#r->oXN{A z!|>gx&s9C;1vfZ-4H}AA>-!;t!ytcO*@Ix8j$&7u_#e045?fj9(lM}Va`<9%w zL^SHEwf%rjDdVHyTd0vQETO(y9U*r#biPx1-(g)S+Glim*nae^?IfL3?h{21v0m`w z_D8O7k}I(L7D)9yTf7>EzKx@cE0IE#Fgx#)$SZ_D4GWph1gQC*VE+y zxvcmiyQzQZ*1RNZS1hE5Gfi?7v%0z*gQ|LO#!au+rl%5aUj%5>d)bJ`YQyA?wB88Q z?U67<9Xj)!x2$|E+t^@{p|?#VL+@KC?Y;3Hs@2#m_=Okckg`GZ%12L-n8erH(L)3j z=fJni1AMJ~I+b2J=jezS{Nfb&aeccD-@AXS_4Vi@i3pVuwhDa_)`VfY*$D32f_K{j zhC3yxp6fbJ$63?OcZ-5;*Y}jj>dHvSoPhsyeFC2&=b?RIj0dU7jsyTaJlKB;(0?WZ zAe@7O+~D7869B;d$N$$m=r`GTI=NavUb}hQzk1E(T@ ViMlc>+Jgh*_W=He9U_0Q{tM=OsF(l% delta 4632 zcma)AWmr^gx1OPU=&qr=5fDZiMY?+wP#i*1ln_Q*0jZ${5ebJbX&Aagnn6MV3F(fZ zj{3gu_nvc|Ki{8cKWpvv-1q*mu6wWhS&^BMq1V^K#-RoP00e+a^s~+a-TD^)wR8die+? z;M(c1?PX)0Qk*Y$>!Z*077Qb=yI}{$2QhGJI-_sO^@jDvRmStFi#bb?d9WOK*KyQs z`+}4>U6!)IL5ywS6K0$F>aB^`-0}Rwa7H9+A@Ci=3<#M)vWveQK@pQrwjQ5O#SgfSfU5-sUK~!GO$Avzq_o` z&7e*w;iP5{@>Vgpi|uzK6a8vrz@J8j0W8r~T-djPpvSV34)(G#cDL-srG9M@PjOhu zez&^JkboWyApijOMx^1Gz;9KkiTYxCnb6%Dcipu`b1`_2v|5t&)?_MI?p$m;E((IU zK0@iECl*9)Ou#`@4N!L(Lo=5X+YbVXGeOQ5wn`cslGz(>E!UUhGs}1T-v_ABK$Vmf zH8{P8(FgXQR5Rr)&_^lmnplA@v>L?k_RB_Xcr%6+BCNxPos_Yr;G+#TMN|~u9IP{j zo4HM@##q65kns4%Xq5>4e&@!$@dMf#I%HFDWP8zi_%Kb{j9}I%7r$mSO5MUPIr&p* zOFrSU*h6FAOPEp5p{uX7&mkR@TqA23d!yizpn_li(|a3#cUCwOvZQZ%54C6g{wsgf zIQ-lfRHJApU9$Qe&OPset_^9t6eGNInMz$`c`w~_G2ZDe8_!yo#PIE|;a*gdd~}r1 zw4=q;S*Ozr-XzwZ^@yayXvUNeb97f-1^AVi@oKLb&Bafa;#P zlm!VRxx50tEKC?rhGtm2;hJGr|;KKK&R+o3Uf5NyKVBBdiZVMRq z@#uZV4@puAbzHQ!`5U_sO?Z58-fy*)>6KjbeuKR2eCQ6s#(IN*D$Wa$$`mi|niFAh z4`sw;Vw=E%YQb5kx~)5}@wgOq^=6l+t5Iy^v3vN+)O(EDIpn}P`{T@y2#&XIsO>o4 z^+qm3*FLJ*s?@S<35%~W`1B+h@h$s1tJ-OUh+g4|&*^wLJYLHNJX0{Z6TLRJ)SxL< zFUMQa&STT4rWU}oS#nHH?wh3Oj>M(5AgNxpIN;~*+uA(cfU)#D!6YA~v2hq|gsR+* z8Y*-A(OX-)Oh6G;#b^gXHfCqcMR!m&WwG)_cyKid-_p_PTkJeQNrpVxO%gHiV(*?X z__YjJY|Bpvb74Fk~>{%eVb{j1%V&CnzC_0u0%XN(C)OMGtcp2@^DSy(NdH% z=@XA1Uaj|(-e6HpdX)NVxe5jWBe(CbXP=dYvPM#9t+Q;CckWp;v4?Me1!%fV-EZ6N!bryzjluk?EMS8OHFBrD)Q5XEb4)g!+v z{yzAtBE&=6AMko{23v__mKBhIJ^{q3RpY;6ErbA$^#2#fdNzC}#GH8kSIu7^^rt4Z z=ktF-{Hrt_^7{WVd;ho0e-Xp~WnMs0@C4S(@e-YZw^(EkZIn$!5D*32@?+-l)PRU#AUsBETy^tt?+V()LLEP}!K6A9Z8S-pmHQ?}WTvp=l zs$d319B<8X`7ZA1`C=1ZikG}V=4VI0Kquca?J0_`+}8)l_{_O&r({=Hh~fLkwk`ZO zetNwJ&eoH<(#PGz1j4-I&qT3A;rAVEI~ynHxqQ%)8XpboG>1WE(Y1&nz`qgHaQA*=Tti(_)bJ)q1@&yF28acMR2g-6GhaJNo5u~=>9R!Dy% zsxhoM?W))zF5jt*@xIBes9E5i(vZ0>vK#WLb^U-kUaEDr`P_P>)Oz&6J0G8S=-Ew) z*jspOv7yB&@|xsd))!%gU3Wezra)XMhmO;%=2vJf|e7=VPnMC@UP7`A9rv2fpO!iSwMVHAff zlAcE^l6?lXfE?FqiH#|F)?>3;q=2S6o0579jR5Ax$Rk%;QcbiY~Ar@lwf63&eP~4Q?aes|KKXk zt`$1e@US{Hfp2zVM0PVF#aM>a|Ac5WS)-}qdUNA#M;tDg^BgXP3`b!6zEoNhX;o?p z7tmehA<624p3!4g*1exHHV+)Q3XEd>wuAi~n^_tf7Lu7JVw}HL#TCV1M&ZK)_pi5c zcW^ZrS~~C_$aacKljZ5yO$L!`SHcjduUr+cpA{Y*W4}Sy@6MMLX`5+L8t@(@YghWe zn8#}(o0B#;X3-jxBqN35X506OEKFnEn;vZ4J{$hNd1hd|eTB&$9(DqI(uk{qtfiMP zJVW%i4|MouAVSCn;|8Fki0M)25UNXs0P23+|kTyE*qi zu~gyv{&CQ>X)r3$EqNk=w9b9^8R;jHD+(|CB&ZE~h;2Rq1pLbYVf}4@suVy7AkOdk zuxgzA;omzMN@i@*-?=px-!~8(06+=xkj4u)3zcLlh(Ob@!kzEo3Ssp#oHY3-F7#Y~ zQOpdRcL%E2@RHl9BE)7${TEaUa%Wxo-Gjt?UnnT&2S|$8>0^ur-^IU@*I^xZ7;(zH zCH%&WycN#=I;ecoXFp^ABB{Fi z_Jp6;eqKtM1;XWDT-YjtO)kUvA~|!BVgjV)siB_Iat!g}HjZHr;wd{;Vm* ztnY-Kcbole#IY8tNH84{qO#=Tuo%N*B=Ep1MX1PnuMti-9IyUh4<&KLctQ$;JS5l< z>@){8XzWX^6R9I(wIS;YnY#Q?#I9bP4mk%kReQOtMIe9e5J&yH^JKn$7p{H*hJ$UY z+x^dL`)>*P5^!I)TJ*U>s!(Yrd0HUG;05oV6gL0Kkt(S^%I}=u)jsIB zlGn>aJ%XyRO^kdacqp-`VlnzsGx5|rO6h~8eK?$b4=zWu!YF}w<@wW@Q)_vC;6A93 zzsQ%a zKHE)?0IDzQW3q!y*`!#8?`FEKk@-zG)~Pm}WpW4kJWn~I_&G+gEMW2@{D5|4_?sM9 zQ4PMkFuiG$bn)uQm4Jl9CnsUrF)b_SM~Us-KKc7l#}TmB!j8=4A-5qqq|udh7u z@g1%&FUuA%Y|%Bw_%niv*Jh}`l=oGS35>_^dW$2bw#s4JrNFs0Z6^W#G2a7phU1G@K zPhsOW(=XHc7l$%LDTA_w59&HZGRJ_KbaJFgvvH%Z24=MFJn+wGN@%-94GVi8X&(0r zBv{YA4B7Gsa75qPbaw6!bO|t!@pV*)F;P7*4wVIO(Q*##yGx!nEwz`H4(SD}P23WP zla+hcvL3FPl&WXuG^h&IJWhuv4h)zY*;b^iIi!qFR6KQnl(xC*^iwX`^RR?fJ;2&5bM5w=4KB zsQ_XL1OAoKe{M^#^zad@4B`a8CE~a7M6fZ^-ah(ujqBTg8>e}zm;jKDI) nEhdh?LhD~472*XG`yasn=ocFRK>L3HB@s1D{CKSlzmxw1nY*bQ diff --git a/Xceed.Words.NET.Examples/Samples/Chart/Output/LineChart.docx b/Xceed.Words.NET.Examples/Samples/Chart/Output/LineChart.docx index 5483ee4923dbb2453a4276a7cf197d670ed45fd1..7e990f1fc33b72c25478eba1540c02cff3503cca 100644 GIT binary patch delta 4728 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 delta 4735 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 K;FeJRj{OUzQPDgA diff --git a/Xceed.Words.NET.Examples/Samples/Chart/Output/PieChart.docx b/Xceed.Words.NET.Examples/Samples/Chart/Output/PieChart.docx index e4652c848ed1e7845321d9fb741f98d90a9f2ecb..54499d03a8d4ca5a48dcafaf444ce29cb8a65b7a 100644 GIT binary patch delta 4156 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 W#bx-q`mYu-%szyV_?+=q@&5oY_??3Q diff --git a/Xceed.Words.NET.Examples/Samples/Document/DocumentSample.cs b/Xceed.Words.NET.Examples/Samples/Document/DocumentSample.cs index 7dbe6c74..4f0bc053 100644 --- a/Xceed.Words.NET.Examples/Samples/Document/DocumentSample.cs +++ b/Xceed.Words.NET.Examples/Samples/Document/DocumentSample.cs @@ -13,6 +13,7 @@ using System; using System.Collections.Generic; using System.IO; +using System.Linq; using System.Text.RegularExpressions; using Xceed.Document.NET; @@ -128,7 +129,7 @@ public static void AddCustomProperties() document.AddCustomProperty( new CustomProperty( "Date", DateTime.Now ) ); // Add a paragraph displaying the number of custom properties. - var p = document.InsertParagraph( "This document contains " ).Append( document.CustomProperties.Count.ToString() ).Append(" Custom Properties :"); + var p = document.InsertParagraph( "This document contains " ).Append( document.CustomProperties.Count.ToString() ).Append( " Custom Properties :" ); p.SpacingAfter( 30 ); // Display each propertie's name and value. @@ -162,7 +163,7 @@ public static void ApplyTemplate() document.ApplyTemplate( templatePath ); // Add a paragraph at the end of the template. - document.InsertParagraph( "This paragraph is not part of the template." ).FontSize( 15d ).UnderlineStyle(UnderlineStyle.singleLine).SpacingBefore(50d); + document.InsertParagraph( "This paragraph is not part of the template." ).FontSize( 15d ).UnderlineStyle( UnderlineStyle.singleLine ).SpacingBefore( 50d ); // Save this document to disk. document.Save(); @@ -188,7 +189,7 @@ public static void AppendDocument() // Insert a document at the end of another document. // When true, document is added at the end. When false, document is added at beginning. - document1.InsertDocument( document2, true ); + document1.InsertDocument( document2, true, true ); // Save this document to disk. @@ -198,9 +199,21 @@ public static void AppendDocument() } } + /// + /// Insert a document inside another document. + /// + public static void InsertDocument() + { + + + + + // This option is available when you buy Xceed Words for .NET from https://xceed.com/xceed-words-for-net/. + } + public static void LoadDocumentWithFilename() { - using ( var doc = DocX.Load( DocumentSample.DocumentSampleResourcesDirectory + @"First.docx" ) ) + using( var doc = DocX.Load( DocumentSample.DocumentSampleResourcesDirectory + @"First.docx" ) ) { // Add a title doc.InsertParagraph( 0, "Load Document with File name", false ).FontSize( 15d ).SpacingAfter( 50d ).Alignment = Alignment.center; diff --git a/Xceed.Words.NET.Examples/Samples/Document/Output/AddCustomProperties.docx b/Xceed.Words.NET.Examples/Samples/Document/Output/AddCustomProperties.docx index 1e41a4e8fb18d59376b3bfecc596369054c81766..1c4564654ca01ed92c4714f62e2483b6e356f179 100644 GIT binary patch delta 3994 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 ahyVbIU;jq`pLl>NbT|ty`75UL#s30txmx=G delta 4062 zcma)`LX_w= zL5Mbp9wjh@_V24taq*Vk9+P}`+oNRo^#JWYwi73yi6RduS0g`8~^}kffBW+ zM&~t5hFfF6S1~SbBccq)@{T7BpXQaAG9uNWCTh3j-zx_?9-vZaHWCOiF1NRa)|P7k z!6k=af$ZB8`)SqlkGyMZh}Pfj>9jrhTag4hInt*cK@qbA%cL^#%`horUWr7~*75UY z-prUo_sVBX9j4@GRTz{P9G;JKzJzZ+?t)*=Tm8gzMgU`!PmOXfNbpx0C^8wgDZQLO zMU&=<-$pBmZlNI0T;sz~Vb>dyVsE}_O;&~L$p#XOO7wI0aJsIG(Wx4@l%m8mGsTgM z6gVG2HUT_^{SnhMuNdihsagJUCN*gvZZ)Lrh-Q48HoS)|M>@V#jW!U>o+8`rmj+$UT6e@v zc5WobWwH*dN=QB-XQ3c@81Ck!z#2Xz!HuSMB8dYZ;2gK}2W7n=tD<4u6&7@v>1>V) z>nSDvZ@+_&ti*d=4eXNlu9l2x^9j1xE4`t1#0WMifiF=(^%8G_jaW^mT25wU3i)e8 zJ|nGmZgN~6RLfTkycx*yMf~09%d^=xi<@vo0-QtK$m z3o*X5*V6-)6*z+IudnpzE1IRZeCK`&W0KW?)9EKd}3}cL?zl{P=1saJ;>M@{XiHqWHCjbtqMn$PWL6 zD(kz@tmAe=gv`Do4s>Z_mWDF0KJ(|DyAMY#gCz*<)sN|aq)Cw_6Mk&TLWW%ga)w8R z&01Xo>ki>bqgprbedUzznNh7WlPekj@PuEQmTD^$E$X^cbYoQrPR%CES>oE}fM> zSaF;Z1o6H`LL&ReMXXJD0>D*BcWFa2=N+32fwB^+oZ_MYp=+!@l7ejZbNh zm6?%>iVEtNyt)aScDX94vKEA`M0YJxf9Lb+G_N*_daYq8U2>sT!QCh&(m_mbm30A_ zapJC3O7};o3H~b=PYxm^raDqNRR5Dx^?Kjt`Er)Lny2B71q&hF%t^z7>Ak%CT9LJC z7Pbiqx$o-UP|b+mHugPqFlzhh>MQBS~U(5A%HZLH4eCUs)lh5E~qDbDbD&KU3wI$%%` zT{4MIQ*ism=OWG9rV%xDz>rx&R95!0_{gTX>4pG_cGYN-vev7*e67IOWcjDG8IojY zSgo(%-L|Sqv(SX)w z(~umjYYOo^^l49EXbK-=iZxfVQZ{9RChIJ$un*Q@DPPPbE*>x_(hPlWL@nx#UGyIK zIWJ&89pOZG&*Qsiy{6(bQt*JsJ6|1F!2pu*743!0y`mtla7LX4&gFJ@Aql61Xw?k| zD#ST_0(SH)D@K$G5yx%EB)T427sKUpxYu%&XyoS8 z#2n20r)iaR-vf9)(xwe*1%i%tm=ms<jJTIT5IkMb?j9b|0D4%^I&N&U8hN^o@uG)%i=Q^$YeccXpN$!g%bS>VfO+vNzv*0I4S1)}k-P9{H|lZm zM#It-A$jBowdJSEVQO}mSw&+jnbp3Z#Sdy2eV=c^gU=iwtV~Q?a?pAV3RZ%~a-dD+ z5UtGljcKC|gPDy{qe_))o2%gpFwr%Vk9<#%PMm&vY{dJI{H*(wmOkl)j#sD9w_<#H zsz0Do==Ihut0ybgr-sPamvBu*=@N${{7o;&OL(3T95`)fvUvt4Xqu6;OHNO}ol|rz zr?2$=8qMxTzR8rGocW^9#JS$Y7Zdpc2dy7Oaat~Amq<=fmm8Mswv?>W6t7l9d7WgJ zl#fFP)uoRMY`c6aTr+C7rz@PS%P{p@iuGF=UT-L2T@OxhqR;CK4J~%_cCI^)Wkq}; z>emyCy#_;JUBpRTv47Csk*((x9Gzu;WNcpNM(cUeS^V8A^XOZS#DU;inoYV2);!j7 zv6Kz9S>os2_%GmPW}2y#PcgPHL%fh0;e%(@-G)+Q#{Iq3Ik zOB;=o^wjc%D^ONZfEI!iy`3UTCQ?%<)DcE?yV*II@h7MF{jFK?4uc9H%k@2caqt?~ zwpm4);zyMt7RMl7>D38;E&q!YMPkE zq&cSr)Q5>C2t~;V%SPt6G-Jh`OL8x0m+2%6@8D}|^+cv8Ivn={*17_JHZosR8Z|#8 z?sKkaBX58f{AZ^bYk>f_hEK@zUb+rf71WOZym!ybvtW?@Or_wN9y)P(I61P9A+_zyk_WmfR5qxw(6tTDav-a@{`6{_OYh4rNEtzH!N%|Z; z+kpTE-BJha?h{vq;|FiIw#l9mD%Zwv1-fQBOa`#c1l>}!_ZUSD{WnR2ZBCu9;`DS# z@=Uun;qf7&d(Exot9#v(OM3>!D@Vl4?rs#%eP%Hgkd@@j!F_>1{gq9<%cF>obqC74rEy84h%A7K&M^`;2QTKry z`5vg3UEI-U-LGVFllyk;rejD@uR$wGY5n(>wqq+CHCl%ZRRp%`(z-x$I+go!OGgNC<_DIkewdUhq-l|7g^9H z2WS5H3#5NGLATnwT)6FRYPy2?ghb8@f!C;)-xycN7c zA5PYkzG;+zLIM~~1@O3ah7tSl7|=J(aSJl$@xV6k?c7)Ufq2A+jQT8y&7(>hW`F8T z5qxI^tmj*;E*Ey>2eRx)&G})Cg9S``cXSg|k@D<4W2-a{ z)%xvQac+ZJFQz}~`_+wG-4x~+;#a@dqO46hev;Y#BkVPuf?Ot<{I}O4^z~)bSD$fx zKp%^|p1y+ec>>Ng;XIR*c{ivxs5GdUuIsab!JL}*51*@P#oQX52j8KvgT3W#L46$( zQX$~)ewE^nh83I7BE|jdV1AYNog@J8>!JBw^#3(5Vvkwael!1H$^!uCug|~V7qQY1 zE}ma;e&2&rn?5N3aQuULLJweH(sTa3kpIY;A)QlIuQLF^^bd~~Y%PT6w=%JV(*knJ z*pdMN_#ccF_84;UH}mmsz`21_RZB_$VEhNufK_0<@SFLaey4HZ|B5q(^=IXyNMrfs F_YNTRYZ{ZL7!J*|D{=W82#Cj&0kv-+brXbH8)XyYKz`SLt+8 zsicxrrT$f&be-%Z5CSDxFmN;gBmfFftm~%MWG-ZB1p)w&LjnM(04UIeD;m@qW++f# zL*j@+uMnI#kUZTsNp1v`cy^HTa1RAE{IN=9|6HX?EH zVcnSadT`~%p_Z9POE`RZ2^rVKH`zalLBoyNh#cbxKI3~>T}4=`Qdu-AGFZr$K{aB z1BK+!{3XX6u>4A@#9(!UmZwd!J}Fub9&1_&s+AM)nu0V@qN6=&?GwAma2ER^P3-c%1x15G&`sRA z>|^id3z$lYD$bIq(A?EYL)@OrWuPOFa8fIRL2ow9@leL|Eksz^$@9kjD z-%A1j5CaI}aGEaa3c)bJ5dK;rH5m9KNK62LF);xI8WVWNZ)v|R)3}jy`wliNbs;;u zuva@GYv&%*jsnF?7W_S1VgNSPqnG2PDyJ469F90xKMkSP*LcC{_|(EIo|FW+!z1)-3W133oOfL)mh$cOeV4yoY=1_*cJLXmg`u6zNX00dJ9?+Q>Iul>X# z>9#^d^2H$fK1V?2LXZ#E$9y0h_!7H#L!|r?+YG!RIx9(NtJ?H4^x~Si7S)KlvgRVv zrT57O&tcjWiaP5&Tf7481s}!vZst8GDf(HxvX6s`X}u-eYhGg()v_CbU;+;~ z2QhTH5ew@I?XECHdX5UAa5zPkH--;e`dt%E&vigt2SLPQWcYa1Y6zYe3vo( z`$n|l!ti^wCt7tVrV2C~3%cw(8cPLzxv8F%&nWtjXc!1Q{5xOcIDsPj?qgH4AkcBSu+Je=ugFrdg>$h{E)nJ(pKXFtuT(lf=RNJTJx z8ZvUUMOv4Ps-rm`WeMAu6JPHit~o`Lguam9_bbBR69iw z*sEi`8U^)P;loj97OM1*^E#8uaSot*`x)F>vHyoNCd3>dmn=aZS5$F+?w^ zmCLLNHKcN2&z@XzV7!!5zSpmzeF(=ZiWLsm4c7OQ5JfN*P))bC9!hBmBnzO^f~*Tgm99G}W@WlfNp{<9CvHk|_f0HgXFb zJPV62cGI)D<2Hi=TH+`W0UB;+33_ky6bsM>XK=>+Rl+sdGo@dx+%uXR`o6a`${s}~ z^L>BQ4*`#rqzdDTr%Fpe-+JLrPT7Ab_F{$Eph<43mmk2rzwe3nh4KV$Tu(1f^ce1W z%Cz{|lnrN_1lisZJ3Tum3rw*+B0P&l#j1W4IzL9uBgs|=zZT8$gMp;=?Xeq2?23{p zsA^k(kWYak-b7FOf_Z>~4LJlyx@ScHyO<>k?KZbZ5F#iECL!elnOIWV|LajEPlQr# zY7D{sL87mrd~`L}tiN_pDf+;n|I zfW6gj=AR}ZAT+~wY?*;bXm0rTR+n80R{0%>U|3p-h>lqS;rY$(&K)`KXk5~f_o#RI zLHcz+3bm-FN_w%=E7RQ8J*WyP=Vi`YvU5n6b431362RfVGU|f?HB*1=Omt@LCKWc= za(Z}+eH11O#iRSb-nUNy!6y6`*)aNRVlmV7WJ3VMWVE!Dts)39T6+(;dlx4#1=46Q zc3aUAMKRJp>nH+=2zp~=lxM05g)P&u+A#wO=#J(qf z$ED~lex1Is^yBx#Q9gt*aBOM@sHGBymANHCCukN9-U`%|1-;Sx9pG6{9_Go^jq#0&xPzn_Tl`Y*M zpL{WV^~Q=ZNf#lzqhxufKmg9Y4%U_Tj5{O%R4~ zxo=yEXHdl7`uv?re>0b6w-_|sNbERfEnKxG20xnzIII+!fGu|5-k}=#QwmPjx2wW7 z%meSV+?G;|ZN3flKG~`xqHThHC5`vrR>|Z$mK6B7619n{^nr3k=!aN{ctg{sBq% zXY5TFs7xWf|JeB`@tBLyRl%cl;Pwt9#Fp<|rYmLYktU5;svk-EXv_<|k{c3L7xFh# zOiO#|ApaO#er?GT1b{LMg^Yc9%^a1vMidBrCw{sheyZaI24GMtjAotWgX_n|dAS_i zOCEgSmi2x%kY+}smuk5p94n1QDaa%JkW~VPZBUR%oro0@a3T;k@&BIoiR%8@F}klL z-P~GX9G-(LN%)HeORXWlWD!vxK`3-+-SKre;I`pnu;!xEgtxFEiI>4+cy58$#Nn-PM5lv@)t-r{p73mm7js z$q}QT#3GN$+`{dF@S!5#juPXgQyMN`e$2{4Gd^9lyAmyT;PX8*y|f2V&@uK6NEbFg za42qum9gRTjbN;d1yMm8`Kdb8z#1Mn2!{C;KqsHY;`SE1V^1d;dZ2}TRdmYr#_jZq z-+wz*@|vn(>gyiRajwhZeh<8XwhSGZDwjG?kOD)9pv%BV0&*8rDn&Xtz%>keR&~BN zC%H$0!O&B;h?B;ngR6uL7pU}4mlKUVr2?Gz`iE$MC2Gp0R76sHY_VHkiLQVtWdTq% ze4sYxvv_Dy@rg5fbC}ZTq)}-3*BJ=`eNg#SDk(DP@%>`D+*)x$%3Lxnnp(oyX51`5 zy96U@ycn730+kRhK88T5CMr3RkkCLlhGd#h3~I=I3F!QuOBhDh&*orM5qU|k@+R?O zAo?AeZNH=-oqok9peI%rV*x|j)k0$fVE^yl9K9HZ6Qke$v zhF4TdhA7UbMNJxxfGtoL*bf!|lj^izLJlC=$nq!V5}C2AzTDw+c)j5$h=zXaB1*Y5 zWrr#yJ2QXIkTUD541f;Z}yoTTGmiM>Dzd< zEx=GfVh{jsgk`b6uA!l{_F ztE$chpbg54(y30rNCU^@}(%TIs!_*`dc60_Ws z(?_nzl4Y}#ovfRvo0FcK2eIT^52Bt0*Gq?jX{j&6PCmp0&+80NGY^e@n)RZW(A-_m zq`0Dox43(+0_3?Q<$ZFxI18m-mScPHU78f)Hi$)En8$1A^FQV93boy244!87|8ruv4mV5`=`^M+NCnkRK~MSbUPdLD1@x44PqO+kn=bcOKiFE42)J);wSLK7dA)LG!ImAI6jy5$d-Kh;D}Gx4RA^7~kB*3hT^E&Nesg(eu_U z-k`n|)I2qng@CQRB;q|Z2LOf9`cCo}5$&4kOwDkwE<tywkO%jfJnM`#(GS-X)wHQyrRr7rE|c{t$MTCD-qsH-M-e9}h_NlX>?U2KU@q z4&6$P_yak=`aAMz?^r*=MA-&rTZjt!QNv2cp}Kyh570G>j{MP;knb*RyZoSy@NUk( z%2QV~n67*k>e#hv$9|#JLKAuX@dh+zcpVFh6R49}yXNoZ2np!DJr}~2dbd^fIUl{C zQS9eFMhlxkF6||;Xli8#N>^ucZka#7YE@uZgPHMJ{-BkUl>!Nby2IiXn@M#yspUi6 zn=aR<-&lieQb1yP%`#p6fpOD_yKGz5)ZS_Dy(STZPN80rkL@n^m0IJV9SQg+n6U_O zqCk1uyG81v*6*gpl_)%^w8v9W0PLCzYekcxGL4NOh&vjC27M%T3^E zP-Uxf!C$4P2}^2cx+)ZC^_QeU?(I(|Cce7z>A=iw?P_P={q)NVEUEo zM$2{94fqW3$x(lvcF@Y4!7#AF_6@fyQ?}=F%hy8Y{$@J*a8`8S*<=^vO)UiF?M6Af z>0HG_jL%{>j7IbfpOQZ2#m+?8BAg=;IMt^Gf`c4K(}SRtVFT-tm3}Q0jg`|hy3cYe z&70t)L1a1CVdsQX;LX3iMjmR#Du?nFy>Ur=WXu9R|(UHwn3PwS^O)Il(Yj70LfH9}~ayfKP19#f)C} zm^?l*f~me^g6KgBovK~}sxLRZNI!YXFhAIs7Q0oM*F_o@&;0?m>`^G39BG@g`z@Zi zN^bY=_*^-7A9xjT7^fz*4aBpl`m3Aslv8Ep?ytk_=yUlpnc8<>&O5PDoX@2Tma$(% zc97uDg{{6)A0ulI5jID8&#B4GtX#8dp|sI+*Hi9%qcF{zO?TmuX>YDv0cG9!qTmc= zr5+M_I=Br+m^=pbk`pL9PQafvwn60oqV@YKk9?t4(klW+XN0$)n=`D!E)(=NZ9lyI zBpH$+6Ip)hXnJDI>?@)4TQ-t_9H_6*Dq{nNq*K1GQHuLavcDNW0v!GMJ%YYy5U%BU zaES({S0bnn8`^uz+CnbBzik-=&V6m4Lledu)oMS??vgT4atD1qT>#I!S1#a}*y&0JQqUHy1lb>Zkx`%Ck~&Qtx+Xf%2L#oQ8?rUTf0 ztI?0S#&Vs3wYS%2eZ+yh@XA%hizp@EQ>C#3CRTp0)qE@M7THuttB0zvb*UP{SOyv! zPZp~d=eT5Gc8Y*HD*W&~oyXyQUtIR#8ylY5im4)=c2kFT-)O0BVc7K<|C5@zr{@&0 zbjg}8-Ux-JKk^0@I{|)ZCTDB@tkOwAt95nf*1WaN3Sq3!8FnxC6P*Dkg>15O1*Pet zJc!ZVB%hbh3s+9~eQ^!A6gm&A^O9|}Wf@c%FKzG%>Y^EDu)s8yv%WMHg zp0%w6hvZ}ja69W=kM|}l>zn8F4~hbAJ&mPb1QkwwRNg{!9N&8<|UeuWsPk|2PjCoS7x9Zk#>a_L>`|2a{} z!J-NTP7*!YaYx^dNhLNxX4Tut!XbOCUwFC;HwKbflR;5OUZOO97Gpysg&w{I`}Mg2D@EMZ-k%ez8j>C7^@G7eJy}b5XuY0mRt$yg2GhidhbNTRo-FKX z@jY~ux*F+<*-DNrO7+N?tZ9Ooy+ibOE@Rgs<>Tft!cmP%<+yGo4ebORy8;lD*M|Y6 zz!$SJ(#B&}Rn@Suf(0r;MXrzY8n3lO_w;3wOqX!9pB`sA(5ldZ2@qe)p~h6`GLfWD zKl=R4ykc{(`okh}uOIgF4iCvvQ^i?&)-};=@PKx*UkR?rqYfz;5t2)Z#CVA`R0iI* z;LJ;3w@Y{p)G?^uypaqWc~sv0)*w-6UY&aH#a$XXdr`EotN@%238P%mYO8-W}nIpq$9<)*LGf*M&&ef$PBN%Lah`Dr}kw#LH(9Ett9TL0DI0i5A5^`%oVYEu22ba==JR+g5LiS#A z5;9XMk^Jsft_cANxp-)G7I3PNz`ueGP<6ru=HLLpGduu*3;+P!?VU^*olRX_EbYvl z89Z!l8Z=hyb~uoH87F~Ax4M$T$$A5jS$C+rW zs1}bmzL+@fkEU%oaN%wE`Fu-rBoa}{o{&En;DC=G#GCOEG^E=;_;$NMk*Ra} zVn&tSSbc4j%0(NhACX$eRCCDXt>KVlX)CnCnInw`M=7!!s`dchS5LGEDMM}v9bq{< zOW(go5~PCpnwpnL{8m>ta~2FtB0ES~E*4rIk>kouM%T+=Y`qE1u=h&&cQ7I@Yk7QFXL72 zI4*aWw+Gw7V_pQhR2kTEhweLPCI#vPc?uEwTEO`?V?<>!&=QJh4tQOM|3Eg@JeN{5PW9ZO;V)MSjHoP z_))2tz}`tg2+j|6Q9||JJQ}a1#J?hNI0ST1Qf(iQYeWL;UK&q7zC1LkS1l4_c-+?5 zh?XTAaBD12H&P}zu-|!KY5c@6Wb|Fpg9BuibX*65_@8{oy!QfZ+7taC7P1IC*(3T5 zk7v&Ujulgs%L%}$>ezD$|F+G2?}c<}pVsco&#CD$QOcjC!%-F*wGqr=H~&?VNmI01 zgboD_d&LU~RikZ4mYu@3P#rGROZfpH`4q%OZo;au%^H{i~nt&kIj{vyCg5pV(bNMKlVtHhrnJM64RD^wcWQM_#gQVy%fBwe9#fB3TIrs4k5=RM4=o(?X)se{LCU#ecGFbQG3&XWQYp7 z+1l#(?ipDzi5qhZ{^z=QO1_cDxXl;!4~f~KU^!*s`7u?XC3ib=4kf@6&ukZBA1tsW zP!Jyo(GS<{f4FG3$lYG29IDW+#-G6YYe210Jf}Ln@_B9X*inyReMR$xnY_>e)r}IP zfwf=WJPbQ&avnBS7!4EWQWn?EjtvxeP`z1phX*F7J;r_!$cQ%9f!}8@4^KaGt zmwMV_&dRa{0|1UO005MKsV6&ETO(7aPX+atews_s`7y(U7P=9)D4O_?rn_9279QAa zF-a603mIX~>4Mw2X<(cG;P6EoMAI@%+!c+0zwW98iqgtj>=qx#D4Vnzyttnk9DF!Txu{piT_G9G%1~3hcSsjLp5!ry))ZX#R zms6W$3MUgD=y2Lc9gnkdfwevr8{xbcY#X})22Oh0!C~dXM&lr-MnBn%3H8e=j^a%U zh^0Fjv)d#+E@z768i>l@)cYMv z>}-lW_)VZp3ah+FZ?GfZGW^6=_*U6N0TUgn9C{-I%P38nWe)s z#0;PqC`NgtjMgx zBs#}>S8Zsgnkd|8?C4UrEAopwB;3$jv%06k2(sKMA}!`?rFL1m^~f$3E`ww;!~!Xs zhW0Pbu936`jn;rW=mk0=36$P7ne^dniaVcNV2uwkb1N$aM2VrJsn>V)@bS~DJ2p7b zkKxA5ERc~B3i~UV8N>`YjY4sH_6F~Pbklkk$HDWYljrqp5WO@v&>RUYaam-$y%h(V zywN50GMxkN0!_kHz%^KBm93xe^Av{%s>T=^BLc{hw-#m;Oiwh+fRkAaXr6T-_X3sEMy{$hy0M1+~x!l=g+xf7DbHee-|`Im|U!bOKtR2-un-w}}Q+UU}CI=gt< znEu0n=*W_HUg1Isz0hg+2q>62@2(*qamtJ|9|pR`H&}1?p>ij%iiu#%ljV{N14pY2 zkn+i-|@^m7ZpTzCst zYU0#r7QVJW4BxC@biLgW66Of*9<%Rz{sggnCx)KzW-Zt!L_oZ87(h+#N^s6TW-MZn zO$AO9)`j&3o5u9N5+x30QZpmhC{=|8<>e_?4Vc(cIq{$qe~|T(Y?ZK_5SsDLi>2+e zGEZREA8^#0r-|Rlh4M|@DNs80%ce@Dq`o8hqad5Hq^RC0T*$4F1WlJc#Eb%^+d(s3 zz~BIeXxAxr-yhg_l&UP9#b%>fwVlLF9DxqeH2}~2Us{yIhR6%OPI`rl-}hKE{ZsOl)NFm#q<- zD4$AeeN_;CJKcL1eE>Y!;IDaX=fq<3@l3LR;xRkw-9E8&b8!8}dDlKT6O^;#G$m&L z*gjYrbQLo8=wb0C@4cRYsUyzQ80jEGc=Uh{t&rQMw7D_<{jhk|jZWqOCo_{?;FW3^ z!7L;`!#1s|!PK~I@7I_D2eHy}=m0PY_t@a_NCR8o+M@gx^MHQ_yyNm+iR0kL$huXQW*u-pAU>b?=(mZqu=YC)S#X-@>%IDl`2zpkS!!Iaj$@f#!c?8 z11q?lSN96*9^QGJ>+46j_7`uTa2nl6IV}}q@U~we?7^E!npVRlS!v|>L#=NcFD-<7MCZy_>k_lhYGJLkcmFBqT?_W~JM=jVI;`>kuk}@Vf!>rk% zK8T*e;|wDQMD+2{S%n9u0XRc57J|8Y{?u<~X^7=Ybu4q>dO!s-x>2&V;3#FC35~df z{u&dA6mdLf?Oje4OB^z-8WRhXhWOmLB$-eNb!x2+S-egh8QlI)82yA9ne{&Airo7D z0u$yAOq%@+)*`=yyb6t)QD|Q`Is%nKb4C-eZ@x%;&BoZ?e-?c(63v<16o_jw+7hR% z9e|2lhYSIIAwQ;OlMq6rU~3JlgdOy*pj75*M%*x31|xu-#u2>IDEXkr({2M(7B2|GO;MPLHpjaByD0~~(e)-n z^X!zKLrE{~4vF*)e{i?qQJ!J7Hw+N8V*oDsJhrs^oe~w<6^KpYX#NR`pTLQ|FYp|G zYQ+&H?IxYkPu5mhVKl9vOGi;7@W5=D%kOBx9C2rv+V{*RXXK0XSsEh<;lncr0eC7l zkBexqiW?g2RJ$@^U`_6rju#w!4Vc0QtNQ7lmYK|1JXGJB5afVhAP1Z!IF62#p$jwc z5m}o=X$e!G#=kXlq$58Qo|?n50N`RqH|ngcT1(9RY)cLCq1XvGuf(@?WHZuTdv9n_ zEL7I}VFN@*WJUjOJ~AW1QPG}Pj&JDbU}AeVpJ9KTHD&m)+{A|>UTeYMu4V1An#K(H z{>^&8N~Io>>j=`H9t+q2Sw0-f{@aohVAK6#=Wh(Kh_lMkyk9KNo57&bO&&)e&uN_8 zj-Of#$8gdGO~3V77KySR!qN@?<~a=QW?oe8V$4%egd6lnl@l(m+D>y})HOjn{}SwB(zH;zwO9jP7^lL!X1==xnw^ZbTf%!7QVR+)B?(-dVk|arxt8 zFFO^D7w3f5$Dav-%wnA7Wvs2zdi2xsJznH^ElT>(%v4puScp}@Oo&ytIeX30dPTf; zDDyBx(AE&|ti+tq#t{D7#t=xM4WLpz+8|`#Dgfic$_aRsL}&p9uDkho>u1$YNCNIbzzwNZ;Nl%7#>CB zU{1ed^oBMFoJL^;g?xTRVu%Jeyh|(nz|4qEu*=1xuhRVT6JxnisK`zUHo6yK+%;SC zczMK5Y4F@Fh$lgsDg{I*VT+0vC_(Olo*Ny1Nh7khEQFpbzkJyUT18SXjay7ITLQ0! z-1_x1=TgR@BwnoZnfph@XR^K%qJexo3t0-aR{Afj*^1BHa{j+1>C&HA{|^fPqy_x{ z_VQo-{l`EKEA&+-`JEgytK}ee75zKRp5&No2hl#{ShGhSBP6@^??0>$^cXiPt-53y zv>$al%(SbDUBpIG`ZXVdCFVpAt!tmQ{?y+6}& zk;YwMd!Ci!e?ZP64jQa?SrJ5Utl}*=-&X8b+_r04c3`R#>+4w4kDuMkCs{U_cF8R_ zgr9FCC+oOxpTf0a?&GpYR6KmB!`e+t&E%YgA_n3YW6obKP7TdvBp=KAWn!DyJ-XjHzH#~U zyV~o-RgO&a8UAePzQ0i@k5)`w-+yp9(||t*xZCbfQ)}sWVzoaXA0FOpdN?@M+y_0i zDs@|zo~5WErVys!@yk}bDjwaKCxCG%SmpV+aF7zI_bCQk5|sD~CphfIGZTDEx=i#XTX2zYj9F`YS? zHk%fU7sN187|_(TE8Sc4uJ&HH=rfiYeh&QSz-moi)2rae*~j0u_2*xMVF4E~)Cvlp zzDqx_gmEk!VCIa0bq^B~;PRonQ*@}Ua2SnR{Ttk%{(#}im++&xQ1X`esIv2!i{%pM zN27=MkB1!w;+wtkrCn4|?AsPBc-1)n1x>83q5hW@D<)KE@jY16DN%-dA)}V&jxDRGtu%EQN!s>d1`>xA<{T0^ia&2E#_GK?Q{%WHxaK%-0(e=a@+Nhfl z^u!|bDG)vM#UEZc_N=xRBO~QNGW(BUm)X^)yYu4%4Dk1C|K)91V#*>52K}7(&$pTX z_BNQ=+qtNHGqN%L^fmx(&Jx$`mYJ|ZCn(Pd$}>}50RhAobJHa9>0Z_H%L>suWb?16 zONEKDi~XmNZnYyvwx_ZpL|RJPLK$vKB#C|RuVj9&12bik-BVz5q14>Yuh|DgG!c=h za%SVh1DM8Nu%k?aTjE{zZHgT$88$l8Dk*E?=ZUZw$HZdO610IC^12JLi7+-^GdPw9fHcRo2W}J4Lp1F1Xhbc;Gc&sA!=vvS;w#@5uiD1go3ALkY z^>?xs)&+TTv?9>~+_3uB;AT!?S6}F34aI2lj8=k%Y&MF8x*axXE5SFwLI*(tF^I@+ zueb(0MjXDGWc31n?Qm`V=>3IrP@hr)B4?6!OC_V^>3UPMxQ&)kuaH03G3yYv622No zl<*LthQr7mYdD8Yhez|fm@OqosRgSzJrIl#Ok`yOq=FI!7V8b7HW4UVc*+37LYI^) zFw18s;M|_O@XY;ZZ6N{8TJ)?^z~Xj5lc}?W=W4iA!hHZpCtbGwrCdv(Od{kP^ljDX zG}!(5lXw&&uW%i?#oTQMeg5Y640^wgLZ91NdU^c%`!r~)Nq)V&7#YK*Ee1u=!@KS+ zz&nU8JkOdZ{<+Il`OMy0_ibQXzY(K70)5`qWg+>6UP}A+JR>*dpO<=M*?!&|j^GaJ zjU0(h2LCqT)Q~6d!V(arnS0-+M9X{nBj$ysRy5ola26o5c5gWNC4;jj8W5y){9q{ebe_ZmSE&;Pb(ia77e zUph#S^HTJ9xAk7)YenPAN{diT2R;!5hn@%_K(I4pzb+UMcHWA(oyKd}-Fz)glb1kS z7a_Bt5(boGysZU?6G1aZI z^z8~S{L`(@k&~CdgK@NDBzRoOk0gz!ybgaG>xpf!LAPH#3YC>lCOc#z%;+TJEV7=C z@a0Z2ciH{2iaC#(Td}TAoMU{*#DWj1l^DLu@(Bd~uOJIFf^V_1%jcqu)M4Tfg8=3K zT9OXZE5g!st=0evwiaOvD924%?WJ+$?M7rv6mk&T4+3}7f^b~!rHT6)Z?{dejkHr# z(b@6jCm;1)Z0)1OM)|a^uMe0Do)`($GFav{qlj2HxPE?+Ro$L&(#E6VJp(NEs@Jpw zziety9VJXAfUUghX=p5jlqm5kI1luQ~=f4O-g#P&Y`sx+8|N6wU@< zrBN_6MoQMCAvl76k-X&vBl~~hk!Io-99xE*D><;wHQ01}%y3E36254zL6ztnRP62g z^h5ov-vNK!eWL$V@Pm)TfSS)L;?Gq<1>gaUU7cO*Z8dFe7%g2)ZJGb_Clmd`0#N-# zixWl%R>TS;1TrCsSBZE5A{jK1e#aiF%cnOxsSX3=m$9dRK-$~S9YX6W?7yWvsa~jG z)ba*fK;za7!N!Ttb6H42MGK*{HJ;OoHyIL{MGR=(MW?2v$P8PUUGnVL0}9uqx~&zA zQ^}(9*sCd>Z~W<+#FdBF@5iUnZdnBTB<~6BlR&?Oep7mNI6Adtv)7*BLR`x`+PfarO^(Ke>&zDvDnDKsQJCGn%jP%q*u*$6p3WxQ8Fo#kC!eItHUTo9w!#i@T z4D#N5PfKv0hLg8!_6*jo_G0LbY;Nw$F;r^ca&M&>_r^Z^M<`vcUL-W=0M-F%fpGNl zaCMJXTm9*j4tByVSbry{3}-P$nO;7(F>h&daFe}T;PL#y!?V`IR#p2~o%ScjJ*&!u z?(PxKS8(m5TLke71Le2RvmOML9`OIV3HLcq06@Y%jTA^;0wXOB(O>q!-#4-T865ow z&Oee~$b>ptQiA`EEPsY5@cyp-%st|NQk#OrgZyW&3Hoq2pGL*M9zmjnYg$sO|1ALf zFBAYEnc`pJ*n}=ROxyo09P&3Z9qoT1|Bv9vf3p0auG+ub4>A0!vwt{l<7v_G{x&@U zpR@Mw4 e{68uDEkR1M5TDm6KV9ITpYYGU0FeCa*Z%>G=Too% delta 7198 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 Ia{hk%FJxyK&;S4c diff --git a/Xceed.Words.NET.Examples/Samples/Document/Output/ApplyTemplate.docx b/Xceed.Words.NET.Examples/Samples/Document/Output/ApplyTemplate.docx index c437da309a472524f74e5efbcacaba9369d68520..4ceb10745404bdfd93685b94a52794676a676411 100644 GIT binary patch delta 653 zcmdnDj&a{QM!o=VW)?065LgjY7P65~m6-*^*lfmiy0xE0gAjAf7L5N!v)V59Tj!@Qjj~^31MvWw}CLe`P)Jm<^k3aMp*zBs#e; zNDnFGKq7mC^dQ>b2U$TFy1`IObAq9ku7!!b35L2*Cj_cE3&vOhV>}D7;Q&RK`tu8u zCL4r^O?C)X01J3sddxUE4=7LI-26fH5umAvA Ct@o_} delta 653 zcmdnDj&a{QM!o=VW)?065ZLJ26ugm7m6-*^*lfmiy0xE0gAjAf7L5N!v)V59Tj!@Qjj~^31MvWw}CLe`P)Jm<^k3aMp*zBs#e; zNDnFGKq7mC^dQ>b2U$TFy1`IObAq9ku7!!b35L2*Cj_cE3&vOhV>}D7;Q&RK`tu8u zCL4r^O?C)X01J3sddxUE4=7LI-26fH5umAvX C&i3;F diff --git a/Xceed.Words.NET.Examples/Samples/Document/Output/LoadDocumentWithFilename.docx b/Xceed.Words.NET.Examples/Samples/Document/Output/LoadDocumentWithFilename.docx index 62f06923391eff83e0233bfba0a2e490006de53f..d8aa08ca809474a5154f10a73c81c273511cb057 100644 GIT binary patch delta 10330 zcmaKS1ymhP()LAzI~NHa++Biea1ZY8u0aM1?iYtZfMCHrcz^)G-Q9z`2KmVDzWeTe z=llP@r)K)r)KvB9K3!e&RNd>$xRNN#!NB5x;6Vr=5QrSap5Uly0R;jTz=1&6AOvX0 zI6ZbX8!|M9O*bosB?wC`WvhnLo(z=b^+zsX1)2 zE~}NL7Gu?klyGl%+gFlpm!p+#I_hjf^LmFGO)6i^&;1lDe6!4sj^xSkNbQJjIL_@V^gY zbG9#^#bY5>KvlUOOK5doUfAGt4DpN74}1zQ2^=)7oB4zhF$3aUeVQlI%~VU6;)@j` zD^I?StG@Bc*VyHB3P`)$)10MFyqdodZA-){hMD(mF$)t0K>~?zYI9+TV9<*7Jk$@y zHBByGW|UnM0)>bN9O-F0E`9_1cYJ?%)p=6hB!`rNQa1wo3nV(pe^DkaTc&Ft|Le7DJq|ij?*TzChAW2}Ctv)nW!cZ!(h>LIbf1LVi35eOZ|I$HXRIB0#>nD#IUobG3#_6t(YDfzH$hXX z0Xw(?5A9t6KEY!pLerrlR?HFnNZMszjjGa&}7xG0k|R)yA$MS*9s0N1#8o+?CVmVt;`$eWUTjhI*w z267>=uYBGVPf{Xx;lE;%r6y{XX32OWO?hM(X8}KEJ};2;FkcwDRcEd#kNWC_RIgFU z4QeN`2nrBHQ8SO|#P=ycyyQ3f+23{&FK-u|nz0lEdQis{{@nl;3*~AwLMIww30aDu z2WGCY1%nJlnG@G3tk^EzFm1z zoCM-!^G?^t7Uu2YQOWf}E$~4k`;9MK^SRsl@`bX5HbQ{(kHSZd=L^Z;cP#B$w-h*` zl8v23)}$JoslBuxf|)}f$DvJFo4%3_kalwe8hm!<$@-@y(aiT}rK9P1wDxNn*%U%* zOSEXoQ*vEjkxvj;Jt}D?))lJcm|ZGQD?aLSK(J)({8VQnlhZZpLy9v-(wJ;mBuHNS zHf4c8?ncJVWi{PCjwBcRk%eq>j+d8-Vl(l$KJ`I16kV6yfFsqTG-b5v&umjp3E&eT zSwQhbJsPx@w>6+CI+S=9$Ku+Ckv~YtiYU^%^&Ym3fzrqC#)KE)&AqJ2X{nCpi6q|@ zbw#W=#oD%{R%nkYZ<8whs1I$cZ$oD^cQc~}&g)p}CPt|gM6O@QziMhIVpq%^#f9a9 zfwptR05C@L0RyR+1wQQcrhEQIYVsZXYV8TFJbyt6CvR zmh>xkNw$Z-YJhsrj_Qx+`4O|Hlks>%_lZ$8L@MZmB7pN=M~JxY;a%Mao4SFVi_|1q z9siLUMX);OlVC%yv7Ng*kL7 zl_~sp;(M<8XE&Nz8^+t?E6ar;$zJ>ldJM8psxnSC#=5n{n@)k|Tn|PXx@zZ&9P^VY zcn!CUk%{C%M7kQmZOO0-TTLmzOtoTapv6VSojlcV0&}I10GK&!wuGH#(DhM7lR8Z- z)admkH5TVJWtW}?(T^|tCc^g)s1XQI%g*jjZsZAUHXIf*O<<#na@DYGg^`rPnNM|pFJCMkTH{lbBkWw=<`(eV8z zB3g;$_h<}{Hh~T$ZzLqaB`_n5@?9U!z`AT5=Nh~Sf{ytMJn26fKcw|+kUBzTck_;9 z`}+^X6f8^0wEMm5n3lx=)KQHbg?a9IoUU#9w6xR`9BSH&C<5$?7e-=pm9c#^e1Ia~ zj@+?~Q~|jprdLY4;-6K*L=aTnFUZFfnd%;O4&CCX@Lfj5Klgv$&zPWlzSoBwA`D}Q z*KYOX81rZuC8MB1(3xCUqtlI~xh;m|HXK}8>TH-%;sSLGk49_ppb?Zc<5j=Av)5Y2AhEs=AF|CPl4^LAuBN>^E}P%=N;sku2bQ zmn9O5n4tH0nGGc}NWF!~TpEIwo_R?A$rm9#glChxh+|~ZFiwL=)tLhxGo$IZ^z)r> zS?#WHB33;>t=!4LI8=GGdl8J$JNI8?$=kXI#&}IRj;Og$wEbaP5y+D8S5}--%27?5=!M$3v>~)iF zvOJbxD_skX!-1W17|ffKufU>YPnl%RoiE|PPs|@`%7#mNJl^0=wA<#hI8EuWP=pQN zXfx@}ZpIJ^kZx}K9de;7hAYmBE`rcXl0@SaPG$wX&Bs;QlOOW5Ha+-HkkmfacVdUL8?&`%;L2fAH{$-fqBxNEx2+^|DC znISrz>sf_LBBNN|&SRdm*XStzz!M9FE<=9ux$%34QROC`U;PGX&OhPp82`Ms-uK|pkQ|=UIP;D znB3(t{LiMWVUS^jveaQ?wgnxg_E-sn8_5iXP`Y`^#@PU7e{)*%jh?f8eeiZa11<|f zm(dN-s53CO%X6?Au<}ERYOVVyt|x(8Vz^JuVuNS;3%ZIr)ARXPa<7!i6-lPAeYcV- zFz#o}n*wqgshg+muI}IuqE~GxJ=sSaLW5pKx2(HIvw9yk@3r;(ipsoy7db4okeK;j z=>*r@?hh*bc+|df&O?)zoC(Tp&ZFmEbt?5IZXj)GyBGfNNVB#*iWu%C(rl<5fM66I$l`+Nm>&Ex7#l?ly zJ(8h){jAk5DYzSH9PSHpwPvu)_kI~M@aZB#R51c4eHJv)m7X8CcID7Lg4xcOoLAQs zV=xT^$KnjyDXGJPyYG|;l3N{$r2Q4KZ$2Z~D-!YStYto3(?bE3=oqUA^X_!zMR|AIlhkajEyt z^Df8>ul>`{f?UT)OHKB7rqVIH~UXzD_M9Cv_iz)NvwCqnvSGb{&a7962eK{A>EMe2=c z3Gk>DM5def^HQPozcz>`NxuVbj#3%Y4#bJElA7*!vFGO;O__CVGvZ?9J|^nF(YPAukr$}t45ndRN&V|_VAtVrHDU`f9beq%fRMxBa#1w6$<6I zk?d+gWC@4KrU$lSXXYf3vt^S}PA{RsIl^H9d5T~h&1Ji>?v+T(7_3eUe@3>BKY=G! z&Y}o3k^E61!j|+Hxhs1rAI$bVG>xd! zB?lP*Zwt|WG{Fk4#fi&-aUezXyZr70Kj9l{^DE5~HkAt0al#Km9>PQ_!eMIApnL;O zyx-!QiO18E1HvqHDFe_B;D&oX$^E23p z#cxp`1(a3Nb{+&3a1f1m{QX6DZw@~+CgsRBpt__sk8wTg~STlMT%-izw0v-X++1)qNtqxYO)Q@&cVD_ zZ;{kF1x4Qwuby0t=?SV9PS-?x0GmJ8KOT?`5CMGQ+;?rh-70k7?A&4eC9Vp}W3bqC zn7-Od#j7LBj4uJc3hzosmm8_DTlVu3ndl>T+TZzDI#{^n&==Lbuj*pOnvJqL$#!=r zcYUqjCgPloE|MdxlU{00oK<9Qz;IDN^id=4-{wp#fPFS!}`Wzyy^92@?ZwJt&<4zvdj~_*!dKLKR!p z1tA=Hz3L5;IaL`I_setp&ic$Ni&_V4RE1919yH*3jvfWeFoNW<8RRrk96Z8PIb^2? zf}JyQF8aF|_AK~ydOMz1X`i!A)F0tR+I*?{v1Ec;Knhr#l&fNk+Ht||ycr)RTM~q| zmt#^G9N7S!-e1s*B^J`n*2)m+BLeQB; zud1N6z`AR^))RG5NftUlgaB2;=$-GwqEJJQK#S#+j&Vu&8pmRbn?3S{7G(&FrAGxG zUamb|j8{NdkF@_#BH`)@{>pfK zgzI*Qef%m6?3>FrZW}jFdM9~xrm=5$2zfRM)Q{2tzTQ~eR-??M{}+`^oa;CBDcH6w zP6@_nG05Zu6Us?)VdUPamUy6%cxqR%h!xNzDm@CtL&ZCZwfER_w0s$??rGAj#8kMF z-_cS97VZtFo~SQ@;>%Tkdh~hohk`){%v}^${ph8Hv>eZb8m9_*6e^X*FYD6pYx`mye&8-o zhWp(SDhS_G{ucMm5_^_cqd01q+Y%uzO)(#(wbMP^B&ZmWpxINw>6n;iYnRT)DXEkB z(Fey>;{1AMj8<33?oDe7#i$48IqSkOb9wolGmKlX_%z2=m63y5l4ygevs>+!SRUWU za3deBs;+Vq_%fG>^tksGI;9!5gIoBonctV+bf*LHLc05CxM9)OgER~F(ox`+O+WY(6 zk8^urYYyYEph3<1XyZj8b;Ypvx>&?P=i4Sxv@;$9m6A>C$A`az8wGy!+jiEoV;7o0 zGyHxNFl4TUySB@U8Ri}$K8k2ShVi?qk$5G^$PSp9<1g(sY|mERED@HEd91a0xLc&- zx?XZhqlg<}I3I;X3XtUJZ7rf^A}=U^Q*nm&?%Pei`7N`Jx}4k3PoPYA-4>Yb-WhOS zB~0)OFyP7PYgvOvX)9cRQoG>o8tw{Ybw&b3j z(?Gca*dE;9bNuf;inTd7D}@3Ap#_6L=zr}|S2u4v^M3>oZJ!ie7kRNlPju^_0}CdP zJFBS%U9uuA2LO-6dfSa3*nAKU2{G^tWiFK{FjQ%X@r6=aLE0>T8^R>(i@?3&AGovI zw`!Qk>$RcHZ1!R0po4!OP5{-Maw6=)Ah+<P*|j)EOhH1rFnUhI?(h->yfOA)(V8Zbdx8`d3S9@q0gmeij`$A($0 zTp1RepRZEcYi3XD@)no;nX;Q=y@dUM)IwlJB7KL0Z4|F=m%Gj~UGhRcRABT-=zoToZO-*9azS6aJDOvP~M zxJZ~e15Pp3Anz}E+B5@3n6uq3`h|1R+Z>rcTe$YkB777E@Tu0rGQ-p@?67PTkFP{L z^^CrY;x?TtDZ5Km&3()s2_+l5!{|T7&Z(i$Xwo(VTX<@>RT(sBH9u%E-BPF}zZxag zB0+Mld|jy2igHNi;sz!_UV=N=B6#%dBcj_!RH4Py;1{=0gCBo(wx{2r6N7vmv>ZK7ZZqAj;b0S4~;JM-}H(wN~!UGK7)Tg z(PJjr4mmK zFHhq0*p`3&aEv*C+~Ff~-gQC(w4Szvy=Hkh9`AW!v7WuK`2VnwINLLr0eGIb+G>)? zrD}BV>2c9<0P^4(^*0LBN|8)qrr9dTe8lB7V;{Oi;84@=T6I-vC@0b1&&&p9!KNZ3DV zC7i1tK=){oj$Wo*%RUXO4=7SH4pAH>s?Fe1C5c>hws=&n2`RO!&8*Do z6LS-iWkaPj=(OA9h}sEdU-!Jw&x9=NW`1NbY6aF{epoI5fEU)+p zUHVM*T5H-vYM9x~y#jpFyOVaj0U}-Q$%iL{Vl&q)F8cY0-pdw}ud;WOl14GI;6N^V zXV?mpl-(|GhgCc|qF^`=B~dbl9NV&Jb8aS+^EKvgQ{(zhCEX006fzfrA)Q8h`9@Vf zNC0$OFG|XB{MXJW8f;8=fPmWB@`aRMh=*WD=sx_=hC52eLngC_vZbQjWI|Dok-A#w zhRr%x(AkPD;>tSh$33UKi67w$H%=JN_w6(s=&sl@A)?+Up}((P{mhJ+Bc*L3QMm6R zaGV&X^0Q}pRtisXe_b;q*a^*09+)E8kBO9J3^ViT&XoD}0OZ_O_w zHga|{vp<^2blm?mZgjKID1aqdVM zTl0YII)6I^n1ZYlY;v@&=Zf>YvYmh zqS=1=?(WBAa~ATU6FT>OG8xUS@Xq3&(jOjC*x&!)psM-X71DhB84|=M!BbYs(JZ6S zG@;P-fr_X}*#MD^wlV}Cy)uLqz49_=`7Y97bq8 zv~-sa6s2)FXhc*6@<2_76KLqZ_2pIzD&&QiSfv4y(PF@du+eb9RcSbhnL-k%$p8_o zUL;UY9}*dgEnIxaKU8#v_ac$Oo5Nvj8pC1iywHDW{+E^j%4l3rWE`#t{y)bNKP9$( z)%0PuT-5JU#btL`>XTCcjKYJl@QCTrn2+T~UW|j;u1_g*fiDW7ZHQ^twA1Yrqk zWAQTMAr84jOqE)%K7$t;M2Z}gkz=~iM%=Tt_7?^nl>3f7g5N^uXj7qdA)U1RfE1M% zZf;ECDZSY8f(UM|!oq0-bR|Wd%-Try-{r2Zco{;3Q2|62K%z5g|kU*!gBV}dTuSyl3ITS@_K z7I*S&HGMeG@*LTNw-N6;4X&SUclB9TD{MMs>veAR+AMS`i`^s!Q+u>-LZqg}f7#aD ztt-^|uJ3*Q1ekXR-BZ;^HRkHHs2Fw_)pvi+c#SdQhTL_pk{Am=h2Cel(qTgqv${ky z>v~zfQ-0a1W!;9SL2jUH%QSLyt&nV8Z{8ulP#=E0ftjM~xp9cng17UUE28}7Sp(T& zLV7aiAazmWH%?pCvn@}-0Az<{msq^|mu`EU@ZDr@i z?MM^#802ZcNk^w`(2n1FzyIsk#hRCsOZ9c|U9)nh?boAJb@Wuy3fgs1Xd*d5Yk%68xCIuf<@#cKP#-zF*6>&QBkF)Z)CG^5{f5$v%D zt9}|iAfBh|pAGFd&r7my`A{t8T4N{V-T8_2$i@7dd9h?c94oaUeRZqywN>|0_j!{6 z%U7e9fq(8@s?KkG5Pm*-{yVmQNs=RjPLSvn6<@GRe;7ywJ|U1bX=vNUiUB&k>1-G8 zZz&wWq0=x%=`-jxT6`70HyujVlo(ZdJbAKE;(BXxllXkI$xME+Ju<(A4NY*_gpaD0 z5HPES-_hUmd(nm!8&Pr_*?e4_`C7!J>04Vmk2cJKW_W^H_zK7W2Fv{hxLtV`T#_6}B7->r= zC70|KbIn?zhUTFa2ZkRwU-!8V++uSyw*+L3Lm>|GZkeDFxZ{MyO*m{Fvas&Gie?EY z3Dp-i^nm30?{8~Qr{RW$ynrUsmuy8ABs zr*MbG*$dqH{0sy7d$#|e4fCv@C_|uM=KbYs=HF<8g`xg7} zC{rZ;czU4pf9Rboeb+e-GaX9D=lYPnOGY0NnI>;BGSG`>`idaRJftbnZO5+Ixq^AM zJ-vdaI&p>!pJiAgJ{_V1WGd**#wQ`!eW1_BdTUw$*Wgr&t!eaVpRA8T#cnsB=xo8` zu;!gx+w&_`S)GVO%n?@`k=~wdWjYB)MFvtcq+WL=XJuQEFV7$r6Uc{ba1LwX5_a~A zDc(qeA>U*%xZiHISftZwm7xN56(+O~DhNzQd3na$>ow?PZ1$-e$lK&ykL}JQ+^tJ3 zfs!}NzoeB__IAIhp4-65tW*5b*EZ!8wiv#YKnA&qP$y*Ji#M9aWF(^hUd)-AquhjF zoDl>=3L~~S3RO;ng^d3QSCa&Y7alSru`?#;3QY+Z3AwiB&ffF=T%LvC*oq%j2w7eB zYO%JLygeKED&^S=Fv^s!yeiWcDwXX5B2S`H}SFCS=r?Fa_41GOOFYQ zBN|iw*=ZrwiGFJ9#taJ|&ClO;m~uV*7u+FjbgMa1Ys>*Hz<9qm|Li<~^^I@Gu0-2% z3@rKm+!VxyJc5v+&0#u%xUi-?7S#D`75*q?V2hy}%g;#0#`c)C@kUu?cz3VwrYNVQ z;eCvDBhhaRY4pSU>G5qZqNlc))3=QnOH(*EeHT4e?cbi%s!4_N@xg=q@6WhXnYzO! z<^hG>TsNUq^1)dN536$K;qCwU2LDq`Q{RHC6Y}CFE^4!h$e;k4z}- z8)lhTDDU-Y&gS6a*dxPgpB2jrLeHOq&WT#fxB<+ z0$q71jw098#X1WxArE!<$h2wO0G);D5{L^+t!4BLv#^0DuTAyTz?!GR1}@07SR@dQ zWD>LI9e04*(`XR)MX);iA>%^?NuuE6wmJHYyWrP8Cc@uEw^!>=C4M&a?i>tg#f-3{ z!6>*%a6%-T{f;ZbfnmqZ=o{($MxEczW$5!E47Cxmv#Mc$JjVssq0MGU+*L5G3ABLc zMCiBv5utD4ZauzU;idYr7@95T9*cDuOV#FjmDYY8;e|gtHMn!~zifi{Hcf>0D+DoQ zh*VZkFXO!l3|ARzdwpNmRq~FX+ z0HK*2wZr-j3iVHo4kDUgv5MQvq72sF5RgLw3V)WQ?adkK*A?yNKx)n=Q7Z)JH94L6 z5tWSwOlvGEDEns;PxFHC*L?G%*ONXTYZj~NhuGp%BPn;j8e0T9dr1un=^gKH@MgWi zkSbYx%jzL?{EOHA{_vHZ-Y7DrL*ZS$?2c;Z483`F)!5Eb=5omk9~CKO#k=+NZ6g3r zMSnLdY+an5#C4(E_r=T)(rM_?rK6XIs@rCjEDoi?G(u>&9xLG?4^26o9NVg|>?Cqs zWYT0kf9}e4^`RI@1}BULqCy?&DJK}JPGWR6>g`+c+XN2J@_~kH@g7#UFe1O-E-$|0l(xUSt_8u;yUNvJ4z|NFK#weh6m3tG6<& zg2KZK@Y5x`j=6?w9=DlpsoJ6^->R{t+WVBcJ6>?8fBJVQXeQ7U;Fab67=s9* z5Wbure>FNR$OOY1+W#xp_Lm3<6oCI%<_(g=h-d$QA>V%sgNgqo{9icuKaKyhyzbBY z{~MM2`~6z7zl{9@ql2u`;}HEFW`JI1>pvSc6C{a|;vaMLzmLbi#R{1r>Wq{O|Mo&J zXXu|~;@?e&4FocCG*xzSbaG`eb#yWRV^!kc8{|bE<8R@Y9xms9$QwI3{XzPb<>27| R2%)_Epk7v?gZt0F{{fMe0KfnM delta 7069 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 JXa9Zm{{Z9y(aZn< diff --git a/Xceed.Words.NET.Examples/Samples/Document/Output/LoadDocumentWithStream.docx b/Xceed.Words.NET.Examples/Samples/Document/Output/LoadDocumentWithStream.docx index f9520bb9b34ea875b6713689247e816706dd4c12..39928b34f00f080dbc3dda7a3d7bcbc8530c5170 100644 GIT binary patch delta 10298 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 F{{Xhz^?3jQ delta 7087 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 JLm005&Hy)q9`XPH delta 83 zcmeB(?}*>Qh JLm005&HyvP9@+o^ diff --git a/Xceed.Words.NET.Examples/Samples/Document/Output/ReplacedTextWithObjects.docx b/Xceed.Words.NET.Examples/Samples/Document/Output/ReplacedTextWithObjects.docx index 741353b5128791cfc212d6b159df9c66760a30e4..0b515a68e0b740192c41076f0da748903da408a5 100644 GIT binary patch delta 2970 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 L003^`ezN}pC0PM- diff --git a/Xceed.Words.NET.Examples/Samples/Document/Resources/First.docx b/Xceed.Words.NET.Examples/Samples/Document/Resources/First.docx index 141acd714b4675fe1aa4db9383c529fd08f9ff96..1b43d205f76b8acde3ae54fbe14d2fe4617dca5a 100644 GIT binary patch delta 10284 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 Pd;jUW*ND&d`|1Axd2(2C diff --git a/Xceed.Words.NET.Examples/Samples/Document/Resources/Second.docx b/Xceed.Words.NET.Examples/Samples/Document/Resources/Second.docx index f81042ec06655cc24de1cdbe64f4b57058b5f24a..3199d45fbd88d0c543a89b4a1b169d9a0784e3b1 100644 GIT binary patch delta 12261 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 L`&0X2`P2I^PD-Hj diff --git a/Xceed.Words.NET.Examples/Samples/Equation/Output/EquationSample.docx b/Xceed.Words.NET.Examples/Samples/Equation/Output/EquationSample.docx index 7b0f5feec6c0caff9d31bbb2d6ae31016f221332..f850d3d5a566fe043748310675898a260433adb2 100644 GIT binary patch delta 2824 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 diff --git a/Xceed.Words.NET.Examples/Samples/FootnoteEndnote/Output/AddEndnotes.docx b/Xceed.Words.NET.Examples/Samples/FootnoteEndnote/Output/AddEndnotes.docx index d5576bb2d5581771357ce9928dbb0667e4618cbc..e08dab29b79c56afebecb29c61394f96925ae1f4 100644 GIT binary patch delta 4172 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 delta 4380 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 diff --git a/Xceed.Words.NET.Examples/Samples/FootnoteEndnote/Output/AddFootnotes.docx b/Xceed.Words.NET.Examples/Samples/FootnoteEndnote/Output/AddFootnotes.docx index 347b5e9c1f10b3bb6314c1244bc3f813f13da0a1..17860a638811f6415764f25a2c107c460a7d7b5c 100644 GIT binary patch delta 3819 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 delta 3733 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 bs}e2E^QYFYU-Ul{fze1FSxP;wAHIJ9&D+Ia diff --git a/Xceed.Words.NET.Examples/Samples/HeaderFooter/Output/HeadersFooters.docx b/Xceed.Words.NET.Examples/Samples/HeaderFooter/Output/HeadersFooters.docx index 6f3bbe437970356ae98726493577529e8a21d137..d9adbb3f1ae4e84f4cd6676053bc51d842712ecb 100644 GIT binary patch delta 6754 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 delta 6925 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 diff --git a/Xceed.Words.NET.Examples/Samples/Hyperlink/Output/Hyperlinks.docx b/Xceed.Words.NET.Examples/Samples/Hyperlink/Output/Hyperlinks.docx index ca6220f73c6723535fda102d91706a28f5c59bad..f0be3c10f17fe186076a3844f4c79a8c83ec5698 100644 GIT binary patch delta 3869 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 EKj+=pbN~PV delta 4446 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 diff --git a/Xceed.Words.NET.Examples/Samples/Image/Output/CopyPicture.docx b/Xceed.Words.NET.Examples/Samples/Image/Output/CopyPicture.docx index 9b824586e91821128c31c7a92158b0617b87991d..d63ee8b72d660bd497d62aba034f1541489af38d 100644 GIT binary patch delta 4169 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 delta 4005 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 NYTSeXur76h{snDST(JNE diff --git a/Xceed.Words.NET.Examples/Samples/Image/Output/ModifyImage.docx b/Xceed.Words.NET.Examples/Samples/Image/Output/ModifyImage.docx index c2177f868e713d6d173c9e92d43e3ec6c04fe8f2..f524fc01deeaf0dba84ea20caee64fc2064e58c3 100644 GIT binary patch delta 102 zcmX?Ga<*iH5GTvZn6i+~Vw~!%5SAlfn*fA$T5c*kgq5Pk#RFj#8BK(!o6K%u4Hla0 VX3+#;oUzygVf0v9LKr74TL6AgCN}^8 delta 102 zcmX?Ga<*iH5GTtf*QVgjVw~!%5SAlfn*fA$T5c*kgq5Pk#RFj#8BK(!o6K%u4Hla0 VX3+#;oUzygVf0v9LKr74TL5^7CK&(# diff --git a/Xceed.Words.NET.Examples/Samples/Line/Output/InsertHorizontalLine.docx b/Xceed.Words.NET.Examples/Samples/Line/Output/InsertHorizontalLine.docx index 857ce84e85948463812f7680ff6bf3eae722abb2..f3a6159ffb9e64bdd90c94ef2ad4136005c46c73 100644 GIT binary patch delta 2790 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 Mg-3+J7;+^37w6nRCIA2c diff --git a/Xceed.Words.NET.Examples/Samples/List/Output/AddList.docx b/Xceed.Words.NET.Examples/Samples/List/Output/AddList.docx index 6b3ba9766bbec2c81ebb0bafb88a9c5b1064f2fe..bba66169b8f2b4dfae3d4e439f4c4fc0d3b7c8ed 100644 GIT binary patch delta 3764 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 PW*Jq=!b3_5`tAHb-Mj*~ diff --git a/Xceed.Words.NET.Examples/Samples/Margin/Output/Indentation.docx b/Xceed.Words.NET.Examples/Samples/Margin/Output/Indentation.docx index 20e475fc16ae99069d804a69b65a08d3cfbc749b..86d29e80e9adeb410a32ce90349f6bcafc80dc0c 100644 GIT binary patch delta 2769 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 delta 2808 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 delta 2829 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 Ww_^bSp1(0sI5Pn$=Hes$1^xp`!$9`{ diff --git a/Xceed.Words.NET.Examples/Samples/Margin/Output/SetDirection.docx b/Xceed.Words.NET.Examples/Samples/Margin/Output/SetDirection.docx index ee383f4462343b0181b27eaecd49e1608391b064..661a9b0452be398aba2a8cf375549bf9090824ed 100644 GIT binary patch delta 2751 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 diff --git a/Xceed.Words.NET.Examples/Samples/Miscellaneous/MiscellaneousSample.cs b/Xceed.Words.NET.Examples/Samples/Miscellaneous/MiscellaneousSample.cs index 55a1ab70..a7179353 100644 --- a/Xceed.Words.NET.Examples/Samples/Miscellaneous/MiscellaneousSample.cs +++ b/Xceed.Words.NET.Examples/Samples/Miscellaneous/MiscellaneousSample.cs @@ -169,7 +169,7 @@ public static void CompanyReport() // Define Data in second page : a Bar Chart. document.InsertParagraph( "" ).SpacingAfter( 150d ); - var barChart = new BarChart(); + var barChart = document.AddChart(); var sales = CompanyData.CreateSales(); var salesSeries = new Series( "Sales Per Month" ); salesSeries.Color = Color.GreenYellow; @@ -180,7 +180,7 @@ public static void CompanyReport() // Define Data in third page : a Line Chart. document.InsertParagraph( "" ).SpacingAfter( 150d ); - var lineChart = new LineChart(); + var lineChart = document.AddChart(); var calls = CompanyData.CreateCallNumber(); var callSeries = new Series( "Call Number Per Month" ); callSeries.Bind( calls, "Month", "Calls" ); diff --git a/Xceed.Words.NET.Examples/Samples/Miscellaneous/Output/CompanyReport.docx b/Xceed.Words.NET.Examples/Samples/Miscellaneous/Output/CompanyReport.docx index 43fe7e3f575f28c018fd1620085e0a5a7a30e2c5..7ef1cac62bd5825f18a880f3d71e73332f91d4c1 100644 GIT binary patch delta 10611 zcmeHtWl$XL*6m=y-QC?Cfp@S(-w zae=huoi=&U+Hrq?$e<6)s;;UJ@sw~RtMxBc$Yj(m6;vrBnI#dZEC%im1oB7%^Oo~g z?1ORq;@%UD@%F5b(Ar)-72}vgEjUwGytT%71x=+6lXOs;Rkz(oLDsLPtCCG+03*QG zb$@Wuq3@9N&eQ>U3L`YuvPsOr!l5Qz2^mzHRbZJz5L?9bsl2!^+eq22n6v0(qb zUWQxOkt0DE5a*H&VcE9nketPKtd^sscFeqZD4z3&amc&C=+&{UderZJ>9%NiA@Kzp z(fAYlZj&my$Yg2b4yNjnz~y?M=mzm=<_u}(*V6j=ky4DW`qvH}3W?BjPqE?M(Q-k3 zcH(^3{BP9MS)}o9A0DJvF)x>CMDBTM5+#+LZL-d#ejtUEN9e)1UT4HoXy|t-K4GYfX z$!xwQyfAPxYh~;FvC=o^YEnU}>F^aq3D*gx6p{O`CdS1jr{6FVsCn|-eZ9dp6vM+o zjNs^y~!CM>VUr znbZm_tZ0m6@!z}y4budK49mG47{=NY+)=U|i}UklAN-$mtMZd%z|4kgce@k>)@6e$ zmlvMG@^^Z|3zzHjvp-ch=zhXg93%&;@6r;xE#1Gp>uawPGkUmV^W2)4LDc|U3tN+^ zUdDXkRm>3djB&(hEh4pR`ubA>H1#-ENg%I;9>)sQ;@L=3$m(N*aO{doE+V(ZJgbN|0OAq|CW^Tc#$5@ zmrSDIEEsW+Nt9Q-r>k2H=N^xt)uI)Wt3pUzc>Dvr~6t7jb}=k~j$19m&HM4J0|<>9o)qs1K{uBOIICqH*#FD6%|va5LS*22qs z-*MXVK^Q)LK1P~>CLvK*zpVDQ^I}On%zVRU)j;{_Gjml@Sq#bAVh^RAorP^CBm}5O zI}wzqp7@DN4uoWtkDPn!HG@n8P3V1Sv&OGUu2_`?cfM|*u;YsWV|0Do&>z%&222Gp z{rBfV6tzjPRw8d&{icNyvGX@}@E2Vdx!V@Ec+P|aGA$!h;Zxz)%)VcWC@NR`5M5RG zhgY1x!Xzu@Vp1Y_!;~t(goLXo6kSAN8heXfcN{LXz0qH_l$6_fVq6{&c83Cboj9<` z=PZ{vmT$I5Wnzgjsn5rAYbDlt5;dQ8+Cf7O;@lu&Zock)ju4LLmGn#rIJ1t^?Bqco z;0&R;A)s;#;bIEGv8?vwv50^~mN<|3$mgvF3^=|a`nCte?60%aGZ!;VyO~1v*%Gk4 z_#`*|$%a3uztiTHao4jee~;pFDH@dQYZ%gLQcl#L#=g(+st3SbVsuun`aHLmtC_HBQ#hIKdqswldhR6!I<#z6{>EocD`j?I>HqGH&+&8@Z+ zmM@p(YS#|;&`zr5E*J}5E8Eae3<2t#FW2x9Ca zhSGHDZ{@FZ5QD<{?hqW7)4_bI650r}vJ!zbAP(NaiKQc0hD4S8qQ911!ef#iUbp~Y z6P$e&1T5tNVCdJOa>LpMhtYH3zx*c6u7n$ZL*{YzFsA3zZBS5|!z zK=ASe60Kbm{vn+82oi&%Nt0iZj!a*x4}+NQVR`*C3=tzl&QnfO+ZhXR#VinUhi) z|JtzRNqoZ6^f_V89(dOzlU72jdSPW@Dq$YtPtz(z)U>MYt_f0)GDy|jX)SJSr8K|d zrn9ZU^WF9i-44-p#}V5Sp>*3v1lvl7yaAmnmhKmTHa!00?JTc#1fhaVP5F~aS> zK2VK+cdY1~r3(`KnT(aiVdWS-RW|ZLpVFzN*P!c}JjIKwZA#QP-))MqOg8hUGHa;- z-J|C+@RX({gopiA;cne>cFe;a&-ua4mNwzn3QwiLD?_lc&-m5=Mb$S^(=s;0)UX_Ff~Ew!7@v%*~{ zUGZ)jF8ve20g2?n);FQM8v{~a=YS>txq*|^gMPd9JBWv$HCOLyZlXd))1C^G?^6TS`mpj7@j@Jw zrCzlN;a7!XaxeoUD>=X57Y?890Uub(rfT9RY&0*nIed&LJ_+gv^PCB+PiY&xaSB~L zX8EL5UOjo=Mn`%fN6J*Y6@#!AvjFckgL>>F)0ws}Ri^uVcc)_5t$R$eO#@CDDKJ7N-+5v7*qdpyRgAPgzm z1hy46YNG)TDfyBp2n~EM@lR)j1w(`e=ry@CEK_tw9VIj>eH&Vv2(!f{dp(gL0_0bdadyJOS$P(qzrVvANF0xH#IO& z!F77{<3mz7#ODUqB2v4br}|U~)3;G&xtY_n%fY*eli86whWxifp3zK*_zD^gp7Gi@ z+=xpq5*dN_yn$wzBH995V}aO&IoaUbv|7L9$J6CvlLNnv3(UDD#mJFwj2oQ8URwUo zpehC1GsJNvd`$-(jK29fAB!NAqn6OJ*)wzA)w-Wh9ZBqS^m-l5#hW_B-sMcA6U5q* z_rk`MSc>f~7K<%&rOx`JiBewrdsJj1ho~LIY7Uc!+NJx7DW3)H8`hi`1(*0vP+x6I z+$NUL_u-B^66{K&D;GOO78IrWyGhzKfjbgpnXJ#-lrXfy20K1odeX=P6=Oc2_Q&Nm7}RyT^;U$IXxHv2AKPcQ*ET ztDl&1(P>vd-oGa{OVd6)TYpMHL7OI&pBtA?jER!(X~x@a$|H z$9@=ze<}bvEJm}iiKr~^VzIMiJ>h&*?kjfi%X7jcfhE`!LBN&w7n$g;#)b2XKxSMi zSR0=-Ea|VNU9GfYf@r1u2&rem&{u8BIps}6^loO-Zg#a7!Ln_mn!9=DleW?UGZ3*a zx&5h5fA=Oe-!`_Wb{8e#!c|^NdX3&7S2)+-VuKVk&1pi#uOZ%5reJE}nr|H~&1k0- zk#wv@)5P&%NPsyXu%)Nl&8&FD)mKq4{=?VPV=upoD1lus|7>~4on0Wdu2xUqCJGW% zBV1+$s|K$dFR7hUTR6n5_!ygb#ce~jDiMs*NzrVeo#!gKu&sIEjzR>Z7pWz`G)hW% zoR`R5tx>0HZpW&zK%`$%6@peVTe!yGaCg)V-sPQIb(ZT>j zK>unv)Er@^{(CDDn+OW!*VrZp>pTDg00@T!*Wq!3;uRfx$&lXt{Nx)J9w1&2SrWmK zGHMWt!6DYi!$GyT)UNPUQlf_K@ow#`-HLF3n6}ZLi->7mH$6hl{1tZ{j*}I8FAE4$ zHylBK8*Ws0Nf9k+=e9VbqqrHaT#Oy%uh2w}9AO&NF* z&IUPA-6i&$`^TS$6c!Z{X{xKydAeM6>CdVc_%MIo`hR0bh~WQucJThe4pUb|rOitV z3jppV)B{b0R+1UyG+z5@Ayua!&QHy&d-2}h zS=1tdWhhT^Xbd`~Ov?}gR%1g8<_+W|VeI?W3PJPT8siUG2jfl6WE`6F)%2Sq<&S}A z{uc;%@KJi9FujsP;fYfHJZ|t7M4aN06;l$VJ!vh1avaLVl`)fZ2@*(Z$)WV>Ir)V- zU6yKZnVREu@>*;4OU&jeqLZAl=*K@Ks!7Yqi$@2~4*1uIAHqn(C5vg041`t=>q^C& z(tsH7CIz1(?lBq>Cy8cg&?g`f;K}Kz1-2b^l#D#snQ;TZa~E3Uv#^o+p~lM-kKfi< z#zq)(J_0yp?D3#ghAXSJ&^}Yt+uTxYTYbPsIu42M`?`uu*)V=nPj1N;rsLY)Rf#)8 z_xc*~Epu;_DX*Q{XvA$I!|cKU&s~N+Vl&7PbgJdSr)lOK*&$nuUg(0%D_!0a3>H>@ z$K6Ap5xyW*pD#|shlwRQGVjHwHXhxsottEPxg%u-LL(I022Or@rxpCw_HY^HzUK?e zpzq;Tg%hlp3a&uUv0v@S;P%_*f*B_@lt=%I<&%a% z(mz!yYVmmP8Rq3Vd=c?{(%&-GLx%Pu;;yifZPC+`8oKp0gOYUb@vto?f{u2ssh>(q z|#6eY2AOn&+_TT!^SGhlAh^Hlu2Q|wsb*$#3^KTmg8L5*?-Xx|4k}r6 zynp+54Oa~6SpDDz5$|l16edY=!{IhIa%PSp)liy{8}+A#llmbN8vFl@tofx?m zZ^D44kknqvKqr$|ACN-;w)k4#5OUOe>zNDH+O?Cr)>!6sq8^sn5bo2R2u)Gk!t>V% zk^IC$HaY`kE8iunA6hEz>+-Lvzm*d~S0zP1Nc;@BzEer(&^+1a&%r8B||wmMg6< z&E#WJ5#lA!XJk*Ya-^d>AB3*p#@s6!HtGG;2W(1W;m4pQ(K)ZN9a+Ys17~t=gnV6c zYZ^ekS}Kw{?iSfLl+^@&ygg5B6=u~Wevb!fVl4#?OB=};_chKtET#wL3x-z5&Ex#> z&MV=PqMPKw>U4-Qp9yjY@ zM^cdsdXPd{OBv=hH0RjsT3s)p5-Fb(=!h1gIIq6)iS$N%#-1Wqw8F{>z`y)@b@;j& z-(Ye*$e(gI@RL9h1WNSmO#D_*9A_kX8E(;2kMomDtN2*19KVoa%Mow4Uf*jWoY&T% zP_1&NZ+`bvF;HB6s2;tFw$f0L?)lLHIj3x6u%|yDRe!ER@;3tpQ9h47U|)2 zHnddT2z<`3f%%4WRG4Kf@=9REs5#>^sW+<&xVzpTJn|fWdo1#Oi}lYZkLU0$D_JW5 zfVvC-Z~}+`UQVv&;Ey!0bY`YNAg`I3DKj^p1s5}y1-B_PpQR}`Gmzbk!;F{LjF+3! zjK$f}3LJz+RI@N1oZP`GTMQsY#}GEG&;MxqHpwIjISk zr#`gHq|5peRQoMo_V%E4o~oTB7f$tdfwfMIq`=4O3GO2qdNo&N3unaeq~b6)buhu~ zMkK0FaLZ0O0&Zf|)hY)!mKN%o?n44hIg}rUi9P z{M2Nv!W<|v=8_`OpIB=jYv>3BLP`FQ#Y-Y1hBNvJMtn^N$aN6nIQ zb^Pp=T0+MrJ{z@sqfDGers>fDq!5U{JmF3iE&V>V*A8w16)i8kayjsf`Q9fU4aqGg z5-a(OEVK&MZ14s0psO-*#hf}UR;vknFDFa#xwKQ{k9qauQ!iJCmZyo#qS%LE83ea1 zGIB?UiR36(e(a!B>^7-MPS!1w{5dU|5e84I@nc!9S~m*Y9=5`jU^QmrQc93jM6TEb zMG_eqj|<&>WUs6GX1ACLnaXXki|9P5k<_{**X2^hpbd3MAeJH0eb)iwIs-o4P?R;# zhIdoWt=)UsnjONY+EDJw8&vOOjkd4=sTq`Ha-R^j%8+BRR-|UAV9l|4G3`EE$@Pqf z3&`&nDoCcXcwEKU_5KIEV?v;7FO-~7sf}uIHcF<7o>HWRPpw*M?1r+8-hp1c0z>I* zN!w|p;v&N8*C!Ury1M+i66NTNgF-n&*h2$tc4J!wQ?*B?7mTl`p`Y`Rql*FxY@0kD z_KCiKwmy;0O;^WYh08B6qQ*Lyjp9+t7{iUUp1gL?Kf;RSsVJ*MU{nXC(27v=R%-S6 zAcC{R2};Wh@#+FDw9r2ncZAX4c7GK-CHd*P1(H4#$PIWytXG6v>5(17G&3jDsFJB$ zRG5P4v1)r&gLu`6)89=WwX0>jFCGBA@Tl_4CRt!0FlU)b!r9kn`mENU7{j|nZzZlT zJO=Tc(7nPE^2v3ke8mT*^{C*Z=D0Qv1&8N$Bq zTE9bS(WLWQuLEN-@YhZ;aBBxsUp1O#xzR!M>dVQ?j;;`4^LK~R(sJP{>~BAo*uCsO z?4=5Ro4SM2HD=DFvy3h(ttY`%GYmydjoy25BGf3bY(*g`}Fj!H)ip zi#|KFS1dgmi{Tk9R|CuWQ`@kD#3gTf^gvxV9%9tGj>WHa!@y}GH#R=r9ax9VCv&n%j}1SE(}Bf#hI!RV7vd&5 z7}s!BJ2!U#e816_ynDw$EUE%urZbV&CfezTMaOa}!(e|%>+b3jk%c+=)dEXN-0{sW z3(lbjg>!wW%xHrm3Yqi62#V`uWy0KVbOPcU5?ManYwS&$#BI$4M-ZjY9^K8)WdoyN z5X7HCBE>t=KlNe&8?b*12{`y17pzV|1V-6M06oFJ|A`~g^NhO7W(qs&ZBr8YOd8tvnoU#l9^a2(hO|G6KK5;rhsi}4q2Hse1`E{DbsbnZV zsufnyK81ZR67EejK^1ib8qdPRJCuWNedqv*N#(UdWyPcvEQz<6?2sD=lkT%jIc$7bLX7np8 zqg-`nPRC{(RgoRv`!P%ueo(aO#-zXmS%F+O6PdIXgm$N1X_oaZV{ohuW;(B$S&bhN z0zJcECX=XOTc)|c4t#EZ8^w-(sARQm+qahbbOASyAp`09p>S?Tetw>(D~=QUNEB0pdRYN6>t^CH7S9E`Fljl{4T(sKoc<2a@6c?<>XzC(9 z%xe~sQ((*ZvKpas2sJ7s8WO7>C{_{(HJ54JFjBBbdWfQ^V=TFdUhdnU?vH!^zQ5sS z(R-2aL-nd2kk62ph41o#tJx&7$uJfqk?-_ooHBjep`E(2B!m30G6m6T5wRJ?^ed(?~$w4kdN4#VEpsni`;R??S#APFn4ivTP)g9ae zu=WnA+Y!C$5ME-!s<8(8}+hP0ggT3s-g)ZwLFo&hD>OdjESgJi#B)9REW!k;Z>Iq$vM9 zxH?$nl=SzB|F=K!Ps}TD%qi*b6aU{a%4FctQV{T&qi0~~Zt_bT`B*WmvF-pMzl delta 10917 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 Uum2f1(E@yk0Du6BzXbvQ3!PeMN&o-= diff --git a/Xceed.Words.NET.Examples/Samples/Miscellaneous/Output/CreateRecipe.docx b/Xceed.Words.NET.Examples/Samples/Miscellaneous/Output/CreateRecipe.docx index 7bea208473400228722e12379dcb02bd8f2c9c0a..026db2e62b7f10eb1aaaa00995af5cff3850d248 100644 GIT binary patch delta 5831 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 delta 5784 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 RIuPRDPcRMuBx_x3{|CyRY@PrB delta 5754 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 K1K+Fse)~Tz&3U%~ diff --git a/Xceed.Words.NET.Examples/Samples/Paragraph/Output/ForceMultiParagraphsOnSinglePage.docx b/Xceed.Words.NET.Examples/Samples/Paragraph/Output/ForceMultiParagraphsOnSinglePage.docx index 1f205cc77d9afdaab204648cf9c7e805e180792b..a5330f34e6be447370f1a2f7a68baabb149af8c4 100644 GIT binary patch delta 2839 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 U0RaAgFs?)`5jnOfp}ppR0DtE#tN;K2 delta 2803 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 F{5SkJJNN(q diff --git a/Xceed.Words.NET.Examples/Samples/Paragraph/Output/ForceParagraphOnSinglePage.docx b/Xceed.Words.NET.Examples/Samples/Paragraph/Output/ForceParagraphOnSinglePage.docx index 7ddd7767b32dca6e91b71a34580e2af7132643ae..05898549a8f39573b5279bbae3cc17168556b7ac 100644 GIT binary patch delta 2820 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 MC?Lh0%y&5a4-=>?9{>OV delta 2781 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 delta 2798 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 CUN_DF diff --git a/Xceed.Words.NET.Examples/Samples/Paragraph/Output/SimpleFormattedParagraphs.docx b/Xceed.Words.NET.Examples/Samples/Paragraph/Output/SimpleFormattedParagraphs.docx index b1f417071d3ec14c56b8e74efea7c510a4bd6fb6..97a3e1d19b7cef5937c6c20177d4fa0284e0d5fc 100644 GIT binary patch delta 4121 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 OUYrp-46@03YWzP!k)$#J delta 4025 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 diff --git a/Xceed.Words.NET.Examples/Samples/Paragraph/Output/StyleParagraphs.docx b/Xceed.Words.NET.Examples/Samples/Paragraph/Output/StyleParagraphs.docx index 3f6f66825e010af0d803799858d18cf2801d1588..5b0fe0d4babb0b1f6da715d70150f2b5818ea8dd 100644 GIT binary patch delta 83 zcmaEr{3?0FUN)8$F=Zi}53(8ZLRjB~rC1;=5s6j&5Y{2}>+E3G~~mAoNj delta 83 zcmaEr{3?0FUN)AEu1&$453(8ZLRjB~rC1;=5s6j&5Y{2}>+E3G~~k@_J_ diff --git a/Xceed.Words.NET.Examples/Samples/Paragraph/Output/TextActions.docx b/Xceed.Words.NET.Examples/Samples/Paragraph/Output/TextActions.docx index cf1b2212bc60dd5dc99d0b2e3b05ee87788cdc69..28650ccd157345ebeeb558ed7c4230a88f93559f 100644 GIT binary patch delta 3044 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 delta 3092 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 SSlNkMP?4;H public static void StyleParagraphs() { - Console.WriteLine("\tStyleParagraphs()"); + Console.WriteLine( "\tStyleParagraphs()" ); // Load a template document. - using ( var templateDoc = DocX.Load( ParagraphSample.ParagraphSampleResourcesDirectory + @"TemplateStyledParagraph.docx" ) ) + using( var templateDoc = DocX.Load( ParagraphSample.ParagraphSampleResourcesDirectory + @"TemplateStyledParagraph.docx" ) ) { // Retrieve the wanted styles from templateDoc. - var styleId1 = DocX.GetParagraphStyleIdFromStyleName(templateDoc, "Heading 1"); // styleName must match the style name from templateDoc. - var styleId2 = DocX.GetParagraphStyleIdFromStyleName(templateDoc, "CustomStyle");// styleName must match the style name from templateDoc. + var styleId1 = DocX.GetParagraphStyleIdFromStyleName( templateDoc, "Heading 1" ); // styleName must match the style name from templateDoc. + var styleId2 = DocX.GetParagraphStyleIdFromStyleName( templateDoc, "CustomStyle" );// styleName must match the style name from templateDoc. // Insert a paragraph with the Heading 1 style. var p = templateDoc.InsertParagraph(); - p.InsertText("This paragraph is using an Heading 1 style."); + p.InsertText( "This paragraph is using an Heading 1 style." ); p.StyleId = styleId1; p.AppendLine(); // Insert a paragraph with the CustomStyle style. var p2 = templateDoc.InsertParagraph(); - p2.InsertText("This paragraph is using a custom style."); + p2.InsertText( "This paragraph is using a custom style." ); p2.StyleId = styleId2; // Save the updated document as StyleParagraphs.docx. templateDoc.SaveAs( ParagraphSample.ParagraphSampleOutputDirectory + @"StyleParagraphs.docx" ); - Console.WriteLine("\tStyleParagraphs.docx\n"); + Console.WriteLine( "\tStyleParagraphs.docx\n" ); } } @@ -158,7 +191,7 @@ public static void ForceParagraphOnSinglePage() // Create a Paragraph that will appear on 1st page. var p = document.InsertParagraph( "This is a paragraph on first page.\nLine2\nLine3\nLine4\nLine5\nLine6\nLine7\nLine8\nLine9\nLine10\nLine11\nLine12\nLine13\nLine14\nLine15\nLine16\nLine17\nLine18\nLine19\nLine20\nLine21\nLine22\nLine23\nLine24\nLine25\n" ); - p.FontSize(15).SpacingAfter( 30 ); + p.FontSize( 15 ).SpacingAfter( 30 ); // Create a Paragraph where all its lines will appear on a same page. var p2 = document.InsertParagraph( "This is a paragraph where all its lines are on the same page. The paragraph does not split on 2 pages.\nLine2\nLine3\nLine4\nLine5\nLine6\nLine7\nLine8\nLine9\nLine10" ); @@ -168,7 +201,7 @@ public static void ForceParagraphOnSinglePage() p2.KeepLinesTogether(); // Create a Paragraph that will appear on 2nd page. - var p3 = document.InsertParagraph( "This is a paragraph on second page.\nLine2\nLine3\nLine4\nLine5\nLine6\nLine7\nLine8\nLine9\nLine10" ); + var p3 = document.InsertParagraph( "This is a paragraph on second page.\nLine2\nLine3\nLine4\nLine5\nLine6\nLine7\nLine8\nLine9\nLine10" ); // Save this document to disk. document.Save(); @@ -195,7 +228,7 @@ public static void ForceMultiParagraphsOnSinglePage() // Create a Paragraph where all its lines will appear on a same page as the next paragraph. var p2 = document.InsertParagraph( "This is a paragraph where all its lines are on the same page as the next paragraph.\nLine2\nLine3\nLine4\nLine5\nLine6\nLine7\nLine8\nLine9\nLine10" ); - p2.SpacingAfter( 30 ); + p2.SpacingAfter( 30 ); // Indicate that this paragraph will be on the same page as the next paragraph. p2.KeepWithNextParagraph(); diff --git a/Xceed.Words.NET.Examples/Samples/Parallel/Output/OutputDoc1.docx b/Xceed.Words.NET.Examples/Samples/Parallel/Output/OutputDoc1.docx index 20c397245261b391d56ebca60a95994cd3569f02..d4cc987b538da74f6a9b7aa46033bde49bf588d1 100644 GIT binary patch delta 2174 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 POp6I}l@re;Y<}}UsEEW_ delta 2120 zcma)-XH*l|62}t=AwhZx1|m(x03rl}hNcp5B_K5kRX_-l#LyP0vLw<45s+vEL7D`l zYCu5x;zneBG>y``@S>n#mlEZP?Avqp+s^$k|9fWU%*;LKo*%0Qm|p{wbhH%)$pgRu z2%!E%0-hsz7Yx}JLk`KvhDTrnAfr1hQB4{=>+1VJC%uPqK=X!om|YxD=rV^GdJ)~< z@OkLulFl{MEvpLS1;4Deds}qHweJFtprfs@jzrECm;IT4K=wMGzWmFJ{YOpU3(*bU zZ;QzTGxt)h6T7Z85HIbHRL%)32 zn7UDAz2#(KKMo1w?2D-{%V5APxOM&5K=@CIXL`KbWq@1_vMgzjPw@$ z**7Vd&Su=j$T7<6bk@|lhz^C)*dm7>40nXf$P5%FZ*3@>O66#piPeOgH#&D`a$99c ze%$Y3FL|<1$}%6(F93}^`f1Sv%dZaCt2HX3Y%rlq=E zO^FUaIAM{e(E(VHryVAvcr?K0x?Q`0(^t)U)eqVDirZ#GnG6NQhwKPLmeY!RTd59J z+yGLi!D6l8GEXG_c?aOW;_R2lW!Seg3Z|*Cv}@~R;pj_iErv`C^S2|Vt9xc;gq^|= z8rZmgY!1k<(|rxeBV;W5bVwHS01sR~MM%3ECshys`Cm%SvvsO>=MBHB!9$}|%FG%* z?U7H#nNH6tQ@2~1eWWBj<_Q$q+24{Kt(0gr8w*;o92V{^kQK!mVxWYk}CP7)-3-8@2qMOjH)olDS-UbyP#I&ipbK02? z#@+1EPnj-vK9b!)0i~(>K?`|rZANc5LX94AHiQZmOTvzPe4JVuJhM3;F{qkuFScLr zK4WBsQR>AXR{nf4Xne7%0N=)%pfU)veg~5w%_>pp*HyGrL>cx-y_J+r3B1qNDfe>` z{bof2*@LOH1v}v$QjgY66q_-cOY&$YFP8+`1unmdIBr*bY9FMy-0bl6nwjPB3o13X z!`Cw>dgN2Cz0!lz0?9AF;Kv84x`i(A5`?O)zfj$3@xfGJa;3&I^f;#X>tY9&%I$T9 ze$s2oWk2k0XJFr}^)jE>rDokb?b00jt712dZFxPR++{K)d<8fklw?XQ+jAl7UJpe* zpUtJex+c?+eLqcdO<%E$Jv(HgNADE!$%IpXr6q$h3Raau8ff0Fx4V5En;qlAzSagh zm7{FC>M_$zvQ6^VV04~yb}%;9OE9;0T{^OLYTD>MW8hm2hZulB>Q-t#g$dcpCTPoz z_D}duPGR!KB0V0B+p#CUr6uwmHQTr#)8c^Tr3f0LQYK%p`fij+3{TyCG2e#0T4|k4 z6-PkN(q{fJHupYyXDUTkI?65b@>D%;EhGid3=>uYRu$CFSOv!@ya=8Uyi&_kAl z{$07k%noSZg4=#OmzeNeaHwwW&FCqm^unV{TZ54SQFLhHPKI zKYF3c<`iL!T1Mot)RFB!J^~jDtB?J1m(fVku{Kft`aHZAq?@)Xqcu~_9EdXP8t#iR zGPfd?aA2D%!X6GAZJzY2o=xqOXV4F6pG4V}Sd&tStf+*Cgllx%2hu=Wb*7oc4bfv3 zx8}f8F<#&2qaY&Cr*0}$mUhq9Z@-5)Zn>cc0$`RuAdO&eJ(x+}$>_FfRL9hG#xS2fXYfk?M zGrvAHFBQzx@{(Msr(3UNZt!={R4S|sHzR0hl8jUZZ9}d>|4%6rHRN- z#ca1$-e-t0JYwK$V63Z8(l^jW8(>Jfeq@xfu0O`#h)g1((FSLY8#b-0p*tm2&XIrP zlZnJ*CAQoA4FYBq-VxZ&?8RFGhnV7oeX85hT45ZRyVtM_kqJajHJz|mF&yxl|M$2t3B;v(nm+y4NKfwdO^ diff --git a/Xceed.Words.NET.Examples/Samples/Parallel/Output/OutputDoc2.docx b/Xceed.Words.NET.Examples/Samples/Parallel/Output/OutputDoc2.docx index 8c3fe793457a5f6d10310f191d79fe0dd9766490..2e3bc85b6b99df9d4763fc777c04063523c2de5e 100644 GIT binary patch delta 2110 zcmb7_dpOhWAIHCA7D5hlXdxsyjWG|4C>GJsvKf!CFdNNrG0SNwLMexp3VB525YjX` zJ#r3tB!>zQ(LyE^MPdE&^Sgds&!5kIUH5gp@9TZv@6UCA{`kBW%0Rp_kOUSZ2!;X> zKo}@-r{k+6Dj~vKqMx5V#%_lgf|zEs7K9|^ZJFQTXyj{@#>KmKXv~xIX@rhs_&If{ zmN!mZ+gdB5G*FaPdWTj-;pQs!US(=u`&=Wne-CQH73Y=dl=9TJ42E-AlMHj38lqLj z5#kxGi`nA^DDUWmRn?W$ct&laBrF={$}`Vqk+QngnOJSD<&6DqCvO{Qlnnb`=N~b79}T(Qhq`HZrE6zmfo=o=KK#|RAg=o%P2g_7jQzTDiQ zGcno#b%oui@biz-2|rQXSYLU-M{$bE^ghM8>&x7{>L4vGaGf*uA*}v}DE-j#b7}|D zJvz1vS)F$r*}TJ(0b?Z5)QVF2Amd}|2V!>lU;GB8To{O}xi_*N{cZV#eBUR0+BwHs zOQ1P?L$~WG=4yJ?A~oZsB5xo^YJauub1kV_{fv02xx+hu`%<7HHg;UwvUpf!kqKKC z8ukPo^OQhmYj21>mwWh*1=T?lhZQEXE$jHT6TyPki-5q+f)E+);3zxW?n#7{b|-{$ zW_rfey!X9`3MSxnyzg^ekkRZ7gg|})!~IAOzS}jEQE30knO2PER=C<&lkOZP_KSr{ zy5F}aOm!?zgLkRUEW#TSkDP)JJ&0W z8TH!{VGP3mUu5Rq>wJvS0&a$dtor964Lv7oQ{=mLixXTd#u z_L3KV!7*gsKl*+zYS`u^`lS;1nmP!ltdbqky0#ul2pZ+d&M-~j5uGxf`pMm^B_gp$ z^z{aN%ERwj2Gny~sV;xNFh2uS;77(zrthm)V2F-!%oBG;HavN?u5?Om;nTcCQ@O-s zlZU{Djkup|@m%#enQueR)uGNo0QhfOmPv+75Co zsN^dEnt9N4OIh}^?G=GPa)qW>R{88|D6ty;gvJPV6E0b;Q7aA;5pi;Gj=ej|p5 zf!?tW;4MI6EHd5_^pRDJSJ}3n|Fp7LGkE2_TR{@viH%?Z0MHZ$0O_B+__eHA>duFm z=d1zXCqA&W;E=QWULhe{2*F}N0&oEO^XfLh|M~G>2>@`>_J0KWcWuC8gdkfn;((Yq NKo$gmV5hC)e*oFwwUqz> delta 2126 zcma)7dpOhkAO9}1CRz+9ta6RHOg76Vb4@1BklAr7v$^Fm_f{R3olr44r4=2yrBEi< zj);X^($$db#FFb|<*39-{c@_`dHV0XpXc*@UeEJ>zhAHCdH?Zx&2vFwE(qr0C;?Ug zAOIAo*_TAFhE+nK>maf+tEaXDf&sBwqm$KSAwqXry?&7$Nk==|Cz_N1O6eHV!&~J{ z5C1x=`A+enR-SFC=_LJZW7X%xtsg#p^kP`7!g$HmH-Fh#LQ9cDR_x>Ez*Tc)HZ^%x zGWqD4h@k{Ck4fSM)Z$pfi!|9s%Y0*m2z0?RbL8#gm0qmB@5eK{ttOBUQ&0QFgwVuU>jtydN$5Li{LI=rf6h zetThqUN6h-+*OmLg9fHgviH@o%9Ay+qt3ZLO!DI6?ayE9!gt50pm(jE6vI7(q@Sug z1m|K76!iQ5MJ{InKOS>vGy$qF2>^Ns0FVO!;Alj&|1SRszaxx*@L0oRjIaeyhVx6j z?5D)uwT=4Y>ic#1XOLW*6W(d&l*pr0=Zbl(1)L?Qd7dS%Y_4AFy%y{!&Fh9ywtUF$| z^45XMQxFh%u*c^7-E1XI&GA94E6M|<%9;*`of=mlqzi9C#9*jhfS1h-(Q>&kQN=lw%mDogc$x5W1umw zwaP9jOcw5;)ogNp?}Nqv>~L3#WLjoRUnnx{DYe!oa%=8(OLYqczN+?Tqm@SE zh8TI7xHi&&V#&6?JDVkA4cgNe$OW6R^(_yy)w(uK;gcWDb#IJHe&8tK-x0g(v}IXDMqt@<+vd$EWwh}=!R&8af-=h$PWMMG zN=wCC(Eay%glY*VHA0gp1Ldc$cF+#ob~&^Xv7d>2dEr4^R*681Mm*tWTZ@)l$bUMq z*kP)UojsLjn4fXhoFDP0GI0bMVqbHzC9~c4p}hYRQ;CIh64$Zve4-NjqT>irZ&kQq z**U_EZ$&n|Q4gX@dtJ|1GqZp5^D7XcL-7*{Mdh0GyQM9R%Q5wZ_m_w~LG{iFSaNIymzdG zW$B^>`BY>bHJ-)vV&r9AG8*(2Dye8*mN`^8x;fBJ0eth>uR-0{#gaH?eS414^%jYa z$Ph_wiHiBSA})!G(9lpUyRf~!;0!rzfA7lM&U1~K!f~bc&&^_FP$I2L&MiV!ls<54 z(WG4G!?MUCPW6tvLPg|_>m?yD9_SvsNXHJ|j$chy&Sjx1o-gZAuh{A4ir>7KlkT%f z9<(Iv4yg~a3!x%Za-0enRy2i83sW=EkbxPVc=effDYaUWmJ-|F)1zlX3cDV3{Kg2jb!K*y-r2U7$FGAz#vkb@foF9^@P{2 ziXeWnc^Bil%&PzF2OnZbD z4vjO#o0!s3cw8U`g+-%jD7rrygEBTY#+&&0;c#dpS}ot6EA@4S<;whj`f=7=ZD8v% z|Jpc*M0N(naq`G}L1#HH$XdwtcE}nWyD9+y@zP&i{)^Fnt7+6X&yV3mxFI+y7}+l) z-)jrU&&?Y2hEwdOc5t1hd!~3QQ3e3qPXfS}??eCmc_!a!VvmOf#HoorZ323as diff --git a/Xceed.Words.NET.Examples/Samples/Parallel/Output/OutputDoc3.docx b/Xceed.Words.NET.Examples/Samples/Parallel/Output/OutputDoc3.docx index 60a362397bdecb44b9b3117b8d26726323b52b12..c74eb3ed2c1069aa6d8508243cc6e6c554868160 100644 GIT binary patch delta 2092 zcmb7FdoXnwF>;SVbABkKW`wOh zDUw`Dp~z+kn-JS&=e7x@i*}NoW1n@_Ip?qQed}A_^Q?Eh-?QHDkLQ^XK*j|S7|Biq ziU33bG2oU*45b=&S5$lp;I6-ag|2BA)rYVhB9l}RyWR>8zd^R;1Zim&h23+Af?Q6k zriLdNbdNO7bK_F5)!_X7%&<4BrjwiTILQl-*|+N$thCcD!>$5}=ibS(6(=)Y4UuL9 zMMUhw6Dxe*o|UTSF;yKX=LfAv=TdiBhO&~ckC3E!Uo!^E1ADHNtBD9a-9?gZoE_Oh z1CbZFzA0?8r(A6=T`H&1>?3as(=sjjRs7of_{_eG1)?4)THU=`KKJ2Byb0IqM|p4< zCAnU7QSVIn6UP1~uLx-K`z8eJSaiL-uCTC%i3uHPLe zgWg*d@tOET6uES>LN$;MRYYHVcbhE?mebHZoB03Zthz&S>wAI6X2dzS7W7OfXc4_$I! zVyxn2HqC-Jlk!&Rt#&k}JhPHA|C|AO1?$s!Y`fZNHhlD+RPM${lOhcbsEfpJ2Bx&K zM9<~;bB|4KtknOxny(pTkr$A-*7WlHq*~{tt5~x|W)!^mBe7I!mV8ajaeX}F%u3f% zj``T3r?*t!=SC(0iHqR}k4OI}GR_&6 zfW1vm(Kd!T^L21T8f_c~6y;y|j|kcxlt|DJpl7(D@XT6tYLVL5pkzld>F(NpU^X(T z-O*~j({uNsZ`C3JeJvGcpmC}G@RRY`T zS@cYMm}Va~8DY*^W?CGM4Luco=h1~=+x=b(vAppgOz0f~ zRb^EG{ke52|HBP}lU7B4;OJT-SGDCrKAaT)X|yY!^h9T{rz?(D_Kkkzh)R@6yM&gw zgN!DAG1b<&z{^sWs4m)K$8paH9AHNlb^aNtaqi`dx2&J`5TV7dS)PVpHqWr;&eX0X zdNb}ACfsLnx^a;2uD{==!fL3-UoNXG#||FelUgmv!KG{cbJqYanI4KIGlzhT7b9poVI zUF==$JrX(DOo99FdT88%$>g?T1E!rJ8?G0Ob(DLKBb*W+EeNAOi*;3Ynd>e4reluu z$~i6!R0hwXc;hw=Wa=5?HMY!N&g{>pxlPh&Mg1u2#rXtjCjSs3t#9u4K)KI8!VXwn zzHM{Ii2-O)#YoK2tfwW*{Kj_^;2V;rIGA(j*r#Ky**k7sE{99JGWA^3EM*NY+b1px z!Z3|r-zEYS%Ddt4nqldZ~VD+nNcfC>_lh^$&zHREBLLL73!Bu$M zr*rpXDpCD%@Y&-c%4~~MzEAm!Gc_$^=^UQC$5A|O!8zQQiM%bIq)a49YPot5CmV@c zjaLUU6xHSUks}w^M@JAd8cU1k;>wGmn?HK4Z4~ZjsHL>nkeZ$x73y@Is+%%rn60Zf z>PqC)Qz+!xgayFcy3f`*REBtIeyG86Lfi0N1S__7f2VR4yVjk-Q;K>4b1IH5crY;Z z_AzIWA6OA|gjpSy{H@F%WxD6!;m7l5>u6}gx*|>1#`X$)U!_mYaDH7=vx8Qv0ypdd zTq!Tc*R}!AKfTk`BrExF*&m@{W6?A{=*_H~!ny4Fd(x&Yw)&&0ul58Bd0*z4#a(h7 z!H}k0Wb!^C%xq_i&r5X_ChJtRzRLwG4AhwN)@jpp!BU>xNPRFfk z;T^puwm1N^e?K@tdE0*J{(iyU7$0vRLjoR)L*tCFShRs3fq*u~`uL;0aaaRG!vH@V zJ^=qcJ_1!s6aZ}=f@^`SnYPUo|EB;LNz4!V%dAkiR~ zYz0XN2gw@S&uoyDAQPYh#can1eNYxF4~9{6AX8ugMRmL0L{WldgToY+ZTjUqC4fk( qIfM>Usi=_uo$z0JTX&4@-*NN*%}cV|DZ14z^?e730DzCn7W)gILZ4Xx delta 2145 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 P>c>Lauh4|C{@(l-CI;v4 delta 3742 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 delta 2796 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 D@iNf} delta 979 zcmV;^11$WfEv79FP)h>@6aWAK2mrE0f>W^$Qv?LEMS@eaWdzs>1hPefQ?o%1N1_dtA_=EgaTpMhOH4(Pgq7V-K7@g>NMOXI zAW3*8Cj9jA=b!FQD?_XWnh8Kcn3V*+7AupNgd;QIG}qF|f4!aLlCR``Pjk|Kgl&XQ z!qQr`ilR2?N-842x0jkD3#KljCS)t~iW6a@SsX7TO&GFpU{g|Myc++%YTzur$nnx8 zj+}YkX&S%dx+ke|7xA9sxd5eQPK<%fa^??6g_kkxJvxo+iDnw<^FRa&7X(l`+$P{f zOG|Q>%HXsjf0)`N)CA$Lf}KN$2oTMQV?u8@B-dxqRB%D2uY*24Q*oZq@rij#2O;i;lxBdhutv3og>6HY?BrME>K@2^=YzWlj< z-01k*%RH;t4l)ibgBV0TCx1!Ffv*VMxP8#T zi^(2U%zj5%YNZ0+5kVzxW=W%L-(S6aAWTvUjc6fHi&1MqTsn6&ZsA5`fyK$r)2~>l>7@JtuoJCnO5bA!70)brY6ROp_4lNxB|(HPflvLgX1Km|ho_71JbSv?y)8ODtFz=|gQ~ z#jN$sYTvB!)dtF4;(*9Lu|2E1#JUH91BWAh$ccx=&QOOGw<1q0hjGb#?S#Qax> zfA1w@@9`#XKe&owj$V^+7B7Zv&;~)> zWMxMoEu-eRSTz>J$fA0KcT&+vtDDicXRUW%PGM-$Gtc^Mb~U&mqsFF0!S=IKd%`ab zp;m4GDSZ4JP)h*S5IrrB$gXBIjJ(G&mx008+J B)z$z2 diff --git a/Xceed.Words.NET.Examples/Samples/Section/Output/InsertSections.docx b/Xceed.Words.NET.Examples/Samples/Section/Output/InsertSections.docx index aa51109ee529b5ce0895472b08d3f34b2ba89f2a..b29777c37554cd657486607cea0a0a7c85ebb028 100644 GIT binary patch delta 8459 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 BLL~qI delta 8182 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 diff --git a/Xceed.Words.NET.Examples/Samples/Section/Output/SetPageOrientations.docx b/Xceed.Words.NET.Examples/Samples/Section/Output/SetPageOrientations.docx index 365acf0a628b4af320e464887f1eedf1a96a87f0..0b050cf7a1de570d838ac692a47f1667a3d8513f 100644 GIT binary patch delta 2839 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 U2mqY_V2Id_qmnIavc*KAWFJwoW{H@>SQ2Jr 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 diff --git a/Xceed.Words.NET.Examples/Samples/Table/Output/CreateTableFromTemplate.docx b/Xceed.Words.NET.Examples/Samples/Table/Output/CreateTableFromTemplate.docx index 2f36302e31b38ca40bbbaf1a8ae115af2da89cfd..c79a6b309c569799b01eb6100f95ca37e5e43ee1 100644 GIT binary patch delta 1639 zcmV-t2AKJ`Y_@E$APEVnTy|7d%>ZMLlPL)*f9sHhdr@K3(oVP1jFv6k9qrS|I0mwH z;>a;j=GV`$b0G<|rIgLGmBmBx=R02v#pj~8yscTRMar@EjFEcm{=>uU8`<8wt5$GhDj8`dP5W}QDi3W@Z)~oT#i;?EFCs2JV#uR z$Bhr?)lOR0nbqBPR6oEG?6B^XUHRK6v5*8XIAz>N0-Ahg`G`L(!jIrNM8cbR)DvrP zYPVB246?(6UgF|o7K}9M#la+hQVYJ%f4Z^BRgzh?qQwb?7+4U^y)a9Uf2cPYoTpBf z&uwDqQ!}HM(|jAZuHw9G9PSf-l1!h*kw5RzvG>S`bdg!?6GCy#G!h?q!Diuupvi&j zv|i_+zU81Dk=MCsB`&OJ?QcqB70%w4;sVLPU^z1JY-x3>dOXOps>70CAo$cdg#5R%onxAo1>9-?Z&c-ELff ztS4O~E<0OSt;^v>)_FyyXhFsH$SBv9_>Wf@@vNyj{=s0eM6_>WsC~js!zxbT1q;;` z{YY&Zc5!|(JdB>2aBdYn%62{`f4Sh!9akBYG7y8$9;L>;OrbI5%s1|dAA-aZIb9TX zkeaI9Jdw^9GgnGe7U6SFyN+XDv`ZW*b>>zoj*N0$N9V|7I|bgZtfZb>?H7`^bHXAW zm98sYVOIcFp_($xdC`%?o8Q^>`%i z7&vfblcJ=x85}aY@PpiVf7%g~i~V*9pVYF}UvbOXwf+!=@=TwGaC7(j@cQoW?_X}m z_XW~fWl&;s2|&^340<4%7=T9GZf~txp3yn>j3n4XY%<(}2sPUEX19|v=Ux@kMZ@lP z>{1~KTxPhyrP@k*zvVZbCfw!12%}(q^kLtsQZftEq@dqAm$2J4&oLeY6|Fbe%28_IUDV)5>C& z4U{D<-RibM`Qg0ry>q+&QWS~ajW}}`xTJYGyRFoPc}`j-QXWXsjwWeoyPBk%>0miJ)nmkV@ zeRp2qvk|;bSv%e%>K_cd)^arJ)uP_gfLBfPdaZRF)V1CpCnaOS(P~0CKk4)0dqiGp zexsvN*P8#X0smk)wXW9uQ%cEj?%@X#=t`(w@Xxv$^=eUXe`~<2rg^K@Jr2#a;2-Hr z9Zry|>!5nM@7NmkYEeJafLBfPcCB$7nrpc~PD-w4vq+c0f1vjIa9=U%8t{q%mug>c zYPCP1l#CJ8hx@8QmvZmuFYhZxUH^x?V!)3`^Mc%~Ms~;G1(4!jCE3^Y`bB+D3`S2aH5>nkN#nG;4Rxh(4)2|_`02#B2kGgX6a{XC)%``Q zX#N$+XaozTRimkv^k#Fgahi?_Yr=$J{$`kxso1pU1i1ua?$~PaDPtnnoGpZEmaoxZ zM&(tOOZhgv7(e(4v(yeS1_Y^G zc2u(n6^;i4sa$qcvzi>C4+N=Pc2u)JEFK35sa$qcRm}inj+16HR07iulkg4~D^N=T z0xbX(00saE0I6JdRKS*e=pF=-(4mKkOj4}WK004&}6V?C# delta 1640 zcmV-u2ABD^Y`1K%APEVwMS@cqe)?OFlPL)*e``s?9aI>#w9~CLqh(8XNBcA~j)82Q zIC2b>`So+`Tu1_KY0G4~mBmBx=R03a!KWYZeQK--k31F(Os8g>1_>~8yW z{nm%`Y$q+NXLWZS)nDKUc35}HuKZn;SV#gGoH6br0Zl%)e8lgT;R$#Sk?^J-^~468 z+U?X0gY592pSU>5f{`ZuIGE&5YQYa#e>XO{NHVKdv^b#<0}G;s7iQ`4U+N787parg zW1Cp{)Xb>mG+)Q9i#RV^hlhlpB-5vH;p0)U1S!Agiu^Fjl@S@uwD2?(B!~% zTF-M(-*M26$n#vZ5*Jpq@wcV14(G4S@)c*xaO=%`oww`YF7p*UZ-WV2@(hk%e;3ST zfkG%{ANQ~40pn;&AtK1V0qHYT1`JsxCP=ekfH+T?yHW2|D>T-9ka+iIVA^)4Za2%1T{w4`EpWSr|t{KqSddDc`N|6#CLAv!QI)IQ;+VHGFvf`#ge zzNa<~yEs1?9z_pLIJJr%Wjh~}e_U|yj;jnx8HnL0k5c1SrqGyi<{P)f4?$vyoGuDG zNKMsl9!TetnJc9!i|{e0UB|J{+9i&ZI&&)(N5;9XqjO}sn*wiNR#MNc_7h3lJ7JlQ z%G#skwOlKM@ju#J%vmX8{U}5jR43#lB78;6;g^l^FlUQ6Jg4H`EDFQ9f7D~XG3XQ9 zo-%ePk8l$KXFpiSb7B9oJObncg5R##Il_1OC38lXfx9)a-ZQI)UL;;7dQVExfubj- zG(QuXJ3&tAL~KB+liexZzT%#{BUUi;E6iFasTP|MQjL~^?VI@-lAXG=n`g>m=J80} zFmT|=CPhhWJ2+x==?A&-f3zbe7yIKJKB;A`f8v(2Z~YMp<(WPW;p*nk(dEs*-#%YY zZVRNd%AmyN5`d!5IrKm@F#wIW-QHQXJfm~$8A-5(*krf`5o)yS&2A@U&aEn>vxeR6 z*rh@exXf^YOSP5se$8(>O}u-L%0&{_(ZbChdXyk8Eij{ur(BV#f2J^c(UULb5YCI_ zlj@v;Y=8(Y1J@~x!12%}(q^YHtvzvC& z4U{D<-RiDE`Qg0vy?47mDT+kz#+0!h;pi$#p8JS6U)&Lt}kI!)#Q0N z>HG5npN-)4mbK$OqW;0KYduG!UM=c94S3Zw@7A2-psw})I4PM3j@DDc`I|m3zDMMx z=67t3dbOz6HQ-g#+^IE>LvyY9$4SX(;o&W|S>Qgc5Ee-fDko)7HuI2tXDY=}_BV7i+K<(Qa^=eVqUzt=4_z`KY z)&5BT!ADdd?yCk})-DqxfygD3 z^ADFtZaYK-e~a-WzlPr%!32yRT53M|9+SptcN^+T;R4<}z4+3Tw)QVE%TPl9|}H76iEjV(!>#@fl+x*PJhfYL>6j zU`FLtmgG8Ip$`PIMS@eaJ}e#w39?0kQyG5xTaS}vGgJc94wLT=7b{Rp z0Rk-m6aWSQ2mrE0f>XejeCQqo004*#000pH000000000000000`jh=LJ^@FQJTyxI zO_PW;Cm*s!f>Z1!jbG6V007m0000jF000000000000000jFZkZJOPT63pG9g9Fs~l mA_THUf>V=lH5vgilZ!P!0WOovH9-MxlMOZ_28}WR0001JZ3Y1V diff --git a/Xceed.Words.NET.Examples/Samples/Table/Output/InsertRowAndImageTable.docx b/Xceed.Words.NET.Examples/Samples/Table/Output/InsertRowAndImageTable.docx index 0d954494f4e28521e3f2a32a424416d943b625b0..b2a49311907c8fe4c355ff43ef578b273e7e94cb 100644 GIT binary patch delta 4566 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 Co=-;r delta 4580 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 delta 2582 zcmbW3c{JPU9>#x>+9s7$Y8#0twY3yMZH-a2Z>=q;Sjsd8qftAtB#Ih)NzvLmv~~#* z)x~I#DymgXBU;*EgpQ)9Qi@J{_0BnW?)~fj^PcB?&+|T?@B9As)N9mhKpkws`@{eM z5CU4vFFDhp_F$o}BK_deCdQ9o1JHrv=;OKuXkPlnM3X zpAKOoBXqIr*W-2;uHYZ)<|#KHmW?(k4iw-F+LLrVTIr0VkTTV^Gv^$0I?$kw2+F!+pd2|{#^Mn$@E!) zymTZ{h4pcE9D3cEt5^|cS-x5B|G){~(kcU++>d<5C2oY%>}Eq}3jK;Bp-Ej6#H<1I zytDudxc8#*aLfKb^rndo=A%C3IaOzti4)Ii%hxI|{E&#&0n#~uiiRbp2LORj0g%9u zGz4TpVJ#p!Xba0AT|>c77G&G`-!HbUcG3NtLy+!=yQEt~RNPr)`N4BseFveT$M^pD z<*a(jSeoU$z`3-v1%Y$!^mdSf>wyp;9sU$Cxri8LQY>@vx$~bi$-MHSD)#gF`&BQT zpUJ8|=D|3mql43ZMPv$DlwY8J3iDp#c^gQ?;rtyCDq~l-(^Pa?AVyGC3kk6=Mx3k+ zhyY{6=mc_F{Y&zk8HO!Do~qLY_Tz4Yu8h?uG#a>rF<1M)94@iIWW{3^eKt^Jd1%HY zCsiE=SnUnL01S%)-p65L0rFHo7$EJ(p@1u6s{q-oKoCIHV}NA`9*CTF6b5{W(SJll zAt7F09JQ-Jr|F*KP487fK&l)AbT;!qK>D$NWXJq%EyncGhrU|&!oKd59BTIs{EbWc z-{3Fa{^b86U;DqwiwNJ!4&D!roh8km?zW$sEMexgwJAT{IZg6cP)Gugk&}~4Zr=fE z4lZp$Y-Gj8=z`Q7QxVaQx_84dV9tQVL!jCC^M)<&a$|IA;j;`EtdilrYsM=@3e}e8 z=EA!zVwa0j6Y#@Sjmm^0F2>P*8ue-U<>#N2l?`CygEAj%8ue-6Yc|6S_*S1pPpo%L z%C(oVC&LJ7sU*9S>YvVL{)8XN=~GU%Gt1TqZ>lLSrg@}l4NSy3hi;ziTm9LEO)&T{ z3K3FOV$7&rYBpBXmd;RTQ?H@cvnb662-DjUJ?1C+7jH6YPBisb@%X_EW#4D>gIzB_ zb3>uJ_hZYd%{L&Hz7Rz{OW&I_tBzxRT~z}EPHy^+*GPjNRo5TINcEMPYbO&aD zT%)s@ck5-Kku!SHdEAG}OeHzysNv>qiV~Cfc&1mLt}aJ^ZJ7RnqC{VJv|1=o=fe9% zg!{#_N398^I{hCuPOb7;W4#c{4P)dQ3KnvVG)zS}abt%$x79r+TNS5T*@iV#%Iw-? z$3^KRhE3qBn-eEeBXdzdaMIv37;bKB`PMx`ha^o_E|K}t{jMET#nnh`l#5^?g~pMb z{c8C>buZbeZJ9HO*VShBfrvb9Vy&l7yw9e5mv`uQbAj5`Z!Qzc-O%P#MGF$AB#*S4 z7-E4GO$oMKGsj4|X8mryy{@@aI6B&%uOEPY&r^!?sSGx6gI^d4>82Wo=EaK=qVKvO zQf&g);+)a5We?l~`eZ~pWvJpy0iVNasEPxZkwYNl5N?W`*o}(Et+dG4;zz zl0n!Sk8#;s59FIz;L5qP zWV(GK)?;G1-s#l;LHwb`WG=_pG$qi zXZ}2!bnE&O!^@A>7h@g&S+9L9*|Jm}Uqx{@^~dy&y*t~^IDJHNMfCjftTP8}o?4uK z6?C##2oc#8gjVz=)>cG4?~$#eg~x3Pzb(Xg<32}zcyx7@9G1URX<|_7!ig&^bc*q8 z9L^_t`>ejXB59T8$du}!kwiL3XEFAQIG-j@2aU!%rf!^Zr(_$Zk`W|!zIHvzUv>8d zWI`}Yeg_);;CW9IFRfdS-f~zWS#9E~(XZpV#-%n1J65L>m*O_w9%ZoeQ=SNSD29x6 zw0ncS1(%8)*)q2I$TWc_ouNSsz%9H&qYzirpP^)6;0&M7+IBP##TIE`I5?YgG&=GOBGM!kXkiMr^Z z{@)~pGhvdpW795H6qfC6@E)tl+8zvjoLvtc4ZeOvdHvFJb z6--_!IdVPn&;FXs-PSGj;D;{bhi0WCQxocztNoJv?8ZqxZ}YhU{gt&I6qoZFf-z|C<$T{-mrubC#})(tk^2Au4j>uxuoTd~uN8|CCTjmpvEV51zh)Gk_=&$O z8bw6{{f{!{FQF;?_3qwx-jEOnXFvf;EmY=!gDr^f7$64x8%vpy!0bgTNE+=4yrlVG DN};f_ diff --git a/Xceed.Words.NET.Examples/Samples/Table/Output/ShadingPattern.docx b/Xceed.Words.NET.Examples/Samples/Table/Output/ShadingPattern.docx new file mode 100644 index 0000000000000000000000000000000000000000..3d75bba434ba139671cad816ae6d1c1ca0431e22 GIT binary patch literal 6179 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

0pqN(9Aq>?~^P;1$aKK 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 H@Voe5ke0*r diff --git a/Xceed.Words.NET.Examples/Samples/Table/TableSample.cs b/Xceed.Words.NET.Examples/Samples/Table/TableSample.cs index ab4fb74f..957d4831 100644 --- a/Xceed.Words.NET.Examples/Samples/Table/TableSample.cs +++ b/Xceed.Words.NET.Examples/Samples/Table/TableSample.cs @@ -337,6 +337,97 @@ public static void MergeCells() } } + ///

+ /// Get/Set shading pattern to a table or cells. + /// + public static void ShadingPattern() + { + Console.WriteLine( "\tShadingPattern()" ); + + // Create a document. + using( var document = DocX.Create( TableSample.TableSampleOutputDirectory + @"ShadingPattern.docx" ) ) + { + // Add a title. + document.InsertParagraph( "Set shading pattern" ).FontSize( 15d ).SpacingAfter( 50d ).Alignment = Alignment.center; + + document.InsertParagraph( "Set shading pattern for cells: " ).FontSize( 13d ); + + // Insert a table. + var t1 = document.InsertTable( 3, 4 ); + + // Set shading pattern 1. + t1.Rows[ 0 ].Cells[ 0 ].ShadingPattern = new ShadingPattern() + { + Fill = Color.Red, + Style = PatternStyle.Percent30, + StyleColor = Color.Yellow + }; + + // Set shading pattern 2. + t1.Rows[ 0 ].Cells[ 1 ].ShadingPattern = new ShadingPattern() + { + Fill = Color.Blue, + Style = PatternStyle.Percent50, + StyleColor = Color.White + }; + + // Set shading pattern 3. + t1.Rows[ 2 ].Cells[ 1 ].ShadingPattern = new ShadingPattern() + { + Fill = Color.Green, + Style = PatternStyle.DkHorizonal, + StyleColor = Color.Brown + }; + + // Set shading pattern to table cells by properties. + t1.Rows[ 0 ].Cells[ 2 ].ShadingPattern.Fill = Color.Coral; + t1.Rows[ 0 ].Cells[ 2 ].ShadingPattern.Style = PatternStyle.LtGrid; + + // Set shading pattern to table cells by properties. + t1.Rows[ 2 ].Cells[ 2 ].ShadingPattern.Fill = Color.Brown; + t1.Rows[ 2 ].Cells[ 2 ].ShadingPattern.Style = PatternStyle.LtGrid; + t1.Rows[ 2 ].Cells[ 2 ].ShadingPattern.StyleColor = Color.DarkRed; + + // Set shading pattern to paragraphs + t1.Rows[ 1 ].Cells[ 3 ].Paragraphs[ 0 ].Append( "Mike" ); + t1.Rows[ 1 ].Cells[ 3 ].Paragraphs[ 0 ].InsertParagraphAfterSelf( "Tom" ); + t1.Rows[ 1 ].Cells[ 3 ].Paragraphs[ 0 ].InsertParagraphAfterSelf( "John" ); + + var shadingPattern_paragraph_1 = new ShadingPattern() + { + Fill = Color.Green, + Style = PatternStyle.DkHorizonal, + StyleColor = Color.Brown + }; + + var shadingPattern_paragraph_2 = new ShadingPattern() + { + Fill = Color.Blue, + Style = PatternStyle.DkUpDiagonal, + StyleColor = Color.White + }; + + t1.Rows[ 1 ].Cells[ 3 ].Paragraphs[ 0 ].ShadingPattern(shadingPattern_paragraph_1, ShadingType.Paragraph); + t1.Rows[ 1 ].Cells[ 3 ].Paragraphs[ 2 ].ShadingPattern( shadingPattern_paragraph_2, ShadingType.Paragraph ); + + document.InsertParagraph( "Set shading pattern for a table: " ).FontSize( 13d ).SpacingBefore( 40d ); + + // Insert a table. + var t2 = document.InsertTable( 3, 2 ); + + // Set shading pattern to a table. + t2.ShadingPattern = new ShadingPattern() + { + Fill = Color.Red, + Style = PatternStyle.Percent30, + StyleColor = Color.Yellow + }; + + document.Save(); + Console.WriteLine( "\tCreated: ShadingPattern.docx\n" ); + } + } + #endregion #region Private Methods diff --git a/Xceed.Words.NET.Examples/Samples/TableOfContent/Output/InsertTableOfContent.docx b/Xceed.Words.NET.Examples/Samples/TableOfContent/Output/InsertTableOfContent.docx index 8cd34f2c492afed2f4f2bd62a5ce4f63e2a372d2..2d8fba6f06876c98ad227785a960c5e6ef284749 100644 GIT binary patch delta 1097 zcmZoN{cXY*;LXe;!oa}5!LTx>EMy~}A1eolvH$MwBb!rLEg1z&ER&5)3`{K&4U^9?qAj(WEvrT;e-?N2`PM>PLva!o_R78V(~zMr=)$+*tA z)Y&C$Tm9`l8{ZqBPgnW5u&HK>M*epjJ=KjXBGyj*v?X`RMaBEvvddrO1njzW<)22i zhu4;z`nX+w^CI2a^=6riKJl)++oSU&ZPA>!OV+)(u2b+{debNCc{Peh^^ZC~dlNp7 zy8oUB4LrV{c#j+&?d-2g^RsQYc!Q+9tQ7-s?xLrO+qmecY+PmtUXF z5&dXlo@UP7I_X^geMMcvZN3Xp13?&W`SrG7#Gk{xNtti!19<`>7S{h&_`}#!Ts-B&kxN>t+Y+|@ja$E^?l|{Ral5b2 z%(~x7#4aq**?xRu&7&QYk|Xn`q%O6cHdXlaRGrmXi*;7N-MD66#JZHo>(Z%_+5M?+ zj})n%UUpOCbXB#^^!wN5Mes$wo1X5p_-00b+GCeu)3aWizsILlo6J_9wK_BY+N`~d z(p%h%e+ubF?!`kdTb8eyKd{>+5i64qbACC)5HSaP0kSXueVqyqweUtJMr+gSFADB zb6ixmrCK|jKh~sN$f^^vP$Xi*%c8pcd2XLSe%p6<|2g5xV*>8!)(NhhENhFZw$!qF z8k^GU_GAM%Tg(?aThJh)=C*tfnR)8{#-@`S}aw#)clbaVfjq-(@`V)45N2cl!I zx4rDzI7xdOqf`E}l<7ZP6yv`vzgnKC8aCG@db_CcnSygie2*$Eo3j1?zH6%cFD1Es zX!E|<(N(N`OJBF@tN3nzh}W5*`7wU#-|OCt3=E|#3=BdHo3{zIGO~d3-e!9dUnpyW zs3tR5Z1P?SYk1zBBx#76NhjM$8pwmRf{ASF*81@d}xF)$=-zQLx?QNOQ3@nZkS$VOlDbpJ5Foi>j<(r5Sloww8e^_6rRyQVDOMZztIvYdmsWjlluH=m2vU#`-@ZyIuL*9+CF zp<9lx-;mew@zl5c+2-GBpZ)An*`G0iU;XLZdB>Nkh>5P=x@6wB=_XcBxR*R$GQT%2 zeAX@b`c(hm&TH4b#jhB@etY5S*JXDWOu2scgws2#Q#buyb=7@i`p%}Tz5nq^@t{9J zHYt3aPdf#CHYJ3A>qyM6w|aW)S0l@tJEiZo`7V1c%DF<;LOZOu;(IM`#nZFfy0qjY zHk~ZY`QXL4Rd)A}2<_&Ni5p+P$Y+Z`?i^V6<@CzFVpD%Nd$qe&f^K@1dGmM~ zPYal}ZrPk$A$@<0{ayu~+fwrQPmF%9v(>yj;cn~tQ&tz&YRFDeJ!Zdg*YCj4{9i9$ zZ~qikY_C(j;LNYL96I&?THQBp`KH09vF5`5I)Q%-$97tJRU~Cj6^b^vUAI0wYQL~; zXuJR3ow2FbZs8g-r{5Op%(qzgBx0I$YGh`A>eC}ds;5`o(m0(}t+QHvns(&1uWpgo zZY4)rZ;Uy)DbwuKrh9UypKjl(KFxXB@24{_WSHGreAD7$jPK@4Z~jidDOZ2?S?9B? zSzFWc53s$x7-Kg>eU|bp-YM1_K5adlU8l=&z5Mn=E7o$6`@h58vjszUSxvq9_tNA4 z#~%NAH~r|nb!)b-URKj^sapC{PU!mV-2cn=|CdKinqQ=*?|lzUr~yn23^G7io?n!r zA77N3Q>>qopIkb*M$okW24|*FxbN=7!`oi5%2dyBIZ~El?Qs5BlX4-ePRK%$hz&1` z>hkBgeg61upY@(uoi>a47jM>mBFWqoW@UP7U#se?-E4fn?+U652D?ifvz%a(T3#$3^N|f zCrCZ2JjC!srKW!)>#s+9cBO1~Vg9rt%EHVvSoSg3#!0IBf*gBiPKxzuw~PI<{Azik z>b8famlv+fy0c-^gRiYY$4(cWp#>bGK0k?Z@nmyJ z15S`$a6nHkkQ8MO6=ay4BPgpK;LXUS%OJvl)ly)TAi%827bF$sL8gdVD44PU9rgqm qUBU$ zQc_YU-({2I1u40E!Ep9JP6mbxn>pC^IqDN#V!rFI{$TBPCjMiXjT$@0qkZS+tyweY zv4GPvopU$d&-}gFulCqsxfRzGtRytnm_5l_&g`j_V^sP2=@gcek*%jritMf4)phpC z*(iq6a z_(YC_D%{&r`z5}8TOORaM&9GVx!C7DT;xH;+g{nI&ae@@NL6$!Q5pmMG- z=ff$6t+Km+L})jEOx*bT1$*84$GiOsznos_S7a)%bCZ!Xe@wmVpM5f%M-}h4ZTfrp zwQq~=N003y+w%7J{#s%0y6bQF1NEP-d*9{hIsQ3)ZF~A|XSHaFh&q9~^fS)BH@{BG z6>PrLrS;;>lM~1GzYWoFJ6N|qJZk^r)>$0;`$WnMFt*9qUW=5_C;HCvBwDoffqDfM#Bl+?Yp)4mFyo~rZx zwDH1=Ia}N}7cSa4D{bk`-};+vXPp&3d(|ZS?7arwTZ?zr82FpGn@DSvCp_);yZ$Fi zKyT01!=-HRH1>VhkG`s;rJ<~~{q}<6|9g)gz020UH#RbV+U6e&sqb@sh2qGufKr);>N+i#N4 zA-nIj`uRs4A4N+PefsBAU%l92w^4Xz#Kmj95=k$j>=srXoA$%2W6o|>=DeBpZ%Ssq zuyKTbRKgmb=_bFBFhtE> zlhq^*I6-kM2?K!kd@tF4Q{h9Y}e4qK;c+$T`j)rrlY_Fa-Wl}`QnroA)uElS9F@fFVxTn4R z-gPEh?dwm?UnaD6{dBz*&#&EHxcas4PDjo4A5S>FvpRLt?{!z*H>U4w%KG~spA--J z6J+y*uT!*Bz-LoJ^tX=0{CX?VW4{_%-rOmDXXd-?wJ7HbSqts3;)?IKYEHx(uAoRk_`pF1UWtL?O_!l$R|yslcTll^w%nz<3{Qf`_^r$*-Yr~W-s zq9-ei=47l}7Mc0&-|3wGw9hWZre~uzn;2!;VOu-6PIa8h^?vcO{&8Vp^r58u@N2W5>exBlY(FO#xvk0T zpIQCo`~Ue-)0F+R%I0^Iy#?Ls{SF%lIIK@PJMTv3T!DbgdAky$zcTgN{_MEX_r`N! zdh)@EJD9{)1#s!yD6!mc?!WkFMfLqRac@ufNj!QG%Uh||u<-Ido^`7emwj8;bhoVd zKw#jjj=u)3)7)a#EL5K*XW75YeRa|^^^%pBekF)5H7KbG`W0DvBHU?;jgDl&*_8U@ zpIiPb{@NyM@^0@uU8`TrXO!o<_Z;ZcD)BJ=ATEDKb+)S12KC^>3s+o;dKF`GY=Ou! z#$)-*o}}GQ@DTr-`8778V{NGBmsMwTfx9Cn2!&w@Uk_ zQ{DQybzjAA`$NKj37W6sr~bX}y?KIAA0rDW>ugpM@rAOAMKzhhVv`q0Si`g4F-wXtOg0n| ZnJgg10})h^l48u7Y%Qh2HdO*-2mnEF*yjKM diff --git a/Xceed.Words.NET.Examples/Xceed.Words.NET.Examples.csproj b/Xceed.Words.NET.Examples/Xceed.Words.NET.Examples.csproj index 5f660143..2391d0d2 100644 --- a/Xceed.Words.NET.Examples/Xceed.Words.NET.Examples.csproj +++ b/Xceed.Words.NET.Examples/Xceed.Words.NET.Examples.csproj @@ -120,10 +120,10 @@ - ..\Xceed.Document.NET\bin\Debug\Xceed.Document.NET.dll + ..\Xceed.Document.NET\bin\$(Configuration)\Xceed.Document.NET.dll - ..\Xceed.Words.NET\bin\Debug\Xceed.Words.NET.dll + ..\Xceed.Words.NET\bin\$(Configuration)\Xceed.Words.NET.dll diff --git a/Xceed.Words.NET/DocX.cs b/Xceed.Words.NET/DocX.cs index 2b336bae..d710853a 100644 --- a/Xceed.Words.NET/DocX.cs +++ b/Xceed.Words.NET/DocX.cs @@ -38,6 +38,7 @@ namespace Xceed.Words.NET public class DocX : Xceed.Document.NET.Document { private static bool IsCommercialLicenseRead = false; + private bool _isCopyingDocument = false; #region Constructors @@ -301,7 +302,6 @@ public static DocX Load( string filename ) - #endregion @@ -441,8 +441,11 @@ public override void Save( string password = "" ) } } - // Close the document so that it can be saved in .NETStandard/NET5. - _package.Close(); + if( !_isCopyingDocument ) + { + // Close the document so that it can be saved in .NETStandard/NET5. + _package.Close(); + } #region Save this document back to a file or stream, that was specified by the user at save time. this.WriteToFileOrStream(); @@ -463,8 +466,10 @@ public override Xceed.Document.NET.Document Copy() initialDoc = !string.IsNullOrEmpty( _filename ) ? DocX.Load( _filename ) : DocX.Load( _stream ); } + initialDoc._isCopyingDocument = true; var memorystream = new MemoryStream(); initialDoc.SaveAs( memorystream ); + initialDoc._isCopyingDocument = false; memorystream.Seek( 0, SeekOrigin.Begin ); return DocX.Load( memorystream );