From cc383ad40a545cc0244f0ca840799dbbf73fd236 Mon Sep 17 00:00:00 2001 From: Simon Boucher Date: Fri, 5 Jul 2024 15:32:20 -0400 Subject: [PATCH] V3.0.1 Released --- Xceed.Document.NET/AssemblyVersionInfo.cs | 2 +- .../AssemblyVersionInfoCommon.cs | 2 +- Xceed.Document.NET/Properties/AssemblyInfo.cs | 4 +- Xceed.Document.NET/Src/Bookmark.cs | 2 +- Xceed.Document.NET/Src/BookmarkCollection.cs | 2 +- Xceed.Document.NET/Src/Border.cs | 5 +- Xceed.Document.NET/Src/Borders.cs | 2 +- Xceed.Document.NET/Src/Charts/Axis.cs | 14 +- Xceed.Document.NET/Src/Charts/BarChart.cs | 23 +- Xceed.Document.NET/Src/Charts/CategoryAxis.cs | 5 +- Xceed.Document.NET/Src/Charts/Chart.cs | 82 +- Xceed.Document.NET/Src/Charts/LineChart.cs | 13 +- Xceed.Document.NET/Src/Charts/PieChart.cs | 6 +- Xceed.Document.NET/Src/Charts/Series.cs | 9 +- Xceed.Document.NET/Src/Charts/ValueAxis.cs | 5 +- .../Src/Charts/XElementHelpers.cs | 29 +- Xceed.Document.NET/Src/Container.cs | 116 +- Xceed.Document.NET/Src/CustomProperty.cs | 33 +- Xceed.Document.NET/Src/DocProperty.cs | 8 +- Xceed.Document.NET/Src/Document.cs | 907 +------- Xceed.Document.NET/Src/Endnote.cs | 2 +- Xceed.Document.NET/Src/ExtensionsHeadings.cs | 2 +- Xceed.Document.NET/Src/Font.cs | 2 +- Xceed.Document.NET/Src/Footer.cs | 2 +- Xceed.Document.NET/Src/Footers.cs | 2 +- Xceed.Document.NET/Src/Footnote.cs | 2 +- Xceed.Document.NET/Src/FormattedText.cs | 2 +- Xceed.Document.NET/Src/Formatting.cs | 77 +- Xceed.Document.NET/Src/Header.cs | 2 +- Xceed.Document.NET/Src/Headers.cs | 2 +- Xceed.Document.NET/Src/HelperFunctions.cs | 104 +- Xceed.Document.NET/Src/Hyperlink.cs | 80 +- Xceed.Document.NET/Src/IParagraphContainer.cs | 2 +- Xceed.Document.NET/Src/Image.cs | 48 +- Xceed.Document.NET/Src/List.cs | 91 +- Xceed.Document.NET/Src/Note.cs | 2 +- Xceed.Document.NET/Src/NoteProperties.cs | 2 +- Xceed.Document.NET/Src/PackagePartStream.cs | 2 +- Xceed.Document.NET/Src/PageLayout.cs | 2 +- Xceed.Document.NET/Src/PageNumberType.cs | 2 +- Xceed.Document.NET/Src/Paragraph.cs | 1836 +---------------- Xceed.Document.NET/Src/Picture.cs | 75 +- Xceed.Document.NET/Src/ReplaceTextOptions.cs | 2 +- Xceed.Document.NET/Src/Section.cs | 30 +- Xceed.Document.NET/Src/ShadingPattern.cs | 2 +- Xceed.Document.NET/Src/Table.cs | 928 +-------- Xceed.Document.NET/Src/TableOfContents.cs | 5 +- Xceed.Document.NET/Src/_BaseClasses.cs | 28 +- Xceed.Document.NET/Src/_Enumerations.cs | 87 +- Xceed.Document.NET/Src/_Extensions.cs | 18 +- .../Utils/Exceptions/ThrowException.cs | 2 +- .../Utils/Licensing/LicenseOrigin.cs | 2 +- Xceed.Document.NET/Xceed.Document.NET.csproj | 2 - Xceed.Document.NET/Xceed.Document.NET5.csproj | 4 +- Xceed.Words.NET.Examples/Program.cs | 18 +- .../Properties/AssemblyInfo.cs | 20 +- .../Samples/Bookmark/BookmarkSample.cs | 24 +- .../Bookmark/Output/InsertBookmarks.docx | Bin 5599 -> 5599 bytes .../Samples/Chart/ChartData.cs | 18 +- .../Samples/Chart/ChartSample.cs | 31 +- .../Samples/Chart/Output/3DChart.docx | Bin 6725 -> 6725 bytes .../Samples/Chart/Output/BarChart.docx | Bin 6850 -> 6849 bytes .../Samples/Chart/Output/LineChart.docx | Bin 6829 -> 6829 bytes .../Samples/Chart/Output/PieChart.docx | Bin 6406 -> 6407 bytes .../Samples/CheckBox/CheckBoxSample.cs | 24 +- .../DigitalSignatureSample.cs | 33 +- .../Samples/Document/DocumentSample.cs | 53 +- .../Document/Output/AddCustomProperties.docx | Bin 6283 -> 6285 bytes .../Document/Output/AppendDocument.docx | Bin 18381 -> 18381 bytes .../Document/Output/ApplyTemplate.docx | Bin 21413 -> 21413 bytes .../Output/ReplacedTextWithObjects.docx | Bin 30613 -> 30616 bytes .../Document/Resources/Template-2.docx | Bin 0 -> 12564 bytes .../Samples/Equation/EquationSample.cs | 21 +- .../Equation/Output/EquationSample.docx | Bin 5665 -> 5663 bytes .../FootnoteEndnote/FootnoteEndnoteSample.cs | 27 +- .../Output/AddCustomFootnotes.docx | Bin 6509 -> 6510 bytes .../FootnoteEndnote/Output/AddEndnotes.docx | Bin 10854 -> 10856 bytes .../FootnoteEndnote/Output/AddFootnotes.docx | Bin 6760 -> 6761 bytes .../HeaderFooter/HeaderFooterSample.cs | 21 +- .../HeaderFooter/Output/HeadersFooters.docx | Bin 9242 -> 9239 bytes .../Samples/Hyperlink/HyperlinkSample.cs | 21 +- .../Samples/Hyperlink/Output/Hyperlinks.docx | Bin 5869 -> 5872 bytes .../Samples/Hyphenation/HyphenationSample.cs | 24 +- .../Samples/Image/ImageSample.cs | 27 +- .../Samples/Image/Output/AddPicture.docx | Bin 22899 -> 22893 bytes .../Samples/Image/Output/CopyPicture.docx | Bin 14338 -> 14339 bytes .../Samples/Line/LineSample.cs | 21 +- .../Line/Output/InsertHorizontalLine.docx | Bin 5660 -> 5659 bytes .../Samples/List/ListSample.cs | 36 +- .../Samples/List/Output/AddList.docx | Bin 6361 -> 6361 bytes .../Samples/Margin/MarginSample.cs | 27 +- .../Samples/Margin/Output/Indentation.docx | Bin 5568 -> 5566 bytes .../Samples/Margin/Output/Margins.docx | Bin 5493 -> 5494 bytes .../Samples/Margin/Output/SetDirection.docx | Bin 5499 -> 5499 bytes .../Miscellaneous/MiscellaneousSample.cs | 28 +- .../Miscellaneous/Output/CompanyReport.docx | Bin 61541 -> 61537 bytes .../Miscellaneous/Output/CreateInvoice.docx | Bin 66676 -> 66678 bytes .../Miscellaneous/Output/CreateRecipe.docx | Bin 96731 -> 96734 bytes .../Output/AddObjectsFromOtherDocument.docx | Bin 20994 -> 20996 bytes .../ForceMultiParagraphsOnSinglePage.docx | Bin 5722 -> 5720 bytes .../Output/ForceParagraphOnSinglePage.docx | Bin 5732 -> 5732 bytes .../Samples/Paragraph/Output/Heading.docx | Bin 5534 -> 5537 bytes .../Output/SimpleFormattedParagraphs.docx | Bin 6080 -> 6081 bytes .../Samples/Paragraph/Output/TextActions.docx | Bin 5799 -> 5800 bytes .../Samples/Paragraph/ParagraphSample.cs | 39 +- .../Samples/Parallel/Output/OutputDoc1.docx | Bin 14849 -> 14850 bytes .../Samples/Parallel/Output/OutputDoc2.docx | Bin 14798 -> 14797 bytes .../Samples/Parallel/Output/OutputDoc3.docx | Bin 14783 -> 14783 bytes .../Samples/Parallel/ParallelSample.cs | 23 +- .../Samples/Pdf/PdfSample.cs | 24 +- .../Output/AddPasswordProtection.docx | Bin 5724 -> 5723 bytes .../Protection/Output/AddProtection.docx | Bin 5583 -> 5585 bytes .../Output/UpdatedPasswordProtected.docx | Bin 5744 -> 5741 bytes .../Samples/Protection/ProtectionSample.cs | 27 +- .../Section/Output/InsertSections.docx | Bin 11033 -> 11030 bytes .../Section/Output/SetPageOrientations.docx | Bin 5533 -> 5533 bytes .../Samples/Section/SectionSample.cs | 21 +- .../Samples/Shape/ShapeSample.cs | 30 +- .../Samples/Table/Output/ColumnsWidth.docx | Bin 5946 -> 5944 bytes .../Table/Output/CreateTableFromTemplate.docx | Bin 13721 -> 13718 bytes .../Table/Output/InsertRowAndImageTable.docx | Bin 8576 -> 8572 bytes .../Samples/Table/Output/MergeCells.docx | Bin 5802 -> 5804 bytes .../Samples/Table/Output/ShadingPattern.docx | Bin 5926 -> 5927 bytes .../Table/Output/TextDirectionTable.docx | Bin 6177 -> 6178 bytes .../Samples/Table/TableSample.cs | 44 +- .../Output/InsertTableOfContent.docx | Bin 6549 -> 6548 bytes .../InsertTableOfContentWithReference.docx | Bin 6530 -> 6530 bytes .../TableOfContent/TableOfContentSample.cs | 27 +- .../Xceed.Words.NET.Examples.csproj | 1 + .../Xceed.Words.NET5.Examples.csproj | 15 +- Xceed.Words.NET/DocX.cs | 203 +- Xceed.Words.NET/Message.cs | 783 +++++++ Xceed.Words.NET/Properties/AssemblyInfo.cs | 4 +- Xceed.Words.NET/Xceed.Words.NET.csproj | 3 +- Xceed.Words.NET/Xceed.Words.NET5.csproj | 7 +- 135 files changed, 1524 insertions(+), 4921 deletions(-) create mode 100644 Xceed.Words.NET.Examples/Samples/Document/Resources/Template-2.docx create mode 100644 Xceed.Words.NET/Message.cs diff --git a/Xceed.Document.NET/AssemblyVersionInfo.cs b/Xceed.Document.NET/AssemblyVersionInfo.cs index 10d8765..4ab3b74 100644 --- a/Xceed.Document.NET/AssemblyVersionInfo.cs +++ b/Xceed.Document.NET/AssemblyVersionInfo.cs @@ -2,7 +2,7 @@ DocX – DocX is the community edition of Xceed Words for .NET - Copyright (C) 2009-2023 Xceed Software Inc. + Copyright (C) 2009-2024 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 diff --git a/Xceed.Document.NET/AssemblyVersionInfoCommon.cs b/Xceed.Document.NET/AssemblyVersionInfoCommon.cs index 3e2d694..9d74604 100644 --- a/Xceed.Document.NET/AssemblyVersionInfoCommon.cs +++ b/Xceed.Document.NET/AssemblyVersionInfoCommon.cs @@ -2,7 +2,7 @@ DocX – DocX is the community edition of Xceed Words for .NET - Copyright (C) 2009-2023 Xceed Software Inc. + Copyright (C) 2009-2024 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 diff --git a/Xceed.Document.NET/Properties/AssemblyInfo.cs b/Xceed.Document.NET/Properties/AssemblyInfo.cs index 9f8e9ea..c70e37c 100644 --- a/Xceed.Document.NET/Properties/AssemblyInfo.cs +++ b/Xceed.Document.NET/Properties/AssemblyInfo.cs @@ -2,7 +2,7 @@ DocX – DocX is the community edition of Xceed Words for .NET - Copyright (C) 2009-2023 Xceed Software Inc. + Copyright (C) 2009-2024 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 @@ -26,7 +26,7 @@ COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at [assembly: AssemblyCompany( "Xceed Software Inc." )] [assembly: AssemblyProduct( "Xceed Document for .NET" )] -[assembly: AssemblyCopyright( "Copyright (C) Xceed Software Inc. 2009-2023" )] +[assembly: AssemblyCopyright( "Copyright (C) Xceed Software Inc. 2009-2024" )] [assembly: AssemblyCulture("")] diff --git a/Xceed.Document.NET/Src/Bookmark.cs b/Xceed.Document.NET/Src/Bookmark.cs index 59c2e51..d5d8bf8 100644 --- a/Xceed.Document.NET/Src/Bookmark.cs +++ b/Xceed.Document.NET/Src/Bookmark.cs @@ -2,7 +2,7 @@ DocX – DocX is the community edition of Xceed Words for .NET - Copyright (C) 2009-2023 Xceed Software Inc. + Copyright (C) 2009-2024 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 diff --git a/Xceed.Document.NET/Src/BookmarkCollection.cs b/Xceed.Document.NET/Src/BookmarkCollection.cs index 4820bb7..5ae1a19 100644 --- a/Xceed.Document.NET/Src/BookmarkCollection.cs +++ b/Xceed.Document.NET/Src/BookmarkCollection.cs @@ -2,7 +2,7 @@ DocX – DocX is the community edition of Xceed Words for .NET - Copyright (C) 2009-2023 Xceed Software Inc. + Copyright (C) 2009-2024 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 diff --git a/Xceed.Document.NET/Src/Border.cs b/Xceed.Document.NET/Src/Border.cs index 99ee8d4..7f6b427 100644 --- a/Xceed.Document.NET/Src/Border.cs +++ b/Xceed.Document.NET/Src/Border.cs @@ -2,7 +2,7 @@ DocX – DocX is the community edition of Xceed Words for .NET - Copyright (C) 2009-2023 Xceed Software Inc. + Copyright (C) 2009-2024 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 @@ -18,9 +18,6 @@ COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at namespace Xceed.Document.NET { - /// - /// Represents a border of a table or table cell - /// public class Border { diff --git a/Xceed.Document.NET/Src/Borders.cs b/Xceed.Document.NET/Src/Borders.cs index cd1f37c..3838750 100644 --- a/Xceed.Document.NET/Src/Borders.cs +++ b/Xceed.Document.NET/Src/Borders.cs @@ -2,7 +2,7 @@ DocX – DocX is the community edition of Xceed Words for .NET - Copyright (C) 2009-2023 Xceed Software Inc. + Copyright (C) 2009-2024 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 diff --git a/Xceed.Document.NET/Src/Charts/Axis.cs b/Xceed.Document.NET/Src/Charts/Axis.cs index 01e98d1..a763020 100644 --- a/Xceed.Document.NET/Src/Charts/Axis.cs +++ b/Xceed.Document.NET/Src/Charts/Axis.cs @@ -2,7 +2,7 @@ DocX – DocX is the community edition of Xceed Words for .NET - Copyright (C) 2009-2023 Xceed Software Inc. + Copyright (C) 2009-2024 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 @@ -25,9 +25,6 @@ COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at namespace Xceed.Document.NET { - /// - /// Axis base class - /// public abstract class Axis { #region Private properties @@ -37,9 +34,6 @@ public abstract class Axis #region Public Properties - /// - /// ID of this Axis - /// public string Id { get @@ -48,9 +42,6 @@ public string Id } } - /// - /// Return true if this axis is visible - /// public bool IsVisible { get @@ -119,9 +110,6 @@ public bool IsVisible #region Internal Properties - /// - /// Axis xml element - /// internal XElement Xml { get; set; diff --git a/Xceed.Document.NET/Src/Charts/BarChart.cs b/Xceed.Document.NET/Src/Charts/BarChart.cs index 3d87a2b..7ae7a98 100644 --- a/Xceed.Document.NET/Src/Charts/BarChart.cs +++ b/Xceed.Document.NET/Src/Charts/BarChart.cs @@ -2,7 +2,7 @@ DocX – DocX is the community edition of Xceed Words for .NET - Copyright (C) 2009-2023 Xceed Software Inc. + Copyright (C) 2009-2024 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 @@ -22,17 +22,10 @@ COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at namespace Xceed.Document.NET { - /// - /// This element contains the 2-D bar or column series on this chart. - /// 21.2.2.16 barChart (Bar Charts) - /// public class BarChart : Chart { #region Public Properties - /// - /// Specifies the possible directions for a bar chart. - /// public BarDirection BarDirection { get @@ -51,9 +44,6 @@ public BarDirection BarDirection } } - /// - /// Specifies the possible groupings for a bar chart. - /// public BarGrouping BarGrouping { get @@ -79,9 +69,6 @@ public BarGrouping BarGrouping } } - /// - /// Specifies that its contents contain a percentage between 0% and 500%. - /// public Int32 GapWidth { get @@ -138,10 +125,6 @@ protected override XElement GetChartTypeXElement() #endregion } - /// - /// Specifies the possible directions for a bar chart. - /// 21.2.3.3 ST_BarDir (Bar Direction) - /// public enum BarDirection { [XmlName( "col" )] @@ -150,10 +133,6 @@ public enum BarDirection Bar } - /// - /// Specifies the possible groupings for a bar chart. - /// 21.2.3.4 ST_BarGrouping (Bar Grouping) - /// public enum BarGrouping { [XmlName( "clustered" )] diff --git a/Xceed.Document.NET/Src/Charts/CategoryAxis.cs b/Xceed.Document.NET/Src/Charts/CategoryAxis.cs index 437a563..f9cf23c 100644 --- a/Xceed.Document.NET/Src/Charts/CategoryAxis.cs +++ b/Xceed.Document.NET/Src/Charts/CategoryAxis.cs @@ -2,7 +2,7 @@ DocX – DocX is the community edition of Xceed Words for .NET - Copyright (C) 2009-2023 Xceed Software Inc. + Copyright (C) 2009-2024 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 @@ -22,9 +22,6 @@ COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at namespace Xceed.Document.NET { - /// - /// Represents Category Axis - /// public class CategoryAxis : Axis { internal CategoryAxis(XElement xml) diff --git a/Xceed.Document.NET/Src/Charts/Chart.cs b/Xceed.Document.NET/Src/Charts/Chart.cs index cafb5ec..8a151df 100644 --- a/Xceed.Document.NET/Src/Charts/Chart.cs +++ b/Xceed.Document.NET/Src/Charts/Chart.cs @@ -2,7 +2,7 @@ DocX – DocX is the community edition of Xceed Words for .NET - Copyright (C) 2009-2023 Xceed Software Inc. + Copyright (C) 2009-2024 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 @@ -26,9 +26,6 @@ COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at namespace Xceed.Document.NET { - /// - /// Represents every Chart in this document. - /// public abstract class Chart { #region Private Members @@ -43,26 +40,17 @@ public abstract class Chart #region Public Properties - /// - /// The xml representation of this chart - /// 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; } - /// - /// Chart's series - /// public List Series { get @@ -83,9 +71,6 @@ public List Series } } - /// - /// Return maximum count of series - /// public virtual Int16 MaxSeriesCount { get @@ -94,18 +79,11 @@ public virtual Int16 MaxSeriesCount } } - /// - /// Chart's legend. - /// If legend doesn't exist property is null. - /// public ChartLegend Legend { get; internal set; } - /// - /// Represents the category axis - /// public CategoryAxis CategoryAxis { get @@ -116,9 +94,6 @@ public CategoryAxis CategoryAxis } } - /// - /// Represents the values axis - /// public ValueAxis ValueAxis { get @@ -129,9 +104,6 @@ public ValueAxis ValueAxis } } - /// - /// Represents existing the axis - /// public virtual Boolean IsAxisExist { get @@ -140,9 +112,6 @@ public virtual Boolean IsAxisExist } } - /// - /// Get or set 3D view for this chart - /// public Boolean View3D { get @@ -175,9 +144,6 @@ public Boolean View3D } } - /// - /// Specifies how blank cells shall be plotted on a chart - /// public DisplayBlanksAs DisplayBlanksAs { get @@ -246,9 +212,6 @@ internal PackageRelationship RelationPackage #region Constructors - /// - /// Create an Chart for this document - /// public Chart() { @@ -350,9 +313,6 @@ internal Chart( Paragraph parentParagraph, PackageRelationship packageRelationsh #region Public Methods - /// - /// Add a new series to this chart - /// public virtual void AddSeries( Series series ) { Series.Add(series); @@ -374,17 +334,11 @@ public virtual void AddSeries( Series series ) } } - /// - /// Add standart legend to the chart. - /// public void AddLegend() { AddLegend( ChartLegendPosition.Right, false ); } - /// - /// Add a legend with parameters to the chart. - /// public void AddLegend( ChartLegendPosition position, Boolean overlay ) { if( this.Legend != null ) @@ -399,9 +353,6 @@ public void AddLegend( ChartLegendPosition position, Boolean overlay ) } } - /// - /// Remove the legend from the chart. - /// public void RemoveLegend() { if( this.Legend != null ) @@ -454,14 +405,8 @@ public void Remove() #region Protected Methods - /// - /// An abstract method which creates the current external chart xml - /// protected abstract XElement CreateExternalChartXml(); - /// - /// An abstract method to get the external chart xml - /// protected abstract XElement GetChartTypeXElement(); #endregion @@ -519,17 +464,10 @@ internal void SetInternalChartSettings( string relId, float chartWidth, float ch } - /// - /// Represents a chart legend - /// More: http://msdn.microsoft.com/ru-ru/library/cc845123.aspx - /// public class ChartLegend { #region Public Properties - /// - /// Specifies that other chart elements shall be allowed to overlap this chart element - /// public Boolean Overlay { get @@ -542,9 +480,6 @@ public Boolean Overlay } } - /// - /// Specifies the possible positions for a legend - /// public ChartLegendPosition Position { get @@ -563,9 +498,6 @@ public ChartLegendPosition Position #region Internal Properties - /// - /// Legend xml element - /// internal XElement Xml { get; private set; @@ -594,10 +526,6 @@ internal ChartLegend( ChartLegendPosition position, Boolean overlay ) #region Private Methods - /// - /// ECMA-376, page 3840 - /// 21.2.2.132 overlay (Overlay) - /// private String GetOverlayValue( Boolean overlay ) { if( overlay ) @@ -609,10 +537,6 @@ private String GetOverlayValue( Boolean overlay ) #endregion } - /// - /// Specifies the possible positions for a legend. - /// 21.2.3.24 ST_LegendPos (Legend Position) - /// public enum ChartLegendPosition { [XmlName( "t" )] @@ -627,10 +551,6 @@ public enum ChartLegendPosition TopRight } - /// - /// Specifies the possible ways to display blanks. - /// 21.2.3.10 ST_DispBlanksAs (Display Blanks As) - /// public enum DisplayBlanksAs { [XmlName( "gap" )] diff --git a/Xceed.Document.NET/Src/Charts/LineChart.cs b/Xceed.Document.NET/Src/Charts/LineChart.cs index b836e17..912cb80 100644 --- a/Xceed.Document.NET/Src/Charts/LineChart.cs +++ b/Xceed.Document.NET/Src/Charts/LineChart.cs @@ -2,7 +2,7 @@ DocX – DocX is the community edition of Xceed Words for .NET - Copyright (C) 2009-2023 Xceed Software Inc. + Copyright (C) 2009-2024 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 @@ -23,18 +23,11 @@ COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at namespace Xceed.Document.NET { - /// - /// This element contains the 2-D line chart series. - /// 21.2.2.97 lineChart (Line Charts) - /// public class LineChart : Chart { #region Public Properties - /// - /// Specifies the kind of grouping for a column, line, or area chart. - /// public Grouping Grouping { get @@ -107,10 +100,6 @@ protected override XElement GetChartTypeXElement() } - /// - /// Specifies the kind of grouping for a column, line, or area chart. - /// 21.2.2.76 grouping (Grouping) - /// public enum Grouping { [XmlName( "percentStacked" )] diff --git a/Xceed.Document.NET/Src/Charts/PieChart.cs b/Xceed.Document.NET/Src/Charts/PieChart.cs index 77c1e1a..e5e42ee 100644 --- a/Xceed.Document.NET/Src/Charts/PieChart.cs +++ b/Xceed.Document.NET/Src/Charts/PieChart.cs @@ -2,7 +2,7 @@ DocX – DocX is the community edition of Xceed Words for .NET - Copyright (C) 2009-2023 Xceed Software Inc. + Copyright (C) 2009-2024 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 @@ -21,10 +21,6 @@ COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at namespace Xceed.Document.NET { - /// - /// This element contains the 2-D pie series for this chart. - /// 21.2.2.141 pieChart (Pie Charts) - /// public class PieChart : Chart { #region Overrides Properties diff --git a/Xceed.Document.NET/Src/Charts/Series.cs b/Xceed.Document.NET/Src/Charts/Series.cs index cd7cec4..a81dbe5 100644 --- a/Xceed.Document.NET/Src/Charts/Series.cs +++ b/Xceed.Document.NET/Src/Charts/Series.cs @@ -2,7 +2,7 @@ DocX – DocX is the community edition of Xceed Words for .NET - Copyright (C) 2009-2023 Xceed Software Inc. + Copyright (C) 2009-2024 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 @@ -27,10 +27,6 @@ namespace Xceed.Document.NET { public class Series { - /// - /// Represents a chart series - /// - /// #region Private Members @@ -135,9 +131,6 @@ public Color Color #region Internal Properties - /// - /// Series xml element - /// internal XElement Xml { get; private set; diff --git a/Xceed.Document.NET/Src/Charts/ValueAxis.cs b/Xceed.Document.NET/Src/Charts/ValueAxis.cs index 43d7ff1..dbbbaf8 100644 --- a/Xceed.Document.NET/Src/Charts/ValueAxis.cs +++ b/Xceed.Document.NET/Src/Charts/ValueAxis.cs @@ -2,7 +2,7 @@ DocX – DocX is the community edition of Xceed Words for .NET - Copyright (C) 2009-2023 Xceed Software Inc. + Copyright (C) 2009-2024 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 @@ -21,9 +21,6 @@ namespace Xceed.Document.NET { public class ValueAxis : Axis { - /// - /// Represents Values Axes - /// internal ValueAxis(XElement xml) : base(xml) { diff --git a/Xceed.Document.NET/Src/Charts/XElementHelpers.cs b/Xceed.Document.NET/Src/Charts/XElementHelpers.cs index 72e6f7e..ee24c46 100644 --- a/Xceed.Document.NET/Src/Charts/XElementHelpers.cs +++ b/Xceed.Document.NET/Src/Charts/XElementHelpers.cs @@ -2,7 +2,7 @@ DocX – DocX is the community edition of Xceed Words for .NET - Copyright (C) 2009-2023 Xceed Software Inc. + Copyright (C) 2009-2024 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 @@ -23,10 +23,6 @@ namespace Xceed.Document.NET { internal static class XElementHelpers { - /// - /// Get value from XElement and convert it to enum - /// - /// Enum type internal static T GetValueToEnum( XElement element ) { if( element == null ) @@ -45,10 +41,6 @@ internal static T GetValueToEnum( XElement element ) throw new ArgumentException( "Invalid element value!" ); } - /// - /// Convert value to xml string and set it into XElement - /// - /// Enum type internal static void SetValueFromEnum( XElement element, T value ) { if( element == null ) @@ -56,10 +48,6 @@ internal static void SetValueFromEnum( XElement element, T value ) element.Attribute( XName.Get( "val" ) ).Value = GetXmlNameFromEnum( value ); } - /// - /// Return xml string for this value - /// - /// Enum type internal static String GetXmlNameFromEnum( T value ) { if( value == null ) @@ -73,24 +61,9 @@ internal static String GetXmlNameFromEnum( T value ) } } - /// - /// This attribute applied to enum's fields for definition their's real xml names in Document file. - /// - /// - /// public enum MyEnum - /// { - /// [XmlName("one")] // This means, that xml element has 'val="one"' - /// ValueOne, - /// [XmlName("two")] // This means, that xml element has 'val="two"' - /// ValueTwo - /// } - /// [AttributeUsage( AttributeTargets.Field, Inherited = false, AllowMultiple = false )] internal sealed class XmlNameAttribute : Attribute { - /// - /// Real xml name - /// public String XmlName { get; private set; diff --git a/Xceed.Document.NET/Src/Container.cs b/Xceed.Document.NET/Src/Container.cs index 082b0f7..199e65d 100644 --- a/Xceed.Document.NET/Src/Container.cs +++ b/Xceed.Document.NET/Src/Container.cs @@ -2,7 +2,7 @@ DocX – DocX is the community edition of Xceed Words for .NET - Copyright (C) 2009-2023 Xceed Software Inc. + Copyright (C) 2009-2024 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 @@ -29,53 +29,6 @@ public abstract class Container : DocumentElement { #region Public Properties - /// - /// Returns a list of all Paragraphs inside this container. - /// - /// - /// - /// Load a document. - /// using (var document = DocX.Load(@"Test.docx")) - /// { - /// // All Paragraphs in this document. - /// ]]> documentParagraphs = document.Paragraphs; - /// - /// // Make sure this document contains at least one Table. - /// if (document.Tables.Count() > 0) - /// { - /// // Get the first Table in this document. - /// Table t = document.Tables[0]; - /// - /// // All Paragraphs in this Table. - /// ]]> tableParagraphs = t.Paragraphs; - /// - /// // Make sure this Table contains at least one Row. - /// if (t.Rows.Count() > 0) - /// { - /// // Get the first Row in this document. - /// Row r = t.Rows[0]; - /// - /// // All Paragraphs in this Row. - /// ]]> rowParagraphs = r.Paragraphs; - /// - /// // Make sure this Row contains at least one Cell. - /// if (r.Cells.Count() > 0) - /// { - /// // Get the first Cell in this document. - /// Cell c = r.Cells[0]; - /// - /// // All Paragraphs in this Cell. - /// ]]> cellParagraphs = c.Paragraphs; - /// } - /// } - /// } - /// - /// // Save all changes to this document. - /// document.Save(); - /// }// Release this document from memory. - /// - /// - /// public virtual ReadOnlyCollection Paragraphs { get @@ -279,40 +232,6 @@ public IList
GetSections() return sections; } - /// - /// Sets the Direction of content. - /// - /// Direction either LeftToRight or RightToLeft - /// - /// Set the Direction of content in a Paragraph to RightToLeft. - /// - /// // Load a document. - /// using (Document document = DocX.Load(@"Test.docx")) - /// { - /// // Get the first Paragraph from this document. - /// Paragraph p = document.InsertParagraph(); - /// - /// // Set the Direction of this Paragraph. - /// p.Direction = Direction.RightToLeft; - /// - /// // Make sure the document contains at lest one Table. - /// if (document.Tables.Count() > 0) - /// { - /// // Get the first Table from this document. - /// Table t = document.Tables[0]; - /// - /// /* - /// * Set the direction of the entire Table. - /// * Note: The same function is available at the Row and Cell level. - /// */ - /// t.SetDirection(Direction.RightToLeft); - /// } - /// - /// // Save all changes to this document. - /// document.Save(); - /// }// Release this document from memory. - /// - /// public virtual void SetDirection( Direction direction ) { foreach( Paragraph p in Paragraphs ) @@ -343,13 +262,6 @@ public virtual List FindAll( string str, RegexOptions options ) return list; } - /// - /// Find all unique instances of the given Regex Pattern, - /// returning the list of the unique strings found - /// - /// - /// - /// public virtual List FindUniqueByPattern( string pattern, RegexOptions options ) { var rawResults = new List(); @@ -427,17 +339,6 @@ public virtual void ReplaceText( string searchValue, } - /// - /// - /// - /// The value to find. - /// A Func who accepts the matching regex search group value and passes it to this to return the replacement string. - /// Enable or disable the track changes. - /// The Regex options. - /// - /// - /// - /// Remove empty paragraph [Obsolete( "ReplaceText() with many parameters is obsolete. Use ReplaceText() with a FunctionReplaceTextOptions parameter instead." )] public virtual void ReplaceText( string searchValue, Func regexMatchHandler, @@ -566,7 +467,6 @@ public virtual bool ReplaceTextWithObject( ObjectReplaceTextOptions replaceTextO - /// Inserts the provided text at a bookmark location in this Container, using the specified formatting. public virtual void InsertAtBookmark( string toInsert, string bookmarkName, Formatting formatting = null ) { if( string.IsNullOrWhiteSpace( bookmarkName ) ) @@ -578,7 +478,6 @@ public virtual void InsertAtBookmark( string toInsert, string bookmarkName, Form } } - /// Replaces the text of the Bookmark in this Container. Equivalent to document.Bookmarks[ "abc" ].SetText("new ABC"); public virtual void ReplaceAtBookmark( string text, string bookmarkName, Formatting formatting = null ) { if( string.IsNullOrWhiteSpace( bookmarkName ) ) @@ -873,11 +772,6 @@ public virtual Paragraph InsertParagraph( string text, bool trackChanges, Format - /// - /// Removes paragraph at specified position - /// - /// Index of paragraph to remove - /// True if paragraph removed public bool RemoveParagraphAt( int index ) { var paragraphs = Xml.Descendants( Document.w + "p" ).ToList(); @@ -898,11 +792,6 @@ public bool RemoveParagraphAt( int index ) return false; } - /// - /// Removes a paragraph - /// - /// The paragraph to remove - /// True if paragraph removed public bool RemoveParagraph( Paragraph paragraph ) { var paragraphs = Xml.Descendants( Document.w + "p" ); @@ -1442,6 +1331,8 @@ private bool ReplaceTextCore( ReplaceTextOptionsBase replaceTextOptions ) + + foreach( var p in this.Paragraphs.ToList() ) { if( ( replaceTextOptions.StartIndex >= 0 ) && ( p.EndIndex < replaceTextOptions.StartIndex ) ) @@ -1476,7 +1367,6 @@ private bool ReplaceTextCore( ReplaceTextOptionsBase replaceTextOptions ) this.PreventUpdateParagraphIndexes = false; this.NeedRefreshParagraphIndexes = true; - return replaceSuccess; } diff --git a/Xceed.Document.NET/Src/CustomProperty.cs b/Xceed.Document.NET/Src/CustomProperty.cs index ae10c52..57354bb 100644 --- a/Xceed.Document.NET/Src/CustomProperty.cs +++ b/Xceed.Document.NET/Src/CustomProperty.cs @@ -2,7 +2,7 @@ DocX – DocX is the community edition of Xceed Words for .NET - Copyright (C) 2009-2023 Xceed Software Inc. + Copyright (C) 2009-2024 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 @@ -22,18 +22,12 @@ public class CustomProperty { #region Public Properties - /// - /// The name of this CustomProperty. - /// public string Name { get; private set; } - /// - /// The value of this CustomProperty. - /// public object Value { get; @@ -60,51 +54,26 @@ internal Formatting Formatting #region Constructors - /// - /// Create a new CustomProperty to hold a string. - /// - /// The name of this CustomProperty. - /// The value of this CustomProperty. public CustomProperty( string name, string value, Formatting formatting = null ) : this( name, "lpwstr", value, formatting ) { } - /// - /// Create a new CustomProperty to hold an int. - /// - /// The name of this CustomProperty. - /// The value of this CustomProperty. public CustomProperty( string name, int value, Formatting formatting = null ) : this( name, "i4", value, formatting ) { } - /// - /// Create a new CustomProperty to hold a double. - /// - /// The name of this CustomProperty. - /// The value of this CustomProperty. public CustomProperty( string name, double value, Formatting formatting = null ) : this( name, "r8", value, formatting ) { } - /// - /// Create a new CustomProperty to hold a DateTime. - /// - /// The name of this CustomProperty. - /// The value of this CustomProperty. public CustomProperty( string name, DateTime value, Formatting formatting = null ) : this( name, "filetime", value.ToUniversalTime(), formatting ) { } - /// - /// Create a new CustomProperty to hold a bool. - /// - /// The name of this CustomProperty. - /// The value of this CustomProperty. public CustomProperty( string name, bool value, Formatting formatting = null ) : this( name, "bool", value, formatting ) { diff --git a/Xceed.Document.NET/Src/DocProperty.cs b/Xceed.Document.NET/Src/DocProperty.cs index e07f89b..087ec23 100644 --- a/Xceed.Document.NET/Src/DocProperty.cs +++ b/Xceed.Document.NET/Src/DocProperty.cs @@ -2,7 +2,7 @@ DocX – DocX is the community edition of Xceed Words for .NET - Copyright (C) 2009-2023 Xceed Software Inc. + Copyright (C) 2009-2024 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 @@ -19,9 +19,6 @@ COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at namespace Xceed.Document.NET { - /// - /// Represents a field of type document property. This field displays the value stored in a custom property. - /// public class DocProperty : DocumentElement { @@ -33,9 +30,6 @@ public class DocProperty : DocumentElement #region Public Properties - /// - /// The custom property to display. - /// public string Name { get; diff --git a/Xceed.Document.NET/Src/Document.cs b/Xceed.Document.NET/Src/Document.cs index eac8755..5d45662 100644 --- a/Xceed.Document.NET/Src/Document.cs +++ b/Xceed.Document.NET/Src/Document.cs @@ -2,7 +2,7 @@ DocX – DocX is the community edition of Xceed Words for .NET - Copyright (C) 2009-2023 Xceed Software Inc. + Copyright (C) 2009-2024 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 @@ -44,9 +44,6 @@ public enum MergingMode Both } - /// - /// Represents a document. - /// public class Document : Container, IDisposable { #region Namespaces @@ -460,27 +457,6 @@ public Borders PageBorders // } //} - /// - /// Returns true if any editing restrictions are imposed on this document. - /// - /// - /// - /// // Create a new document. - /// using (var document = DocX.Create(@"Test.docx")) - /// { - /// if(document.IsProtected) - /// Console.WriteLine("Protected"); - /// else - /// Console.WriteLine("Not protected"); - /// - /// // Save the document. - /// document.Save(); - /// } - /// - /// - /// - /// - /// public bool IsProtected { get @@ -523,33 +499,6 @@ public PageLayout PageLayout } } - /// - /// Returns a collection of Headers in this Document's first section. - /// A document's section typically contains three Headers. - /// A default one (odd), one for the first page and one for even pages. - /// - /// - /// - /// // Create a document. - /// using (var document = DocX.Create(@"Test.docx")) - /// { - /// // Add header support to this document. - /// document.AddHeaders(); - /// - /// // Get a collection of all headers in this document's first section. - /// Headers headers = document.Headers; - /// - /// // The header used for the first page in this document's first section. - /// Header first = headers.First; - /// - /// // The header used for odd pages in this document's first section. - /// Header odd = headers.Odd; - /// - /// // The header used for even pages in this document's first section. - /// Header even = headers.Even; - /// } - /// - /// public Headers Headers { get @@ -562,33 +511,6 @@ public Headers Headers } } - /// - /// Returns a collection of Footers in this Document's first section. - /// A document's section typically contains three Footers. - /// A default one (odd), one for the first page and one for even pages. - /// - /// - /// - /// // Create a document. - /// using (var document = DocX.Create(@"Test.docx")) - /// { - /// // Add footer support to this document's first section. - /// document.AddFooters(); - /// - /// // Get a collection of all footers in this document's first section. - /// Footers footers = document.Footers; - /// - /// // The footer used for the first page in this document's first section. - /// Footer first = footers.First; - /// - /// // The footer used for odd pages in this document's first section. - /// Footer odd = footers.Odd; - /// - /// // The footer used for even pages in this document's first section. - /// Footer even = footers.Even; - /// } - /// - /// public Footers Footers { get @@ -601,41 +523,6 @@ public Footers Footers } } - /// - /// Should the Document use different Headers and Footers for odd and even pages? - /// - /// - /// - /// // Create a document. - /// using (var document = DocX.Create(@"Test.docx")) - /// { - /// // Add header support to this document. - /// document.AddHeaders(); - /// - /// // Get a collection of all headers in this document. - /// Headers headers = document.Headers; - /// - /// // The header used for odd pages of this document. - /// Header odd = headers.Odd; - /// - /// // The header used for even pages of this document. - /// Header even = headers.Even; - /// - /// // Force the document to use a different header for odd and even pages. - /// document.DifferentOddAndEvenPages = true; - /// - /// // Content can be added to the Headers in the same manor that it would be added to the main document. - /// Paragraph p1 = odd.InsertParagraph(); - /// p1.Append("This is the odd pages header."); - /// - /// Paragraph p2 = even.InsertParagraph(); - /// p2.Append("This is the even pages header."); - /// - /// // Save all changes to this document. - /// document.Save(); - /// }// Release this document from memory. - /// - /// public bool DifferentOddAndEvenPages { get @@ -665,30 +552,6 @@ public bool DifferentOddAndEvenPages } } - /// - /// Should the Document use an independent Header and Footer for the first page? - /// - /// - /// // Create a document. - /// using (var document = DocX.Create(@"Test.docx")) - /// { - /// // Add header support to this document. - /// document.AddHeaders(); - /// - /// // The header used for the first page of this document. - /// Header first = document.Headers.First; - /// - /// // Force the document to use a different header for first page. - /// document.DifferentFirstPage = true; - /// - /// // Content can be added to the Headers in the same manor that it would be added to the main document. - /// Paragraph p = first.InsertParagraph(); - /// p.Append("This is the first pages header."); - /// - /// // Save all changes to this document. - /// document.Save(); - /// }// Release this document from memory. - /// public bool DifferentFirstPage { get @@ -710,28 +573,6 @@ public bool DifferentFirstPage } } - /// - /// Returns a list of Images in this document. - /// - /// - /// Get the unique Id of every Image in this document. - /// - /// // Load a document. - /// var document = DocX.Load(@"C:\Example\Test.docx"); - /// - /// // Loop through each Image in this document. - /// foreach (Xceed.Document.NET.Image i in document.Images) - /// { - /// // Get the unique Id which identifies this Image. - /// string uniqueId = i.Id; - /// } - /// - /// - /// - /// - /// - /// - /// public List Images { get @@ -750,59 +591,6 @@ from i in imageRelationships } } - /// - /// Returns a list of custom properties in this document. - /// - /// - /// Method 1: Get the name, type and value of each CustomProperty in this document. - /// - /// // Load Example.docx - /// var document = DocX.Load(@"C:\Example\Test.docx"); - /// - /// /* - /// * No two custom properties can have the same name, - /// * so a Dictionary is the perfect data structure to store them in. - /// * Each custom property can be accessed using its name. - /// */ - /// foreach (string name in document.CustomProperties.Keys) - /// { - /// // Grab a custom property using its name. - /// CustomProperty cp = document.CustomProperties[name]; - /// - /// // Write this custom properties details to Console. - /// Console.WriteLine(string.Format("Name: '{0}', Value: {1}", cp.Name, cp.Value)); - /// } - /// - /// Console.WriteLine("Press any key..."); - /// - /// // Wait for the user to press a key before closing the Console. - /// Console.ReadKey(); - /// - /// - /// - /// Method 2: Get the name, type and value of each CustomProperty in this document. - /// - /// // Load Example.docx - /// var document = DocX.Load(@"C:\Example\Test.docx"); - /// - /// /* - /// * No two custom properties can have the same name, - /// * so a Dictionary is the perfect data structure to store them in. - /// * The values of this Dictionary are CustomProperties. - /// */ - /// foreach (CustomProperty cp in document.CustomProperties.Values) - /// { - /// // Write this custom properties details to Console. - /// Console.WriteLine(string.Format("Name: '{0}', Value: {1}", cp.Name, cp.Value)); - /// } - /// - /// Console.WriteLine("Press any key..."); - /// - /// // Wait for the user to press a key before closing the Console. - /// Console.ReadKey(); - /// - /// - /// public Dictionary CustomProperties { get @@ -829,9 +617,6 @@ from p in customPropDoc.Descendants( XName.Get( "property", customPropertiesSche } } - /// - /// Returns the list of document core properties with corresponding values. - /// public Dictionary CoreProperties { get @@ -858,25 +643,6 @@ public Dictionary CoreProperties } } - /// - /// Get the Text of this document. - /// - /// - /// Write to Console the Text from this document. - /// - /// // Load a document - /// var document = DocX.Load(@"C:\Example\Test.docx"); - /// - /// // Get the text of this document. - /// string text = document.Text; - /// - /// // Write the text of this document to Console. - /// Console.Write(text); - /// - /// // Wait for the user to press a key before closing the console window. - /// Console.ReadKey(); - /// - /// public string Text { get @@ -918,9 +684,6 @@ public override List Tables } } - /// - /// Get the Footnotes of this document - /// public IEnumerable FootnotesText { get @@ -930,9 +693,6 @@ public IEnumerable FootnotesText } } - /// - /// Get the Endnotes of this document - /// public IEnumerable EndnotesText { get @@ -1563,33 +1323,6 @@ public static string GetParagraphStyleIdFromStyleName( Document document, string return null; } - /// - /// Returns the type of editing protection imposed on this document. - /// - /// The type of editing protection imposed on this document. - /// - /// - /// Create a new document. - /// using (var document = DocX.Create(@"Test.docx")) - /// { - /// // Make sure the document is protected before checking the protection type. - /// if (document.IsProtected) - /// { - /// EditRestrictions protection = document.GetProtectionType(); - /// Console.WriteLine("Document is protected using " + protection.ToString()); - /// } - /// - /// else - /// Console.WriteLine("Document is not protected."); - /// - /// // Save the document. - /// document.Save(); - /// } - /// - /// - /// - /// - /// public EditRestrictions GetProtectionType() { if( IsProtected ) @@ -1602,26 +1335,6 @@ public EditRestrictions GetProtectionType() return EditRestrictions.none; } - /// - /// Add editing protection to this document. - /// - /// The type of protection to add to this document. - /// - /// - /// // Create a new document. - /// using (var document = DocX.Create(@"Test.docx")) - /// { - /// // Allow no editing, only the adding of comment. - /// document.AddProtection(EditRestrictions.comments); - /// - /// // Save the document. - /// document.Save(); - /// } - /// - /// - /// - /// - /// public void AddProtection( EditRestrictions er ) { // Call remove protection before adding a new protection element. @@ -1637,25 +1350,6 @@ public void AddProtection( EditRestrictions er ) _settings.Root.AddFirst( documentProtection ); } - /// - /// Remove editing protection from this document. - /// - /// - /// - /// // Create a new document. - /// using (var document = DocX.Create(@"Test.docx")) - /// { - /// // Remove any editing restrictions that are imposed on this document. - /// document.RemoveProtection(); - /// - /// // Save the document. - /// document.Save(); - /// } - /// - /// - /// - /// - /// public void RemoveProtection() { if( IsPasswordProtected ) @@ -1665,34 +1359,6 @@ public void RemoveProtection() _settings.Descendants( XName.Get( "documentProtection", w.NamespaceName ) ).Remove(); } - /// - /// Insert the contents of another document at the end of this document. - /// - /// The document to insert at the end of this document. - /// When true, document is added at the end. If False, document is added at the beginning. - /// When true, each joined document will be located in its own section. When false, the documents will remain in the same section. - /// When styles have the same name and different attributes, should we keep the local one, the remote one or both of them. Default is Both. - /// - /// Create a new document and insert an old document into it. - /// - /// // Create a new document. - /// using (DocX newDocument = DocX.Create(@"NewDocument.docx")) - /// { - /// // Load an old document. - /// using (DocX oldDocument = DocX.Load(@"OldDocument.docx")) - /// { - /// // Insert the old document into the new document. - /// newDocument.InsertDocument(oldDocument); - /// - /// // Save the new document. - /// newDocument.Save(); - /// }// Release the old document from memory. - /// }// Release the new document from memory. - /// - /// - /// If the document being inserted contains Images, CustomProperties and or custom styles, these will be correctly inserted into the new document. In the case of Images, new ID's are generated for the Images being inserted to avoid ID conflicts. CustomProperties with the same name will be ignored not replaced. - /// - /// public void InsertDocument( Document remote_document, bool append = true, bool useSectionBreak = true, MergingMode mergingMode = MergingMode.Both ) { XDocument remote_mainDoc; @@ -1730,41 +1396,6 @@ public void InsertDocument( Document remote_document, bool append = true, bool u - /// - /// 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 ) @@ -1788,39 +1419,6 @@ public Table AddTable( int rowCount, int columnCount ) - /// - /// 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 ); @@ -1828,38 +1426,6 @@ public Table AddTable( int rowCount, int columnCount ) 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 ) { t = base.InsertTable( t ); @@ -1867,42 +1433,6 @@ public Table AddTable( int rowCount, int columnCount ) 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 ) @@ -2089,22 +1619,11 @@ public Endnote AddEndnote( object endnoteContent, Formatting formatting = null ) return newEndnote; } - /// - /// Applies document template to the document. Document template may include styles, headers, footers, properties, etc. as well as text content. - /// - ///The path to the document template file. - ///The document template file not found. public void ApplyTemplate( string templateFilePath ) { ApplyTemplate( templateFilePath, true ); } - /// - /// Applies document template to the document. Document template may include styles, headers, footers, properties, etc. as well as text content. - /// - ///The path to the document template file. - ///Whether to copy the document template text content to document. - ///The document template file not found. public void ApplyTemplate( string templateFilePath, bool includeContent ) { if( !File.Exists( templateFilePath ) ) @@ -2121,20 +1640,11 @@ public void ApplyTemplate( string templateFilePath, bool includeContent ) } } - /// - /// Applies document template to the document. Document template may include styles, headers, footers, properties, etc. as well as text content. - /// - ///The stream of the document template file. public void ApplyTemplate( Stream templateStream ) { ApplyTemplate( templateStream, true ); } - /// - /// Applies document template to the document. Document template may include styles, headers, footers, properties, etc. as well as text content. - /// - ///The stream of the document template file. - ///Whether to copy the document template text content to document. public void ApplyTemplate( Stream templateStream, bool includeContent ) { var templatePackage = Package.Open( templateStream ); @@ -2265,27 +1775,6 @@ public void ApplyTemplate( Stream templateStream, bool includeContent ) } } - /// - /// Add an Image into this document from a fully qualified or relative filename. - /// - /// The fully qualified or relative filename. - /// An Image file. - /// - /// Add an Image into this document from a fully qualified filename. - /// - /// // Load a document. - /// using (var document = DocX.Load(@"C:\Example\Test.docx")) - /// { - /// // Add an Image from a file. - /// document.AddImage(@"C:\Example\Image.png"); - /// - /// // Save all changes made to this document. - /// document.Save(); - /// }// Release this document from memory. - /// - /// - /// - /// public Image AddImage( string filename ) { string contentType = ""; @@ -2322,32 +1811,6 @@ public Image AddImage( string filename ) return this.AddImage( filename as object, contentType ); } - /// - /// Add an Image into this document from a Stream. - /// - /// A Stream stream. - /// MIME type of image. - /// An Image file. - /// - /// Add an Image into a document using a Stream. - /// - /// // Open a FileStream fs to an Image. - /// using (FileStream fs = new FileStream(@"C:\Example\Image.jpg", FileMode.Open)) - /// { - /// // Load a document. - /// using (var document = DocX.Load(@"C:\Example\Test.docx")) - /// { - /// // Add an Image from a filestream fs. - /// document.AddImage(fs); - /// - /// // Save all changes made to this document. - /// document.Save(); - /// }// Release this document from memory. - /// } - /// - /// - /// - /// public Image AddImage( Stream stream, string contentType = "image/jpeg" ) { stream.Position = 0; @@ -2357,121 +1820,21 @@ public Image AddImage( Stream stream, string contentType = "image/jpeg" ) - /// - /// Adds a hyperlink with a uri to a document and creates a Paragraph which uses it. - /// - /// The text as displayed by the hyperlink. - /// The hyperlink itself. - /// Returns a hyperlink with a uri that can be inserted into a Paragraph. - /// - /// Adds a hyperlink to a document and creates a Paragraph which uses it. - /// - /// // Create a document. - /// using (var document = DocX.Create(@"Test.docx")) - /// { - /// // Add a hyperlink to this document. - /// Hyperlink h = document.AddHyperlink("Google", new Uri("http://www.google.com")); - /// - /// // Add a new Paragraph to this document. - /// Paragraph p = document.InsertParagraph(); - /// p.Append("My favourite search engine is "); - /// p.AppendHyperlink(h); - /// p.Append(", I think it's great."); - /// - /// // Save all changes made to this document. - /// document.Save(); - /// } - /// - /// public Hyperlink AddHyperlink( string text, Uri uri ) { return this.AddHyperlinkCore( text, uri, null, null, null ); } - /// - /// Adds a hyperlink with an anchor to a document and creates a Paragraph which uses it. - /// - /// The text as displayed by the hyperlink. - /// The anchor to a bookmark. - /// Returns a hyperlink with an anchor that can be inserted into a Paragraph. public Hyperlink AddHyperlink( string text, string anchor ) { return this.AddHyperlinkCore( text, null, anchor, null, null ); } - /// - /// Adds three new Headers to this document. One for the first page, one for odd pages and one for even pages. - /// - /// - /// // Create a document. - /// using (var document = DocX.Create(@"Test.docx")) - /// { - /// // Add header support to this document. - /// document.AddHeaders(); - /// - /// // Get a collection of all headers in this document. - /// Headers headers = document.Headers; - /// - /// // The header used for the first page of this document. - /// Header first = headers.first; - /// - /// // The header used for odd pages of this document. - /// Header odd = headers.odd; - /// - /// // The header used for even pages of this document. - /// Header even = headers.even; - /// - /// // Force the document to use a different header for first, odd and even pages. - /// document.DifferentFirstPage = true; - /// document.DifferentOddAndEvenPages = true; - /// - /// // Content can be added to the Headers in the same manor that it would be added to the main document. - /// Paragraph p = first.InsertParagraph(); - /// p.Append("This is the first pages header."); - /// - /// // Save all changes to this document. - /// document.Save(); - /// }// Release this document from memory. - /// public void AddHeaders() { this.Sections[ 0 ].AddHeadersOrFootersXml( true ); } - /// - /// Adds three new Footers to this document. One for the first page, one for odd pages and one for even pages. - /// - /// - /// // Create a document. - /// using (var document = DocX.Create(@"Test.docx")) - /// { - /// // Add footer support to this document. - /// document.AddFooters(); - /// - /// // Get a collection of all footers in this document. - /// Footers footers = document.Footers; - /// - /// // The footer used for the first page of this document. - /// Footer first = footers.first; - /// - /// // The footer used for odd pages of this document. - /// Footer odd = footers.odd; - /// - /// // The footer used for even pages of this document. - /// Footer even = footers.even; - /// - /// // Force the document to use a different footer for first, odd and even pages. - /// document.DifferentFirstPage = true; - /// document.DifferentOddAndEvenPages = true; - /// - /// // Content can be added to the Footers in the same manor that it would be added to the main document. - /// Paragraph p = first.InsertParagraph(); - /// p.Append("This is the first pages footer."); - /// - /// // Save all changes to this document. - /// document.Save(); - /// }// Release this document from memory. - /// public void AddFooters() { this.Sections[ 0 ].AddHeadersOrFootersXml( false ); @@ -2481,40 +1844,6 @@ public virtual void Save( string password = "" ) { } - /// - /// Save this document to a file. - /// - /// The filename to save this document as. - /// - /// Load a document from one file and save it to another. - /// - /// // Load a document using its fully qualified filename. - /// var document = DocX.Load(@"C:\Example\Test1.docx"); - /// - /// // Insert a new Paragraph - /// document.InsertParagraph("Hello world!", false); - /// - /// // Save the document to a new location. - /// document.SaveAs(@"C:\Example\Test2.docx"); - /// - /// - /// - /// Load a document from a Stream and save it to a file. - /// - /// DocX document; - /// using (FileStream fs1 = new FileStream(@"C:\Example\Test1.docx", FileMode.Open)) - /// { - /// // Load a document using a stream. - /// document = DocX.Load(fs1); - /// - /// // Insert a new Paragraph - /// document.InsertParagraph("Hello world again!", false); - /// } - /// - /// // Save the document to a new location. - /// document.SaveAs(@"C:\Example\Test2.docx"); - /// - /// public virtual void SaveAs( string filename, string password = "" ) { this.SetFileName( filename ); @@ -2522,55 +1851,6 @@ public virtual void SaveAs( string filename, string password = "" ) Save( password ); } - /// - /// Save this document to a Stream. - /// - /// The Stream to save this document to. - /// - /// Load a document from a file and save it to a Stream. - /// - /// // Place holder for a document. - /// DocX document; - /// - /// using (FileStream fs1 = new FileStream(@"C:\Example\Test1.docx", FileMode.Open)) - /// { - /// // Load a document using a stream. - /// document = DocX.Load(fs1); - /// - /// // Insert a new Paragraph - /// document.InsertParagraph("Hello world again!", false); - /// } - /// - /// using (FileStream fs2 = new FileStream(@"C:\Example\Test2.docx", FileMode.Create)) - /// { - /// // Save the document to a different stream. - /// document.SaveAs(fs2); - /// } - /// - /// // Release this document from memory. - /// document.Dispose(); - /// - /// - /// - /// Load a document from one Stream and save it to another. - /// - /// DocX document; - /// using (FileStream fs1 = new FileStream(@"C:\Example\Test1.docx", FileMode.Open)) - /// { - /// // Load a document using a stream. - /// document = DocX.Load(fs1); - /// - /// // Insert a new Paragraph - /// document.InsertParagraph("Hello world again!", false); - /// } - /// - /// using (FileStream fs2 = new FileStream(@"C:\Example\Test2.docx", FileMode.Create)) - /// { - /// // Save the document to a different stream. - /// document.SaveAs(fs2); - /// } - /// - /// public virtual void SaveAs( Stream stream, string password = "" ) { if( !_isCopyingDocument ) @@ -2581,41 +1861,6 @@ public virtual void SaveAs( Stream stream, string password = "" ) Save( password ); } - /// - /// Add a core property to this document. If a core property already exists with the same name it will be replaced. Core property names are case insensitive. - /// - ///The property name. - ///The property value. - /// - /// Add a core properties of each type to a document. - /// - /// // Load Example.docx - /// using (var document = DocX.Load(@"C:\Example\Test.docx")) - /// { - /// // If this document does not contain a core property called 'forename', create one. - /// if (!document.CoreProperties.ContainsKey("forename")) - /// { - /// // Create a new core property called 'forename' and set its value. - /// document.AddCoreProperty("forename", "Cathal"); - /// } - /// - /// // Get this documents core property called 'forename'. - /// string forenameValue = document.CoreProperties["forename"]; - /// - /// // Print all of the information about this core property to Console. - /// Console.WriteLine(string.Format("Name: '{0}', Value: '{1}'\nPress any key...", "forename", forenameValue)); - /// - /// // Save all changes made to this document. - /// document.Save(); - /// } // Release this document from memory. - /// - /// // Wait for the user to press a key before exiting. - /// Console.ReadKey(); - /// - /// - /// - /// - /// public void AddCoreProperty( string propertyName, string propertyValue ) { var propertyNamespacePrefix = propertyName.Contains( ":" ) ? propertyName.Split( ':' )[ 0 ] : "cp"; @@ -2653,42 +1898,6 @@ public void AddCoreProperty( string propertyName, string propertyValue ) Document.UpdateCorePropertyValue( this, propertyLocalName, propertyValue ); } - /// - /// Add a custom property to this document. If a custom property already exists with the same name it will be replace. CustomProperty names are case insensitive. - /// - /// The CustomProperty to add to this document. - /// - /// Add a custom properties of each type to a document. - /// - /// // Load Example.docx - /// using (var document = DocX.Load(@"C:\Example\Test.docx")) - /// { - /// // A CustomProperty called forename which stores a string. - /// CustomProperty forename; - /// - /// // If this document does not contain a custom property called 'forename', create one. - /// if (!document.CustomProperties.ContainsKey("forename")) - /// { - /// // Create a new custom property called 'forename' and set its value. - /// document.AddCustomProperty(new CustomProperty("forename", "Cathal")); - /// } - /// - /// // Get this documents custom property called 'forename'. - /// forename = document.CustomProperties["forename"]; - /// - /// // Print all of the information about this CustomProperty to Console. - /// Console.WriteLine(string.Format("Name: '{0}', Value: '{1}'\nPress any key...", forename.Name, forename.Value)); - /// - /// // Save all changes made to this document. - /// document.Save(); - /// } // Release this document from memory. - /// - /// // Wait for the user to press a key before exiting. - /// Console.ReadKey(); - /// - /// - /// - /// public void AddCustomProperty( CustomProperty cp ) { // If this document does not contain a customFilePropertyPart create one. @@ -2850,9 +2059,6 @@ public Paragraph[] InsertParagraphs( string text ) return paragraphs.ToArray(); } - /// - /// Create an equation and insert it in the new paragraph - /// public override Paragraph InsertEquation( String equation, Alignment align = Alignment.center ) { var p = base.InsertEquation( equation, align ); @@ -2861,25 +2067,16 @@ public override Paragraph InsertEquation( String equation, Alignment align = Ali return p; } - /// - /// Insert a chart in document - /// public void InsertChart( Chart chart, float width = 432f, float height = 252f ) { this.InsertChart( chart, null, width, height ); } - /// - /// Insert a chart in document after the specified paragraph - /// public void InsertChartAfterParagraph( Chart chart, Paragraph paragraph, float width = 432f, float height = 252f ) { this.InsertChart( chart, paragraph, width, height ); } - /// - /// Create a new List - /// public List AddList( string listText = null, int level = 0, ListItemType listType = ListItemType.Numbered, int? startNumber = null, bool trackChanges = false, bool continueNumbering = false, Formatting formatting = null ) { if( startNumber.HasValue && continueNumbering ) @@ -2906,9 +2103,6 @@ public List AddList( string listText = null, int level = 0, ListItemType listTyp - /// - /// Add a list item to an existing list - /// public List AddListItem( List list, string listText, int level = 0, @@ -2932,11 +2126,6 @@ public List AddListItem( List list, return result; } - /// - /// Insert a list in the document - /// - /// The list to insert into the document. - /// The list that was inserted into the document. public override List InsertList( List list ) { base.InsertList( list ); @@ -2955,30 +2144,18 @@ public override List InsertList( List list, double fontSize ) return list; } - /// - /// Insert a list at an index location in the document - /// - /// Index in document to insert the list. - /// The list that was inserted into the document. - /// public new List InsertList( int index, List list ) { base.InsertList( index, list ); return list; } - /// - /// Insert a default Table of Contents in the current document - /// public TableOfContents InsertDefaultTableOfContents() { var switchesDictionary = TableOfContents.BuildTOCSwitchesDictionary( TableOfContentsSwitches.O | TableOfContentsSwitches.H | TableOfContentsSwitches.Z | TableOfContentsSwitches.U ); return InsertTableOfContents( "Table of contents", switchesDictionary ); } - /// - /// Insert a Table of Contents in the current document - /// public TableOfContents InsertTableOfContents( string title, IDictionary switches, string headerStyle = null, int? rightTabPos = null ) { var toc = TableOfContents.CreateTableOfContents( this, title, switches, headerStyle, rightTabPos ); @@ -2986,9 +2163,6 @@ public TableOfContents InsertTableOfContents( string title, IDictionary - /// Insert a Table of Contents in the current document - /// [Obsolete( "This method is obsolete and should no longer be used. Use the InsertTableOfContents methods containing an IDictionary parameter instead." )] public TableOfContents InsertTableOfContents( string title, TableOfContentsSwitches switches, string headerStyle = null, int maxIncludeLevel = 3, int? rightTabPos = null ) { @@ -2999,9 +2173,6 @@ public TableOfContents InsertTableOfContents( string title, TableOfContentsSwitc return toc; } - /// - /// Insert a Table of Contents in the current document at a specific location (prior to the referenced paragraph) - /// [Obsolete( "This method is obsolete and should no longer be used. Use the InsertTableOfContents methods containing an IDictionary parameter instead." )] public TableOfContents InsertTableOfContents( Paragraph reference, string title, TableOfContentsSwitches switches, string headerStyle = null, int maxIncludeLevel = 3, int? rightTabPos = null ) { @@ -3011,9 +2182,6 @@ public TableOfContents InsertTableOfContents( Paragraph reference, string title, return toc; } - /// - /// Insert a Table of Contents in the current document at a specific location (prior to the referenced paragraph) - /// public TableOfContents InsertTableOfContents( Paragraph reference, string title, IDictionary switches, string headerStyle = null, int? rightTabPos = null ) { var toc = TableOfContents.CreateTableOfContents( this, title, switches, headerStyle, rightTabPos ); @@ -3021,10 +2189,6 @@ public TableOfContents InsertTableOfContents( Paragraph reference, string title, return toc; } - /// - /// Copy the Document into a new Document - /// - /// Returns a copy of a the Document public virtual Document Copy() { return null; @@ -3481,9 +2645,7 @@ internal Image AddImage( object o, string contentType = "image/jpeg" ) //var partLookup = _package.GetParts().ToDictionary( x => x.Uri.ToString(), x => x, StringComparer.Ordinal ); //var imageParts = new List(); - //// all image relationships. //var relationshipImages = this.PackagePart.GetRelationshipsByType( RelationshipImage ); - //// take all used images (from relationships) //foreach( var item in relationshipImages ) //{ // var targetUri = item.TargetUri.ToString(); @@ -3495,7 +2657,6 @@ internal Image AddImage( object o, string contentType = "image/jpeg" ) // } //} - //// all document's relationship parts. //var relsParts = partLookup // .Where( // item => @@ -3548,7 +2709,6 @@ internal Image AddImage( object o, string contentType = "image/jpeg" ) // } //} - //// Loop through each image part in this document. //foreach( var pp in imageParts ) //{ // // Get the image object for this image part. @@ -3716,13 +2876,6 @@ internal static void UpdateCorePropertyValue( Document document, string coreProp // Document.PopulateDocument( document, document._package ); } - /// - /// Update the custom properties inside the document - /// - /// The Document document - /// The property used inside the document - /// The new value for the property - /// Different version of Word create different Document XML. internal static void UpdateCustomPropertyValue( Document document, CustomProperty cp ) { var customPropertyName = cp.Name; @@ -3923,9 +3076,6 @@ internal XElement GetDocDefaults() return _styles.Element( XName.Get( "styles", Document.w.NamespaceName ) ).Element( XName.Get( "docDefaults", Document.w.NamespaceName ) ); } - /// - /// Finds the next free Id for bookmarkStart/docPr. - /// internal long GetNextFreeDocPrId() { lock( nextFreeDocPrIdLock ) @@ -4116,7 +3266,7 @@ internal double GetDocDefaultFontSize() internal string GetDocDefaultFontFamily() { - var docDefault = this.Document.GetDocDefaults(); + var docDefault = this.GetDocDefaults(); if( docDefault != null ) { var rPrDefault = docDefault.Element( XName.Get( "rPrDefault", Document.w.NamespaceName ) ); @@ -4128,13 +3278,19 @@ internal string GetDocDefaultFontFamily() var rFonts = rPr.Element( XName.Get( "rFonts", Document.w.NamespaceName ) ); if( rFonts != null ) { - return rFonts.GetAttribute( XName.Get( "ascii", Document.w.NamespaceName ) ); + var fontName = rFonts.GetAttribute( XName.Get( "ascii", Document.w.NamespaceName ) ) + ?? rFonts.GetAttribute( XName.Get( "hAnsi", Document.w.NamespaceName ) ) + ?? rFonts.GetAttribute( XName.Get( "cs", Document.w.NamespaceName ) ) + ?? rFonts.GetAttribute( XName.Get( "hint", Document.w.NamespaceName ) ) + ?? rFonts.GetAttribute( XName.Get( "eastAsia", Document.w.NamespaceName ) ); + if( !string.IsNullOrEmpty( fontName ) ) + return fontName; } } } } - return Document.DefaultFontFamily; + return "Calibri"; } #endregion @@ -5527,17 +4683,17 @@ private static void UpdateRelationshipsUri( Package package ) if( package.PartExists( new Uri( "/word/_rels/document.xml.rels", UriKind.Relative ) ) ) { + XDocument docRelationShipDocument; + bool needUpdate = false; var docRelationships = package.GetPart( new Uri( "/word/_rels/document.xml.rels", UriKind.Relative ) ); using( var tr = new StreamReader( docRelationships.GetStream( FileMode.Open, FileAccess.Read ) ) ) { - XDocument docRelationShipDocument; docRelationShipDocument = XDocument.Load( tr, LoadOptions.PreserveWhitespace ); var urisToValidate = docRelationShipDocument .Descendants( XName.Get( "Relationship", rel.NamespaceName ) ) .Where( relation => ( relation.Attribute( "TargetMode" ) != null ) && ( ( string )relation.Attribute( "TargetMode" ) == "External" ) ); - bool needUpdate = false; foreach( var relation in urisToValidate ) { var target = ( string )relation.Attribute( "Target" ); @@ -5555,13 +4711,13 @@ private static void UpdateRelationshipsUri( Package package ) } } } + } - if( needUpdate ) + if( needUpdate ) + { + using( var tw = new StreamWriter( new PackagePartStream( docRelationships.GetStream( FileMode.Create, FileAccess.Write ) ) ) ) { - using( var tw = new StreamWriter( new PackagePartStream( docRelationships.GetStream( FileMode.Create, FileAccess.Write ) ) ) ) - { - docRelationShipDocument.Save( tw, SaveOptions.None ); - } + docRelationShipDocument.Save( tw, SaveOptions.None ); } } } @@ -5825,32 +4981,6 @@ internal Document( Document document, XElement xml ) #region IDisposable Members - /// - /// Releases all resources used by this document. - /// - /// - /// If you take advantage of the using keyword, Dispose() is automatically called for you. - /// - /// // Load document. - /// using (var document = DocX.Load(@"C:\Example\Test.docx")) - /// { - /// // The document is only in memory while in this scope. - /// - /// }// Dispose() is automatically called at this point. - /// - /// - /// - /// This example is equilivant to the one above example. - /// - /// // Load document. - /// var document = DocX.Load(@"C:\Example\Test.docx"); - /// - /// // Do something with the document here. - /// - /// // Dispose of the document. - /// document.Dispose(); - /// - /// public void Dispose() { _package.Close(); @@ -5859,9 +4989,6 @@ public void Dispose() #endregion } - /// - /// Represents encryption class - /// internal class Encryption { #region Public fields diff --git a/Xceed.Document.NET/Src/Endnote.cs b/Xceed.Document.NET/Src/Endnote.cs index 05fc65c..092f7e8 100644 --- a/Xceed.Document.NET/Src/Endnote.cs +++ b/Xceed.Document.NET/Src/Endnote.cs @@ -2,7 +2,7 @@ DocX – DocX is the community edition of Xceed Words for .NET - Copyright (C) 2009-2023 Xceed Software Inc. + Copyright (C) 2009-2024 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 diff --git a/Xceed.Document.NET/Src/ExtensionsHeadings.cs b/Xceed.Document.NET/Src/ExtensionsHeadings.cs index e2d91f3..9cd216e 100644 --- a/Xceed.Document.NET/Src/ExtensionsHeadings.cs +++ b/Xceed.Document.NET/Src/ExtensionsHeadings.cs @@ -2,7 +2,7 @@ DocX – DocX is the community edition of Xceed Words for .NET - Copyright (C) 2009-2023 Xceed Software Inc. + Copyright (C) 2009-2024 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 diff --git a/Xceed.Document.NET/Src/Font.cs b/Xceed.Document.NET/Src/Font.cs index d7b0291..d0dc685 100644 --- a/Xceed.Document.NET/Src/Font.cs +++ b/Xceed.Document.NET/Src/Font.cs @@ -2,7 +2,7 @@ DocX – DocX is the community edition of Xceed Words for .NET - Copyright (C) 2009-2023 Xceed Software Inc. + Copyright (C) 2009-2024 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 diff --git a/Xceed.Document.NET/Src/Footer.cs b/Xceed.Document.NET/Src/Footer.cs index 011ddde..9acb64f 100644 --- a/Xceed.Document.NET/Src/Footer.cs +++ b/Xceed.Document.NET/Src/Footer.cs @@ -2,7 +2,7 @@ DocX – DocX is the community edition of Xceed Words for .NET - Copyright (C) 2009-2023 Xceed Software Inc. + Copyright (C) 2009-2024 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 diff --git a/Xceed.Document.NET/Src/Footers.cs b/Xceed.Document.NET/Src/Footers.cs index da1ed9f..a752039 100644 --- a/Xceed.Document.NET/Src/Footers.cs +++ b/Xceed.Document.NET/Src/Footers.cs @@ -2,7 +2,7 @@ DocX – DocX is the community edition of Xceed Words for .NET - Copyright (C) 2009-2023 Xceed Software Inc. + Copyright (C) 2009-2024 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 diff --git a/Xceed.Document.NET/Src/Footnote.cs b/Xceed.Document.NET/Src/Footnote.cs index d51847e..d041a3a 100644 --- a/Xceed.Document.NET/Src/Footnote.cs +++ b/Xceed.Document.NET/Src/Footnote.cs @@ -2,7 +2,7 @@ DocX – DocX is the community edition of Xceed Words for .NET - Copyright (C) 2009-2023 Xceed Software Inc. + Copyright (C) 2009-2024 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 diff --git a/Xceed.Document.NET/Src/FormattedText.cs b/Xceed.Document.NET/Src/FormattedText.cs index bdeebd9..9903946 100644 --- a/Xceed.Document.NET/Src/FormattedText.cs +++ b/Xceed.Document.NET/Src/FormattedText.cs @@ -2,7 +2,7 @@ DocX – DocX is the community edition of Xceed Words for .NET - Copyright (C) 2009-2023 Xceed Software Inc. + Copyright (C) 2009-2024 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 diff --git a/Xceed.Document.NET/Src/Formatting.cs b/Xceed.Document.NET/Src/Formatting.cs index 16f57b3..db76bd6 100644 --- a/Xceed.Document.NET/Src/Formatting.cs +++ b/Xceed.Document.NET/Src/Formatting.cs @@ -2,7 +2,7 @@ DocX – DocX is the community edition of Xceed Words for .NET - Copyright (C) 2009-2023 Xceed Software Inc. + Copyright (C) 2009-2024 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 @@ -22,9 +22,6 @@ COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at namespace Xceed.Document.NET { - /// - /// A text formatting. - /// public class Formatting : IComparable { #region Private Members @@ -58,9 +55,6 @@ public class Formatting : IComparable #region Constructors - /// - /// A text formatting. - /// public Formatting() { // Use current culture by default @@ -73,9 +67,6 @@ public Formatting() #region Public Properties - /// - /// Text language - /// public CultureInfo Language { get @@ -89,9 +80,6 @@ public CultureInfo Language } } - /// - /// This formatting will apply Bold. - /// public bool? Bold { get @@ -104,9 +92,6 @@ public bool? Bold } } - /// - /// This formatting will apply Italic. - /// public bool? Italic { get @@ -119,9 +104,6 @@ public bool? Italic } } - /// - /// This formatting will apply StrickThrough. - /// public StrikeThrough? StrikeThrough { get @@ -134,9 +116,6 @@ public StrikeThrough? StrikeThrough } } - /// - /// The script that this formatting should be, normal, superscript or subscript. - /// public Script? Script { get @@ -149,9 +128,6 @@ public Script? Script } } - /// - /// The Size of this text, must be between 0 and 1638. - /// public double? Size { get @@ -184,9 +160,6 @@ public double? Size } } - /// - /// Percentage scale must be between 1 and 600. - /// public float? PercentageScale { get @@ -212,9 +185,6 @@ public float? PercentageScale } } - /// - /// The Kerning to apply to this text. - /// public float? Kerning { get @@ -228,9 +198,6 @@ public float? Kerning } } - /// - /// Text position must be in the range (-1585 - 1585). - /// public float? Position { get @@ -247,9 +214,6 @@ public float? Position } } - /// - /// Text spacing must be in the range (-1585 - 1585). - /// public double? Spacing { get @@ -274,9 +238,6 @@ public double? Spacing } } - /// - /// The colour of the text. - /// public Color? FontColor { get @@ -289,9 +250,6 @@ public Color? FontColor } } - /// - /// Highlight colour. - /// public Highlight? Highlight { get @@ -304,9 +262,6 @@ public Highlight? Highlight } } - /// - /// Shading color. - /// [Obsolete( "This property is obsolete and should no longer be used. Use the ShadingPattern property instead." )] public Color? Shading { @@ -369,9 +324,6 @@ public string StyleId } } - /// - /// The Underline style that this formatting applies. - /// public UnderlineStyle? UnderlineStyle { get @@ -384,9 +336,6 @@ public UnderlineStyle? UnderlineStyle } } - /// - /// The underline colour. - /// public Color? UnderlineColor { get @@ -399,9 +348,6 @@ public Color? UnderlineColor } } - /// - /// Misc settings. - /// public Misc? Misc { get @@ -414,9 +360,6 @@ public Misc? Misc } } - /// - /// Is this text hidden or visible. - /// public bool? Hidden { get @@ -429,9 +372,6 @@ public bool? Hidden } } - /// - /// Capitalization style. - /// public CapsStyle? CapsStyle { get @@ -444,13 +384,6 @@ public CapsStyle? CapsStyle } } - /// - /// The font Family of this formatting. - /// - /// public Font FontFamily { get @@ -666,10 +599,6 @@ internal XElement Xml #region Public Methods - /// - /// Returns a cloned instance of Formatting. - /// - /// public Formatting Clone() { var clone = new Formatting(); @@ -716,7 +645,7 @@ public Formatting Clone() return clone; } - public static Formatting Parse( XElement rPr, Formatting formatting = null ) + public static Formatting Parse( XElement rPr, Formatting formatting = null, string defaultFontFamily = null ) { if( formatting == null ) { @@ -767,7 +696,7 @@ public static Formatting Parse( XElement rPr, Formatting formatting = null ) formatting.FontFamily = ( fontName != null ) ? new Font( fontName ) : ( formatting.FontFamily == null ) ? - new Font( "Calibri" ) : formatting.FontFamily; + new Font( ( defaultFontFamily != null ) ? defaultFontFamily : "Calibri" ) : formatting.FontFamily; break; case "color": try diff --git a/Xceed.Document.NET/Src/Header.cs b/Xceed.Document.NET/Src/Header.cs index ce742c8..a65c87d 100644 --- a/Xceed.Document.NET/Src/Header.cs +++ b/Xceed.Document.NET/Src/Header.cs @@ -2,7 +2,7 @@ DocX – DocX is the community edition of Xceed Words for .NET - Copyright (C) 2009-2023 Xceed Software Inc. + Copyright (C) 2009-2024 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 diff --git a/Xceed.Document.NET/Src/Headers.cs b/Xceed.Document.NET/Src/Headers.cs index 5178096..fc49fbd 100644 --- a/Xceed.Document.NET/Src/Headers.cs +++ b/Xceed.Document.NET/Src/Headers.cs @@ -2,7 +2,7 @@ DocX – DocX is the community edition of Xceed Words for .NET - Copyright (C) 2009-2023 Xceed Software Inc. + Copyright (C) 2009-2024 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 diff --git a/Xceed.Document.NET/Src/HelperFunctions.cs b/Xceed.Document.NET/Src/HelperFunctions.cs index fa25f74..ec95be6 100644 --- a/Xceed.Document.NET/Src/HelperFunctions.cs +++ b/Xceed.Document.NET/Src/HelperFunctions.cs @@ -2,7 +2,7 @@ DocX – DocX is the community edition of Xceed Words for .NET - Copyright (C) 2009-2023 Xceed Software Inc. + Copyright (C) 2009-2024 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 @@ -269,7 +269,7 @@ internal static Formatting GetFormattingFromStyle( Document document, string sty rPr = currentStyle.Element( XName.Get( "rPr", Document.w.NamespaceName ) ); - var retValue = Formatting.Parse( rPr, formatting ); + var retValue = Formatting.Parse( rPr, formatting, document.GetDocDefaultFontFamily() ); retValue.StyleId = styleId; return retValue; @@ -471,7 +471,6 @@ internal static XDocument DecompressXMLResource( string manifest_resource_name ) // XDocument to load the compressed Xml resource into. XDocument document; - //// Get a reference to the executing assembly. Assembly assembly = Assembly.GetExecutingAssembly(); // Open a Stream to the embedded resource. @@ -525,11 +524,6 @@ internal static string GetResources( ResourceType resType ) return null; } - /// - /// If this document does not contain a /word/styles.xml add the default one generated by Microsoft Word. - /// - /// - /// internal static XDocument AddDefaultStylesXml( Package package ) { XDocument stylesDoc; @@ -616,9 +610,6 @@ internal static XElement CreateTable( int rowCount, int columnCount, double tabl return newTable; } - /// - /// Create and return a cell of a table - /// internal static XElement CreateTableCell( double w = 2310 ) { return new XElement( XName.Get( "tc", Document.w.NamespaceName ), @@ -787,10 +778,6 @@ internal static XElement[] SplitParagraph( Paragraph p, int index ) return new XElement[] { before, after }; } - /// internal static bool IsSameFile( Stream streamOne, Stream streamTwo ) { int file1byte, file2byte; @@ -822,9 +809,6 @@ internal static bool IsSameFile( Stream streamOne, Stream streamTwo ) return ( ( file1byte - file2byte ) == 0 ); } - /// - /// Add the default numbering.xml if it is missing from this document - /// internal static XDocument AddDefaultNumberingXml( Package package ) { XDocument numberingDoc; @@ -976,6 +960,41 @@ internal static Color GetColorFromHtml( string stringColor, string autoColor = " return Color.FromArgb( Convert.ToInt32( stringColor.Substring( 0, 2 ), 16 ), Convert.ToInt32( stringColor.Substring( 2, 2 ), 16 ), Convert.ToInt32( stringColor.Substring( 4, 2 ), 16 ) ); } + internal static string ConvertIntToRoman( int numberToConvert ) + { + if( ( numberToConvert <= 0 ) || ( numberToConvert > 3999 ) ) + throw new ArgumentOutOfRangeException( "Can't convert number to roman. Number must be between 1 and 3999." ); + + var romanSymbols = new Dictionary + { + { 1000, "M" }, + { 900, "CM" }, + { 500, "D" }, + { 400, "CD" }, + { 100, "C" }, + { 90, "XC" }, + { 50, "L" }, + { 40, "XL" }, + { 10, "X" }, + { 9, "IX" }, + { 5, "V" }, + { 4, "IV" }, + { 1, "I" } + }; + + string resultRomanSymbol = ""; + foreach( var romanSymbol in romanSymbols ) + { + while( numberToConvert >= romanSymbol.Key ) + { + resultRomanSymbol += romanSymbol.Value; + numberToConvert -= romanSymbol.Key; + } + } + + return resultRomanSymbol; + } + internal static PatternStyle GetTablePatternStyleFromValue( string style ) { switch( style ) @@ -1298,7 +1317,26 @@ internal static string GetListItemStartValue( List list, int level ) var startNode = lvlNode.Descendants().FirstOrDefault( n => n.Name.LocalName == "start" ); if( startNode == null ) return "1"; - return startNode.GetAttribute( Document.w + "val" ); + var returnValue = startNode.GetAttribute( Document.w + "val" ); + + + var numNode = HelperFunctions.GetNumberingNumNode( list.Document, list.NumId.ToString() ); + if( numNode != null ) + { + var levelOverride = numNode.Elements( XName.Get( "lvlOverride", Document.w.NamespaceName ) )? + .SingleOrDefault( node => node.Attribute( Document.w + "ilvl" ).Value.Equals( level.ToString() ) ); + + if( levelOverride != null ) + { + var startOverride = levelOverride.Element( XName.Get( "startOverride", Document.w.NamespaceName ) ); + if( startOverride != null ) + { + returnValue = startOverride.GetAttribute( XName.Get( "val", Document.w.NamespaceName ) ); + } + } + } + + return returnValue; } internal static string GetListItemTextFormat( List list, int level, out Formatting formatting ) @@ -1335,6 +1373,34 @@ internal static string GetListItemTextFormat( List list, int level, out Formatti return textFormatNode.GetAttribute( Document.w + "val" ); } + internal static XElement GetListItemFormattingNode( List list, int level ) + { + var abstractNumElement = list.GetAbstractNum( list.NumId ); + if( abstractNumElement == null ) + return null; + + //Find lvl node + var lvlNodes = abstractNumElement.Descendants().Where( n => n.Name.LocalName == "lvl" ); + var lvlNode = lvlNodes.FirstOrDefault( n => n.GetAttribute( Document.w + "ilvl" ).Equals( level.ToString() ) ); + // No ilvl, check if a numStyleLink is used. + if( lvlNode == null ) + { + var linkedStyleNumId = HelperFunctions.GetLinkedStyleNumId( list.Document, list.NumId.ToString() ); + if( linkedStyleNumId != -1 ) + { + abstractNumElement = list.GetAbstractNum( linkedStyleNumId ); + if( abstractNumElement == null ) + return null; + lvlNodes = abstractNumElement.Descendants().Where( n => n.Name.LocalName == "lvl" ); + lvlNode = lvlNodes.FirstOrDefault( n => n.GetAttribute( Document.w + "ilvl" ).Equals( level.ToString() ) ); + } + if( lvlNode == null ) + return null; + } + + return lvlNode.Element( XName.Get( "rPr", Document.w.NamespaceName ) ); + } + internal static XElement GetListItemAlignment( List list, int level ) { var abstractNumElement = list.GetAbstractNum( list.NumId ); diff --git a/Xceed.Document.NET/Src/Hyperlink.cs b/Xceed.Document.NET/Src/Hyperlink.cs index 07b4ca8..6112056 100644 --- a/Xceed.Document.NET/Src/Hyperlink.cs +++ b/Xceed.Document.NET/Src/Hyperlink.cs @@ -2,7 +2,7 @@ DocX – DocX is the community edition of Xceed Words for .NET - Copyright (C) 2009-2023 Xceed Software Inc. + Copyright (C) 2009-2024 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 @@ -23,9 +23,6 @@ COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at namespace Xceed.Document.NET { - /// - /// Represents a Hyperlink in a document. - /// public class Hyperlink : DocumentElement { #region Internal Members @@ -43,28 +40,6 @@ public class Hyperlink : DocumentElement #region Public Properties - /// - /// Change the Text of a Hyperlink. - /// - /// - /// Change the Text of a Hyperlink. - /// - /// // Create a document. - /// using (var document = DocX.Load(@"Test.docx")) - /// { - /// // Get all of the hyperlinks in this document - /// List<Hyperlink> hyperlinks = document.Hyperlinks; - /// - /// // Change the first hyperlinks text and Uri - /// Hyperlink h0 = hyperlinks[0]; - /// h0.Text = "DocX"; - /// h0.Uri = new Uri("http://docx.codeplex.com"); - /// - /// // Save this document. - /// document.Save(); - /// } - /// - /// public string Text { get @@ -122,30 +97,6 @@ public string Text } } - /// - /// Change the Uri of a Hyperlink. - /// - /// - /// Change the Uri of a Hyperlink. - /// - /// hyperlinks = document.Hyperlinks; - /// - /// // Change the first hyperlinks text and Uri - /// Hyperlink h0 = hyperlinks[0]; - /// h0.Text = "DocX"; - /// h0.Uri = new Uri("http://docx.codeplex.com"); - /// - /// // Save this document. - /// document.Save(); - /// } - /// ]]> - /// - /// public Uri Uri { get @@ -248,35 +199,6 @@ internal Hyperlink( Document document, XElement instrText, List runs ) #region Public Methods - /// - /// Remove a Hyperlink from this Paragraph only. - /// - /// - /// - /// // Create a document. - /// using (var document = DocX.Create(@"Test.docx")) - /// { - /// // Add a hyperlink to this document. - /// Hyperlink h = document.AddHyperlink("link", new Uri("http://www.google.com")); - /// - /// // Add a Paragraph to this document and insert the hyperlink - /// Paragraph p1 = document.InsertParagraph(); - /// p1.Append("This is a cool ").AppendHyperlink(h).Append(" ."); - /// - /// /* - /// * Remove the hyperlink from this Paragraph only. - /// * Note a reference to the hyperlink will still exist in the document and it can thus be reused. - /// */ - /// p1.Hyperlinks[0].Remove(); - /// - /// // Add a new Paragraph to this document and reuse the hyperlink h. - /// Paragraph p2 = document.InsertParagraph(); - /// p2.Append("This is the same cool ").AppendHyperlink(h).Append(" ."); - /// - /// document.Save(); - /// }// Release this document from memory. - /// - /// public void Remove() { Xml.Remove(); diff --git a/Xceed.Document.NET/Src/IParagraphContainer.cs b/Xceed.Document.NET/Src/IParagraphContainer.cs index f5d98af..7de4d1a 100644 --- a/Xceed.Document.NET/Src/IParagraphContainer.cs +++ b/Xceed.Document.NET/Src/IParagraphContainer.cs @@ -2,7 +2,7 @@ DocX – DocX is the community edition of Xceed Words for .NET - Copyright (C) 2009-2023 Xceed Software Inc. + Copyright (C) 2009-2024 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 diff --git a/Xceed.Document.NET/Src/Image.cs b/Xceed.Document.NET/Src/Image.cs index 812aba0..ef71ebe 100644 --- a/Xceed.Document.NET/Src/Image.cs +++ b/Xceed.Document.NET/Src/Image.cs @@ -2,7 +2,7 @@ DocX – DocX is the community edition of Xceed Words for .NET - Copyright (C) 2009-2023 Xceed Software Inc. + Copyright (C) 2009-2024 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 @@ -21,16 +21,10 @@ COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at namespace Xceed.Document.NET { - /// - /// Represents an Image embedded in a document. - /// public class Image { #region Private Members - /// - /// A unique id which identifies this Image. - /// private string _id; private Document _document; @@ -44,9 +38,6 @@ public class Image #region Public Properties - /// - /// Returns the id of this Image. - /// public string Id { get @@ -55,9 +46,6 @@ public string Id } } - /// - /// Returns the name of the image file. - /// public string FileName { get @@ -91,45 +79,11 @@ public Stream GetStream( FileMode mode, FileAccess access ) return ( new PackagePartStream( _document._package.GetPart( new Uri( full, UriKind.Relative ) ).GetStream( mode, access ) ) ); } - /// - /// Add an image to a document, create a custom view of that image (picture) and then insert it into a Paragraph using append. - /// - /// - /// - /// Add an image to a document, create a custom view of that image (picture) and then insert it into a Paragraph using append. - /// - /// using (var document = DocX.Create("Test.docx")) - /// { - /// // Add an image to the document. - /// Image i = document.AddImage(@"Image.jpg"); - /// - /// // Create a picture i.e. (A custom view of an image) - /// Picture p = i.CreatePicture(); - /// p.FlipHorizontal = true; - /// p.Rotation = 10; - /// - /// // Create a new Paragraph. - /// Paragraph par = document.InsertParagraph(); - /// - /// // Append content to the Paragraph. - /// par.Append("Here is a cool picture") - /// .AppendPicture(p) - /// .Append(" don't you think so?"); - /// - /// // Save all changes made to this document. - /// document.Save(); - /// } - /// - /// - /// public Picture CreatePicture() { return this.CreatePicture( -1f, -1f ); } - /// - /// Add an image to a document with specific height and width, create a custom view of that image (picture) and then insert it into a Paragraph using append. - /// public Picture CreatePicture( float height, float width ) { return Paragraph.CreatePicture( _document, _id, string.Empty, string.Empty, width, height ); diff --git a/Xceed.Document.NET/Src/List.cs b/Xceed.Document.NET/Src/List.cs index 46a459e..200941d 100644 --- a/Xceed.Document.NET/Src/List.cs +++ b/Xceed.Document.NET/Src/List.cs @@ -2,7 +2,7 @@ DocX – DocX is the community edition of Xceed Words for .NET - Copyright (C) 2009-2023 Xceed Software Inc. + Copyright (C) 2009-2024 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 @@ -22,9 +22,6 @@ COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at namespace Xceed.Document.NET { - /// - /// Represents a List in a document. - /// public class List : InsertBeforeOrAfter { @@ -43,27 +40,16 @@ public class List : InsertBeforeOrAfter #region Public Properties - /// - /// This is a list of paragraphs that will be added to the document - /// when the list is inserted into the document. - /// The paragraph needs a numPr defined to be in this items collection. - /// public List Items { get; private set; } - /// - /// The numId used to reference the list settings in the numbering.xml - /// public int NumId { get; private set; } - /// - /// The ListItemType (bullet or numbered) of the list. - /// public ListItemType? ListType { get @@ -105,13 +91,6 @@ internal List( Document document, XElement xml ) #region Public Methods - /// - /// Adds an item to the list. - /// - /// - /// - /// Throws an InvalidOperationException if the item cannot be added to the list. - /// public void AddItem( Paragraph paragraph ) { if( paragraph.IsListItem ) @@ -147,13 +126,6 @@ public void AddItemWithStartValue( Paragraph paragraph, int start ) AddItem( paragraph ); } - /// - /// Determine if it is able to add the item to the list - /// - /// - /// - /// Return true if AddItem(...) will succeed with the given paragraph. - /// public bool CanAddListItem( Paragraph paragraph ) { if( paragraph.IsListItem ) @@ -199,6 +171,46 @@ public void Remove() this.Items.ForEach( paragraph => paragraph.Remove( false ) ); } + public override Paragraph InsertParagraphBeforeSelf( string text ) + { + return this.Items.First().InsertParagraphBeforeSelf( text, false, new Formatting() ); + } + + public override Paragraph InsertParagraphAfterSelf( string text ) + { + return this.Items.Last().InsertParagraphAfterSelf( text, false, new Formatting() ); + } + + public override Paragraph InsertParagraphBeforeSelf( Paragraph p ) + { + return this.Items.First().InsertParagraphBeforeSelf( p ); + } + + public override Paragraph InsertParagraphAfterSelf( Paragraph p ) + { + return this.Items.Last().InsertParagraphBeforeSelf( p ); + } + + public override Paragraph InsertParagraphBeforeSelf( string text, bool trackChanges ) + { + return this.Items.First().InsertParagraphBeforeSelf( text, trackChanges, new Formatting() ); + } + + public override Paragraph InsertParagraphAfterSelf( string text, bool trackChanges ) + { + return this.Items.Last().InsertParagraphAfterSelf( text, trackChanges, new Formatting() ); + } + + public override Paragraph InsertParagraphBeforeSelf( string text, bool trackChanges, Formatting formatting ) + { + return this.Items.First().InsertParagraphBeforeSelf( text, trackChanges, formatting ); + } + + public override Paragraph InsertParagraphAfterSelf( string text, bool trackChanges, Formatting formatting ) + { + return this.Items.Last().InsertParagraphBeforeSelf( text, trackChanges, formatting ); + } + #endregion #region Internal Methods @@ -269,11 +281,6 @@ internal static string GetRandomHexNumber() - /// - /// Get the abstractNum definition for the given numId - /// - /// The numId on the pPr element - /// XElement representing the requested abstractNum internal XElement GetAbstractNum( int numId ) { return HelperFunctions.GetAbstractNum( this.Document, numId.ToString() ); @@ -426,14 +433,6 @@ private XElement GetAbstractNumXml( int abstractNumId, int numId, int? startNumb } - /// - /// Method to determine the last numId for a list element. - /// Also useful for determining the next numId to use for inserting a new list element into the document. - /// - /// - /// 0 if there are no elements in the list already. - /// Increment the return for the next valid value of a new list element. - /// private int GetMaxNumId() { const int defaultValue = 0; @@ -446,14 +445,6 @@ private int GetMaxNumId() return defaultValue; } - /// - /// Method to determine the last abstractNumId for a list element. - /// Also useful for determining the next abstractNumId to use for inserting a new list element into the document. - /// - /// - /// -1 if there are no elements in the list already. - /// Increment the return for the next valid value of a new list element. - /// private int GetMaxAbstractNumId() { const int defaultValue = -1; diff --git a/Xceed.Document.NET/Src/Note.cs b/Xceed.Document.NET/Src/Note.cs index 57636e6..ebb6a77 100644 --- a/Xceed.Document.NET/Src/Note.cs +++ b/Xceed.Document.NET/Src/Note.cs @@ -2,7 +2,7 @@ DocX – DocX is the community edition of Xceed Words for .NET - Copyright (C) 2009-2023 Xceed Software Inc. + Copyright (C) 2009-2024 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 diff --git a/Xceed.Document.NET/Src/NoteProperties.cs b/Xceed.Document.NET/Src/NoteProperties.cs index 6622b5b..7975ba1 100644 --- a/Xceed.Document.NET/Src/NoteProperties.cs +++ b/Xceed.Document.NET/Src/NoteProperties.cs @@ -2,7 +2,7 @@ DocX – DocX is the community edition of Xceed Words for .NET - Copyright (C) 2009-2023 Xceed Software Inc. + Copyright (C) 2009-2024 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 diff --git a/Xceed.Document.NET/Src/PackagePartStream.cs b/Xceed.Document.NET/Src/PackagePartStream.cs index 143cb15..89c7ed5 100644 --- a/Xceed.Document.NET/Src/PackagePartStream.cs +++ b/Xceed.Document.NET/Src/PackagePartStream.cs @@ -2,7 +2,7 @@ DocX – DocX is the community edition of Xceed Words for .NET - Copyright (C) 2009-2023 Xceed Software Inc. + Copyright (C) 2009-2024 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 diff --git a/Xceed.Document.NET/Src/PageLayout.cs b/Xceed.Document.NET/Src/PageLayout.cs index 846eb07..79bed67 100644 --- a/Xceed.Document.NET/Src/PageLayout.cs +++ b/Xceed.Document.NET/Src/PageLayout.cs @@ -2,7 +2,7 @@ DocX – DocX is the community edition of Xceed Words for .NET - Copyright (C) 2009-2023 Xceed Software Inc. + Copyright (C) 2009-2024 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 diff --git a/Xceed.Document.NET/Src/PageNumberType.cs b/Xceed.Document.NET/Src/PageNumberType.cs index 0f681dc..9fcde50 100644 --- a/Xceed.Document.NET/Src/PageNumberType.cs +++ b/Xceed.Document.NET/Src/PageNumberType.cs @@ -2,7 +2,7 @@ DocX – DocX is the community edition of Xceed Words for .NET - Copyright (C) 2009-2023 Xceed Software Inc. + Copyright (C) 2009-2024 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 diff --git a/Xceed.Document.NET/Src/Paragraph.cs b/Xceed.Document.NET/Src/Paragraph.cs index 31fd44f..0fe37c3 100644 --- a/Xceed.Document.NET/Src/Paragraph.cs +++ b/Xceed.Document.NET/Src/Paragraph.cs @@ -2,7 +2,7 @@ DocX – DocX is the community edition of Xceed Words for .NET - Copyright (C) 2009-2023 Xceed Software Inc. + Copyright (C) 2009-2024 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 @@ -28,9 +28,6 @@ COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at namespace Xceed.Document.NET { - /// - /// Represents a document paragraph. - /// public class Paragraph : InsertBeforeOrAfter { #region Internal Members @@ -71,6 +68,9 @@ public class Paragraph : InsertBeforeOrAfter private static float DefaultImageHorizontalResolution = 96f; private static float DefaultImageVerticalResolution = 96f; + + private bool m_removed = false; // this will be used when a paragraph is removed via RemoveText method + #endregion #region Private Properties @@ -131,28 +131,6 @@ public ListItemType ListItemType get; set; } - /// - /// Returns a list of all Pictures in a Paragraph. - /// - /// - /// Returns a list of all Pictures in a Paragraph. - /// - /// pictures = p.Pictures; - /// - /// // Save this document. - /// document.Save(); - /// } - /// ]]> - /// - /// public List Pictures { get @@ -174,30 +152,6 @@ public List Pictures } } - /// - /// Returns a list of Hyperlinks in this Paragraph. - /// - /// - /// - /// // Create a document. - /// using (var document = DocX.Load(@"Test.docx")) - /// { - /// // Get the first Paragraph in this document. - /// Paragraph p = document.Paragraphs[0]; - /// - /// // Get all of the hyperlinks in this Paragraph. - /// ]]> hyperlinks = paragraph.Hyperlinks; - /// - /// // Change the first hyperlinks text and Uri - /// Hyperlink h0 = hyperlinks[0]; - /// h0.Text = "DocX"; - /// h0.Uri = new Uri("http://docx.codeplex.com"); - /// - /// // Save this document. - /// document.Save(); - /// } - /// - /// public List Hyperlinks { get @@ -268,9 +222,6 @@ select h } } - /// - /// The style name of the paragraph. - /// [Obsolete( "This property is obsolete and should no longer be used. Use StyleId instead." )] public string StyleName { @@ -284,9 +235,6 @@ public string StyleName } } - /// - /// The style id of the paragraph. - /// public string StyleId { get @@ -320,9 +268,6 @@ public string StyleId } } - /// - /// Returns a list of field type DocProperty in this document. - /// public List DocumentProperties { get @@ -331,26 +276,6 @@ public List DocumentProperties } } - /// - /// Gets or Sets the Direction of content in this Paragraph. - /// - /// Create a Paragraph with content that flows right to left. Default is left to right. - /// - /// // Create a new document. - /// using (var document = DocX.Create("Test.docx")) - /// { - /// // Create a new Paragraph with the text "Hello World". - /// Paragraph p = document.InsertParagraph("Hello World."); - /// - /// // Make this Paragraph flow right to left. Default is left to right. - /// p.Direction = Direction.RightToLeft; - /// - /// // Save all changes made to this document. - /// document.Save(); - /// } - /// - /// - /// public Direction Direction { get @@ -380,26 +305,6 @@ public Direction Direction } } - /// - /// Get or set the indentation of the first line of this Paragraph. - /// - /// - /// Indent only the first line of a Paragraph. - /// - /// // Create a new document. - /// using (var document = DocX.Create("Test.docx")) - /// { - /// // Create a new Paragraph. - /// Paragraph p = document.InsertParagraph("Line 1\nLine 2\nLine 3"); - /// - /// // Indent only the first line of the Paragraph. - /// p.IndentationFirstLine = 36f; - /// - /// // Save all changes made to this document. - /// document.Save(); - /// } - /// - /// public float IndentationFirstLine { get @@ -437,26 +342,6 @@ public float IndentationFirstLine } } - /// - /// Get or set the indentation of all but the first line of this Paragraph. - /// - /// - /// Indent all but the first line of a Paragraph. - /// - /// // Create a new document. - /// using (var document = DocX.Create("Test.docx")) - /// { - /// // Create a new Paragraph. - /// Paragraph p = document.InsertParagraph("Line 1\nLine 2\nLine 3"); - /// - /// // Indent all but the first line of the Paragraph. - /// p.IndentationHanging = 36f; - /// - /// // Save all changes made to this document. - /// document.Save(); - /// } - /// - /// public float IndentationHanging { get @@ -503,26 +388,6 @@ public float IndentationHanging } } - /// - /// Set the before indentation in pt for this Paragraph. - /// - /// - /// // Indent an entire Paragraph from the left. - /// - /// // Create a new document. - /// using (var document = DocX.Create("Test.docx")) - /// { - /// // Create a new Paragraph. - /// Paragraph p = document.InsertParagraph("Line 1\nLine 2\nLine 3"); - /// - /// // Indent this entire Paragraph from the left. - /// p.IndentationBefore = 36f; - /// - /// // Save all changes made to this document. - /// document.Save(); - ///} - /// - /// public float IndentationBefore { get @@ -562,29 +427,6 @@ public float IndentationBefore } - /// - /// Set the after indentation in pt for this Paragraph. - /// - /// - /// // Indent an entire Paragraph from the right. - /// - /// // Create a new document. - /// using (var document = DocX.Create("Test.docx")) - /// { - /// // Create a new Paragraph. - /// Paragraph p = document.InsertParagraph("Line 1\nLine 2\nLine 3"); - /// - /// // Make the content of this Paragraph flow right to left. - /// p.Direction = Direction.RightToLeft; - /// - /// // Indent this entire Paragraph from the right. - /// p.IndentationAfter = 36f; - /// - /// // Save all changes made to this document. - /// document.Save(); - /// } - /// - /// public float IndentationAfter { get @@ -623,9 +465,6 @@ public float IndentationAfter } } - /// - /// Gets or set this Paragraphs text alignment. - /// public Alignment Alignment { get @@ -667,9 +506,6 @@ public Alignment Alignment } } - /// - /// Gets the text value of this Paragraph. - /// public string Text { // Returns the underlying XElement's Value property. @@ -686,9 +522,6 @@ public string Text } } - /// - /// Gets the formatted text value of this Paragraph. - /// public List MagicText { // Returns the underlying XElement's Value property. @@ -702,24 +535,6 @@ public List MagicText } } - /// - /// For use with Append() and AppendLine() - /// - /// This Paragraph in curent culture - /// - /// Add a new Paragraph with russian text to this document and then set language of text to local culture. - /// - /// // Load a document. - /// using (var document = DocX.Create(@"Test.docx")) - /// { - /// // Insert a new Paragraph with russian text and set curent local culture to it. - /// Paragraph p = document.InsertParagraph("Привет мир!").CurentCulture(); - /// - /// // Save this document. - /// document.Save(); - /// } - /// - /// public Paragraph CurrentCulture() { ApplyTextFormattingProperty( XName.Get( "lang", Document.w.NamespaceName ), @@ -728,9 +543,6 @@ public Paragraph CurrentCulture() return this; } - /// - /// Returns tables following the paragraph. Null if the following element isn't table. - /// public List
FollowingTables { get @@ -878,9 +690,6 @@ public XElement ParagraphNumberProperties } } - /// - /// Indicates if this paragraph is a list element - /// public bool IsListItem { get @@ -890,9 +699,6 @@ public bool IsListItem } } - /// - /// Get the indentation level of the list item - /// public int? IndentLevel { get @@ -970,7 +776,6 @@ internal Paragraph( Document document, XElement xml, int startIndex = -1, Contai { //_startIndex = startIndex; - //// Do not count text from inner AlternateContent //var alternateContentValue = xml.DescendantsAndSelf().FirstOrDefault( x => x.Name.Equals( XName.Get( "AlternateContent", Document.mc.NamespaceName ) ) ); //if( alternateContentValue != null ) //{ @@ -990,10 +795,8 @@ internal Paragraph( Document document, XElement xml, int startIndex = -1, Contai RebuildDocProperties(); - //// Check if this Paragraph references any pStyle elements. //var stylesElements = xml.Descendants( XName.Get( "pStyle", Document.w.NamespaceName ) ); - //// If one or more pStyles are referenced. //if( stylesElements.Count() > 0 ) //{ // Uri style_package_uri = new Uri( "/word/styles.xml", UriKind.Relative ); @@ -1033,38 +836,6 @@ internal Paragraph( XElement newParagraph ) : base( null, newParagraph ) #region Public Methods - /// - /// Insert a new Table before this Paragraph, this Table can be from this document or another document. - /// - /// The Table t to be inserted. - /// A new Table inserted before this Paragraph. - /// - /// Insert a new Table before this Paragraph. - /// - /// // Place holder for a Table. - /// Table t; - /// - /// // Load document a. - /// using (DocX documentA = DocX.Load(@"a.docx")) - /// { - /// // Get the first Table from this document. - /// t = documentA.Tables[0]; - /// } - /// - /// // Load document b. - /// using (DocX documentB = DocX.Load(@"b.docx")) - /// { - /// // Get the first Paragraph in document b. - /// Paragraph p2 = documentB.Paragraphs[0]; - /// - /// // Insert the Table from document a before this Paragraph. - /// Table newTable = p2.InsertTableBeforeSelf(t); - /// - /// // Save all changes made to document b. - /// documentB.Save(); - /// }// Release this document from memory. - /// - /// public override Table InsertTableBeforeSelf( Table t ) { t = base.InsertTableBeforeSelf( t ); @@ -1073,67 +844,11 @@ public override Table InsertTableBeforeSelf( Table t ) return t; } - /// - /// Insert a new Table into this document before this Paragraph. - /// - /// The number of rows this Table should have. - /// The number of columns this Table should have. - /// A new Table inserted before this Paragraph. - /// - /// - /// // Create a new document. - /// using (var document = DocX.Create(@"Test.docx")) - /// { - /// //Insert a Paragraph into this document. - /// Paragraph p = document.InsertParagraph("Hello World", false); - /// - /// // Insert a new Table before this Paragraph. - /// Table newTable = p.InsertTableBeforeSelf(2, 2); - /// newTable.Design = TableDesign.LightShadingAccent2; - /// newTable.Alignment = Alignment.center; - /// - /// // Save all changes made to this document. - /// document.Save(); - /// }// Release this document from memory. - /// - /// public override Table InsertTableBeforeSelf( int rowCount, int columnCount ) { return base.InsertTableBeforeSelf( rowCount, columnCount ); } - /// - /// Insert a new Table after this Paragraph. - /// - /// The Table t to be inserted. - /// A new Table inserted after this Paragraph. - /// - /// Insert a new Table after this Paragraph. - /// - /// // Place holder for a Table. - /// Table t; - /// - /// // Load document a. - /// using (DocX documentA = DocX.Load(@"a.docx")) - /// { - /// // Get the first Table from this document. - /// t = documentA.Tables[0]; - /// } - /// - /// // Load document b. - /// using (DocX documentB = DocX.Load(@"b.docx")) - /// { - /// // Get the first Paragraph in document b. - /// Paragraph p2 = documentB.Paragraphs[0]; - /// - /// // Insert the Table from document a after this Paragraph. - /// Table newTable = p2.InsertTableAfterSelf(t); - /// - /// // Save all changes made to document b. - /// documentB.Save(); - /// }// Release this document from memory. - /// - /// public override Table InsertTableAfterSelf( Table t ) { t = base.InsertTableAfterSelf( t ); @@ -1147,30 +862,6 @@ public override Table InsertTableAfterSelf( Table t ) return t; } - /// - /// Insert a new Table into this document after this Paragraph. - /// - /// The number of rows this Table should have. - /// The number of columns this Table should have. - /// A new Table inserted after this Paragraph. - /// - /// - /// // Create a new document. - /// using (var document = DocX.Create(@"Test.docx")) - /// { - /// //Insert a Paragraph into this document. - /// Paragraph p = document.InsertParagraph("Hello World", false); - /// - /// // Insert a new Table after this Paragraph. - /// Table newTable = p.InsertTableAfterSelf(2, 2); - /// newTable.Design = TableDesign.LightShadingAccent2; - /// newTable.Alignment = Alignment.center; - /// - /// // Save all changes made to this document. - /// document.Save(); - /// }// Release this document from memory. - /// - /// public override Table InsertTableAfterSelf( int rowCount, int columnCount ) { var t = base.InsertTableAfterSelf( rowCount, columnCount ); @@ -1183,12 +874,6 @@ public override Table InsertTableAfterSelf( int rowCount, int columnCount ) return t; } - /// - /// Replaces an existing Picture with a new Picture. - /// - /// The picture object to be replaced. - /// The picture object that should be inserted instead of . - /// The new object that replaces the old one. public Picture ReplacePicture( Picture toBeReplaced, Picture replaceWith ) { var document = this.Document; @@ -1213,40 +898,9 @@ public Picture ReplacePicture( Picture toBeReplaced, Picture replaceWith ) return replacePicture; } - /// - /// Insert a Paragraph before this Paragraph, this Paragraph may have come from the same or another document. - /// - /// The Paragraph to insert. - /// The Paragraph now associated with this document. - /// - /// Take a Paragraph from document a, and insert it into document b before this Paragraph. - /// - /// // Place holder for a Paragraph. - /// Paragraph p; - /// - /// // Load document a. - /// using (DocX documentA = DocX.Load(@"a.docx")) - /// { - /// // Get the first paragraph from this document. - /// p = documentA.Paragraphs[0]; - /// } - /// - /// // Load document b. - /// using (DocX documentB = DocX.Load(@"b.docx")) - /// { - /// // Get the first Paragraph in document b. - /// Paragraph p2 = documentB.Paragraphs[0]; - /// - /// // Insert the Paragraph from document a before this Paragraph. - /// Paragraph newParagraph = p2.InsertParagraphBeforeSelf(p); - /// - /// // Save all changes made to document b. - /// documentB.Save(); - /// }// Release this document from memory. - /// - /// public override Paragraph InsertParagraphBeforeSelf( Paragraph p ) { + this.ValidateInsert(); this.ClearContainerParagraphsCache(); var p2 = base.InsertParagraphBeforeSelf( p ); @@ -1257,29 +911,10 @@ public override Paragraph InsertParagraphBeforeSelf( Paragraph p ) return p2; } - /// - /// Insert a new Paragraph before this Paragraph. - /// - /// The initial text for this new Paragraph. - /// A new Paragraph inserted before this Paragraph. - /// - /// Insert a new paragraph before the first Paragraph in this document. - /// - /// // Create a new document. - /// using (var document = DocX.Create(@"Test.docx")) - /// { - /// // Insert a Paragraph into this document. - /// Paragraph p = document.InsertParagraph("I am a Paragraph", false); - /// - /// p.InsertParagraphBeforeSelf("I was inserted before the next Paragraph."); - /// - /// // Save all changes made to this new document. - /// document.Save(); - /// }// Release this new document form memory. - /// - /// public override Paragraph InsertParagraphBeforeSelf( string text ) { + this.ValidateInsert(); + // Inserting a paragraph at a specific index needs an update of Paragraph cache. this.ClearContainerParagraphsCache(); var p = base.InsertParagraphBeforeSelf( text ); @@ -1290,30 +925,9 @@ public override Paragraph InsertParagraphBeforeSelf( string text ) return p; } - /// - /// Insert a new Paragraph before this Paragraph. - /// - /// The initial text for this new Paragraph. - /// Should this insertion be tracked as a change? - /// A new Paragraph inserted before this Paragraph. - /// - /// Insert a new paragraph before the first Paragraph in this document. - /// - /// // Create a new document. - /// using (var document = DocX.Create(@"Test.docx")) - /// { - /// // Insert a Paragraph into this document. - /// Paragraph p = document.InsertParagraph("I am a Paragraph", false); - /// - /// p.InsertParagraphBeforeSelf("I was inserted before the next Paragraph.", false); - /// - /// // Save all changes made to this new document. - /// document.Save(); - /// }// Release this new document form memory. - /// - /// public override Paragraph InsertParagraphBeforeSelf( string text, bool trackChanges ) { + this.ValidateInsert(); this.ClearContainerParagraphsCache(); var p = base.InsertParagraphBeforeSelf( text, trackChanges ); @@ -1324,34 +938,9 @@ public override Paragraph InsertParagraphBeforeSelf( string text, bool trackChan return p; } - /// - /// Insert a new Paragraph before this Paragraph. - /// - /// The initial text for this new Paragraph. - /// Should this insertion be tracked as a change? - /// The formatting to apply to this insertion. - /// A new Paragraph inserted before this Paragraph. - /// - /// Insert a new paragraph before the first Paragraph in this document. - /// - /// // Create a new document. - /// using (var document = DocX.Create(@"Test.docx")) - /// { - /// // Insert a Paragraph into this document. - /// Paragraph p = document.InsertParagraph("I am a Paragraph", false); - /// - /// Formatting boldFormatting = new Formatting(); - /// boldFormatting.Bold = true; - /// - /// p.InsertParagraphBeforeSelf("I was inserted before the next Paragraph.", false, boldFormatting); - /// - /// // Save all changes made to this new document. - /// document.Save(); - /// }// Release this new document form memory. - /// - /// public override Paragraph InsertParagraphBeforeSelf( string text, bool trackChanges, Formatting formatting ) { + this.ValidateInsert(); this.ClearContainerParagraphsCache(); var p = base.InsertParagraphBeforeSelf( text, trackChanges, formatting ); @@ -1362,55 +951,11 @@ public override Paragraph InsertParagraphBeforeSelf( string text, bool trackChan return p; } - /// - /// Insert a page break before a Paragraph. - /// - /// - /// Insert 2 Paragraphs into a document with a page break between them. - /// - /// using (var document = DocX.Create(@"Test.docx")) - /// { - /// // Insert a new Paragraph. - /// Paragraph p1 = document.InsertParagraph("Paragraph 1", false); - /// - /// // Insert a new Paragraph. - /// Paragraph p2 = document.InsertParagraph("Paragraph 2", false); - /// - /// // Insert a page break before Paragraph two. - /// p2.InsertPageBreakBeforeSelf(); - /// - /// // Save this document. - /// document.Save(); - /// }// Release this document from memory. - /// - /// public override void InsertPageBreakBeforeSelf() { base.InsertPageBreakBeforeSelf(); } - /// - /// Insert a page break after a Paragraph. - /// - /// - /// Insert 2 Paragraphs into a document with a page break between them. - /// - /// using (var document = DocX.Create(@"Test.docx")) - /// { - /// // Insert a new Paragraph. - /// Paragraph p1 = document.InsertParagraph("Paragraph 1", false); - /// - /// // Insert a page break after this Paragraph. - /// p1.InsertPageBreakAfterSelf(); - /// - /// // Insert a new Paragraph. - /// Paragraph p2 = document.InsertParagraph("Paragraph 2", false); - /// - /// // Save this document. - /// document.Save(); - /// }// Release this document from memory. - /// - /// public override void InsertPageBreakAfterSelf() { base.InsertPageBreakAfterSelf(); @@ -1422,12 +967,6 @@ public Paragraph InsertHyperlink( int index, Hyperlink h ) return InsertHyperlink( h, index ); } - /// - /// This function inserts a hyperlink into a Paragraph at a specified character index. - /// - /// The index to insert at. - /// The hyperlink to insert. - /// The Paragraph with the Hyperlink inserted at the specified index. public Paragraph InsertHyperlink( Hyperlink h, int index = 0 ) { @@ -1496,32 +1035,6 @@ splitRun[ 1 ] return this; } - /// - /// Remove the Hyperlink at the provided index. The first hyperlink is at index 0. - /// Using a negative index or an index greater than the index of the last hyperlink will cause an ArgumentOutOfRangeException() to be thrown. - /// - /// The index of the hyperlink to be removed. - /// - /// - /// // Crete a new document. - /// using (var document = DocX.Create("Test.docx")) - /// { - /// // Add a Hyperlink into this document. - /// Hyperlink h = document.AddHyperlink("link", new Uri("http://www.google.com")); - /// - /// // Insert a new Paragraph into the document. - /// Paragraph p1 = document.InsertParagraph("AC"); - /// - /// // Insert the hyperlink into this Paragraph. - /// p1.InsertHyperlink(1, h); - /// Assert.IsTrue(p1.Text == "AlinkC"); // Make sure the hyperlink was inserted correctly; - /// - /// // Remove the hyperlink - /// p1.RemoveHyperlink(0); - /// Assert.IsTrue(p1.Text == "AC"); // Make sure the hyperlink was removed correctly; - /// } - /// - /// public void RemoveHyperlink( int index ) { // Dosen't make sense to remove a Hyperlink at a negative index. @@ -1538,40 +1051,9 @@ public void RemoveHyperlink( int index ) throw new ArgumentOutOfRangeException(); } - /// - /// Insert a Paragraph after this Paragraph, this Paragraph may have come from the same or another document. - /// - /// The Paragraph to insert. - /// The Paragraph now associated with this document. - /// - /// Take a Paragraph from document a, and insert it into document b after this Paragraph. - /// - /// // Place holder for a Paragraph. - /// Paragraph p; - /// - /// // Load document a. - /// using (DocX documentA = DocX.Load(@"a.docx")) - /// { - /// // Get the first paragraph from this document. - /// p = documentA.Paragraphs[0]; - /// } - /// - /// // Load document b. - /// using (DocX documentB = DocX.Load(@"b.docx")) - /// { - /// // Get the first Paragraph in document b. - /// Paragraph p2 = documentB.Paragraphs[0]; - /// - /// // Insert the Paragraph from document a after this Paragraph. - /// Paragraph newParagraph = p2.InsertParagraphAfterSelf(p); - /// - /// // Save all changes made to document b. - /// documentB.Save(); - /// }// Release this document from memory. - /// - /// public override Paragraph InsertParagraphAfterSelf( Paragraph p ) { + this.ValidateInsert(); this.ClearContainerParagraphsCache(); var p2 = base.InsertParagraphAfterSelf( p ); @@ -1580,34 +1062,9 @@ public override Paragraph InsertParagraphAfterSelf( Paragraph p ) return p2; } - /// - /// Insert a new Paragraph after this Paragraph. - /// - /// The initial text for this new Paragraph. - /// Should this insertion be tracked as a change? - /// The formatting to apply to this insertion. - /// A new Paragraph inserted after this Paragraph. - /// - /// Insert a new paragraph after the first Paragraph in this document. - /// - /// // Create a new document. - /// using (var document = DocX.Create(@"Test.docx")) - /// { - /// // Insert a Paragraph into this document. - /// Paragraph p = document.InsertParagraph("I am a Paragraph", false); - /// - /// Formatting boldFormatting = new Formatting(); - /// boldFormatting.Bold = true; - /// - /// p.InsertParagraphAfterSelf("I was inserted after the previous Paragraph.", false, boldFormatting); - /// - /// // Save all changes made to this new document. - /// document.Save(); - /// }// Release this new document form memory. - /// - /// public override Paragraph InsertParagraphAfterSelf( string text, bool trackChanges, Formatting formatting ) { + this.ValidateInsert(); this.ClearContainerParagraphsCache(); var p = base.InsertParagraphAfterSelf( text, trackChanges, formatting ); @@ -1616,30 +1073,9 @@ public override Paragraph InsertParagraphAfterSelf( string text, bool trackChang return p; } - /// - /// Insert a new Paragraph after this Paragraph. - /// - /// The initial text for this new Paragraph. - /// Should this insertion be tracked as a change? - /// A new Paragraph inserted after this Paragraph. - /// - /// Insert a new paragraph after the first Paragraph in this document. - /// - /// // Create a new document. - /// using (var document = DocX.Create(@"Test.docx")) - /// { - /// // Insert a Paragraph into this document. - /// Paragraph p = document.InsertParagraph("I am a Paragraph", false); - /// - /// p.InsertParagraphAfterSelf("I was inserted after the previous Paragraph.", false); - /// - /// // Save all changes made to this new document. - /// document.Save(); - /// }// Release this new document form memory. - /// - /// public override Paragraph InsertParagraphAfterSelf( string text, bool trackChanges ) { + this.ValidateInsert(); this.ClearContainerParagraphsCache(); var p = base.InsertParagraphAfterSelf( text, trackChanges ); @@ -1648,29 +1084,9 @@ public override Paragraph InsertParagraphAfterSelf( string text, bool trackChang return p; } - /// - /// Insert a new Paragraph after this Paragraph. - /// - /// The initial text for this new Paragraph. - /// A new Paragraph inserted after this Paragraph. - /// - /// Insert a new paragraph after the first Paragraph in this document. - /// - /// // Create a new document. - /// using (var document = DocX.Create(@"Test.docx")) - /// { - /// // Insert a Paragraph into this document. - /// Paragraph p = document.InsertParagraph("I am a Paragraph", false); - /// - /// p.InsertParagraphAfterSelf("I was inserted after the previous Paragraph."); - /// - /// // Save all changes made to this new document. - /// document.Save(); - /// }// Release this new document form memory. - /// - /// public override Paragraph InsertParagraphAfterSelf( string text ) { + this.ValidateInsert(); this.ClearContainerParagraphsCache(); var p = base.InsertParagraphAfterSelf( text ); @@ -1680,27 +1096,6 @@ public override Paragraph InsertParagraphAfterSelf( string text ) } - /// - /// Remove this Paragraph from the document. - /// - /// Should this remove be tracked as a change? - /// - /// Remove a Paragraph from a document and track it as a change. - /// - /// // Create a document using a relative filename. - /// using (var document = DocX.Load(@"C:\Example\Test.docx")) - /// { - /// // Create and Insert a new Paragraph into this document. - /// Paragraph p = document.InsertParagraph("Hello", false); - /// - /// // Remove the Paragraph and track this as a change. - /// p.Remove(true); - /// - /// // Save all changes made to this document. - /// document.Save(); - /// }// Release this document from memory. - /// - /// public void Remove( bool trackChanges ) { var mainContainer = this.GetMainParentContainer(); @@ -1877,118 +1272,11 @@ public void Remove( bool trackChanges ) // return InsertPicture(index, imageID, string.Empty, string.Empty); //} - /// - /// Inserts a specified instance of System.String into a Xceed.Document.NET.Document.Paragraph at a specified index position. - /// - /// - /// - /// // Create a document using a relative filename. - /// using (var document = DocX.Load(@"C:\Example\Test.docx")) - /// { - /// // Create a text formatting. - /// Formatting f = new Formatting(); - /// f.FontColor = Color.Red; - /// f.Size = 30; - /// - /// // Iterate through the Paragraphs in this document. - /// foreach (Paragraph p in document.Paragraphs) - /// { - /// // Insert the string "Start: " at the begining of every Paragraph and flag it as a change. - /// p.InsertText("Start: ", true, f); - /// } - /// - /// // Save all changes made to this document. - /// document.Save(); - /// }// Release this document from memory. - /// - /// - /// - /// Inserting tabs using the \t switch. - /// - /// // Create a document using a relative filename. - /// using (var document = DocX.Load(@"C:\Example\Test.docx")) - /// { - /// // Create a text formatting. - /// Formatting f = new Formatting(); - /// f.FontColor = Color.Red; - /// f.Size = 30; - /// - /// // Iterate through the paragraphs in this document. - /// foreach (Paragraph p in document.Paragraphs) - /// { - /// // Insert the string "\tEnd" at the end of every paragraph and flag it as a change. - /// p.InsertText("\tEnd", true, f); - /// } - /// - /// // Save all changes made to this document. - /// document.Save(); - /// }// Release this document from memory. - /// - /// - /// - /// - /// The System.String to insert. - /// Flag this insert as a change. - /// The text formatting. public void InsertText( string value, bool trackChanges = false, Formatting formatting = null ) { this.InsertText( this.Text.Length, value, trackChanges, formatting ); } - /// - /// Inserts a specified instance of System.String into a Xceed.Document.NET.Document.Paragraph at a specified index position. - /// - /// - /// - /// // Create a document using a relative filename. - /// using (var document = DocX.Load(@"C:\Example\Test.docx")) - /// { - /// // Create a text formatting. - /// Formatting f = new Formatting(); - /// f.FontColor = Color.Red; - /// f.Size = 30; - /// - /// // Iterate through the Paragraphs in this document. - /// foreach (Paragraph p in document.Paragraphs) - /// { - /// // Insert the string "Start: " at the begining of every Paragraph and flag it as a change. - /// p.InsertText(0, "Start: ", true, f); - /// } - /// - /// // Save all changes made to this document. - /// document.Save(); - /// }// Release this document from memory. - /// - /// - /// - /// Inserting tabs using the \t switch. - /// - /// // Create a document using a relative filename. - /// using (var document = DocX.Load(@"C:\Example\Test.docx")) - /// { - /// // Create a text formatting. - /// Formatting f = new Formatting(); - /// f.FontColor = Color.Red; - /// f.Size = 30; - /// - /// // Iterate through the paragraphs in this document. - /// foreach (Paragraph p in document.Paragraphs) - /// { - /// // Insert the string "\tStart:\t" at the begining of every paragraph and flag it as a change. - /// p.InsertText(0, "\tStart:\t", true, f); - /// } - /// - /// // Save all changes made to this document. - /// document.Save(); - /// }// Release this document from memory. - /// - /// - /// - /// - /// The index position of the insertion. - /// The System.String to insert. - /// Flag this insert as a change. - /// The text formatting. public void InsertText( int index, string value, bool trackChanges = false, Formatting formatting = null ) { // Timestamp to mark the start of insert @@ -2132,25 +1420,6 @@ splitRun[ 1 ] this.NeedRefreshIndexes(); } - /// - /// For use with Append() and AppendLine() - /// - /// The CultureInfo for text - /// This Paragraph in curent culture - /// - /// Add a new Paragraph with russian text to this document and then set language of text to local culture. - /// - /// // Load a document. - /// using (var document = DocX.Create(@"Test.docx")) - /// { - /// // Insert a new Paragraph with russian text and set specific culture to it. - /// Paragraph p = document.InsertParagraph("Привет мир").Culture(CultureInfo.CreateSpecificCulture("ru-RU")); - /// - /// // Save this document. - /// document.Save(); - /// } - /// - /// public Paragraph Culture( CultureInfo culture ) { this.ApplyTextFormattingProperty( XName.Get( "lang", Document.w.NamespaceName ), @@ -2160,25 +1429,6 @@ public Paragraph Culture( CultureInfo culture ) return this; } - /// - /// Append text to this Paragraph. - /// - /// The text to append. - /// This Paragraph with the new text appened. - /// - /// Add a new Paragraph to this document and then append some text to it. - /// - /// // Load a document. - /// using (var document = DocX.Create(@"Test.docx")) - /// { - /// // Insert a new Paragraph and Append some text to it. - /// Paragraph p = document.InsertParagraph().Append("Hello World!!!"); - /// - /// // Save this document. - /// document.Save(); - /// } - /// - /// public Paragraph Append( string text ) { var newRuns = HelperFunctions.FormatInput( text, null ); @@ -2191,32 +1441,6 @@ public Paragraph Append( string text ) return this; } - /// - /// Append text to this Paragraph and apply the provided format - /// - /// The text to append. - /// The format to use. - /// This Paragraph with the new text appended. - /// - /// Add a new Paragraph to this document, append some text to it and apply the provided format. - /// - /// // Load a document. - /// using (var document = DocX.Create(@"Test.docx")) - /// { - /// // Prepare format to use - /// Formatting format = new Formatting(); - /// format.Bold = true; - /// format.Size = 18; - /// format.FontColor = Color.Blue; - /// - /// // Insert a new Paragraph and append some text to it with the custom format - /// Paragraph p = document.InsertParagraph().Append("Hello World!!!", format); - /// - /// // Save this document. - /// document.Save(); - /// } - /// - /// public Paragraph Append( string text, Formatting format ) { // Text @@ -2309,31 +1533,6 @@ public Paragraph Append( string text, Formatting format ) return this; } - /// - /// Append a hyperlink to a Paragraph. - /// - /// The hyperlink to append. - /// The Paragraph with the hyperlink appended. - /// - /// Creates a Paragraph with some text and a hyperlink. - /// - /// // Create a document. - /// using (var document = DocX.Create(@"Test.docx")) - /// { - /// // Add a hyperlink to this document. - /// Hyperlink h = document.AddHyperlink("Google", new Uri("http://www.google.com")); - /// - /// // Add a new Paragraph to this document. - /// Paragraph p = document.InsertParagraph(); - /// p.Append("My favourite search engine is "); - /// p.AppendHyperlink(h); - /// p.Append(", I think it's great."); - /// - /// // Save all changes made to this document. - /// document.Save(); - /// } - /// - /// public Paragraph AppendHyperlink( Hyperlink h ) { // Convert the path of this mainPart to its equilivant rels file path. @@ -2358,37 +1557,6 @@ public Paragraph AppendHyperlink( Hyperlink h ) return this; } - /// - /// Add an image to a document, create a custom view of that image (picture) and then insert it into a Paragraph using append. - /// - /// The Picture to append. - /// The Paragraph with the Picture now appended. - /// - /// Add an image to a document, create a custom view of that image (picture) and then insert it into a Paragraph using append. - /// - /// using (var document = DocX.Create("Test.docx")) - /// { - /// // Add an image to the document. - /// Image i = document.AddImage(@"Image.jpg"); - /// - /// // Create a picture i.e. (A custom view of an image) - /// Picture p = i.CreatePicture(); - /// p.FlipHorizontal = true; - /// p.Rotation = 10; - /// - /// // Create a new Paragraph. - /// Paragraph par = document.InsertParagraph(); - /// - /// // Append content to the Paragraph. - /// par.Append("Here is a cool picture") - /// .AppendPicture(p) - /// .Append(" don't you think so?"); - /// - /// // Save all changes made to this document. - /// document.Save(); - /// } - /// - /// public Paragraph AppendPicture( Picture p ) { // Convert the path of this mainPart to its equilivant rels file path. @@ -2512,25 +1680,6 @@ public Paragraph PreviousParagraph } } - /// - /// Add an equation to a document. - /// - /// The Equation to append. - /// The alignment of the equation. - /// The Paragraph with the Equation now appended. - /// - /// Add an equation to a document. - /// - /// using (var document = DocX.Create("Test.docx")) - /// { - /// // Add an equation to the document. - /// document.AddEquation("x=y+z"); - /// - /// // Save all changes made to this document. - /// document.Save(); - /// } - /// - /// public Paragraph AppendEquation( String equation, Alignment align = Alignment.center ) { var alignString = string.Empty; @@ -2587,63 +1736,6 @@ public Paragraph AppendEquation( String equation, Alignment align = Alignment.ce return this; } - /// - /// Insert a Picture into a Paragraph at the given text index. - /// If no index is provided defaults to 0. - /// - /// The Picture to insert. - /// The text index to insert at. - /// The modified Paragraph. - /// - /// - ///Load test document. - ///using (var document = DocX.Create("Test.docx")) - ///{ - /// // Add Headers and Footers into this document. - /// document.AddHeaders(); - /// document.AddFooters(); - /// document.DifferentFirstPage = true; - /// document.DifferentOddAndEvenPages = true; - /// - /// // Add an Image to this document. - /// Xceed.Document.NET.Image img = document.AddImage(directory_documents + "purple.png"); - /// - /// // Create a Picture from this Image. - /// Picture pic = img.CreatePicture(); - /// - /// // Main document. - /// Paragraph p0 = document.InsertParagraph("Hello"); - /// p0.InsertPicture(pic, 3); - /// - /// // Header first. - /// Paragraph p1 = document.Headers.first.InsertParagraph("----"); - /// p1.InsertPicture(pic, 2); - /// - /// // Header odd. - /// Paragraph p2 = document.Headers.odd.InsertParagraph("----"); - /// p2.InsertPicture(pic, 2); - /// - /// // Header even. - /// Paragraph p3 = document.Headers.even.InsertParagraph("----"); - /// p3.InsertPicture(pic, 2); - /// - /// // Footer first. - /// Paragraph p4 = document.Footers.first.InsertParagraph("----"); - /// p4.InsertPicture(pic, 2); - /// - /// // Footer odd. - /// Paragraph p5 = document.Footers.odd.InsertParagraph("----"); - /// p5.InsertPicture(pic, 2); - /// - /// // Footer even. - /// Paragraph p6 = document.Footers.even.InsertParagraph("----"); - /// p6.InsertPicture(pic, 2); - /// - /// // Save this document. - /// document.Save(); - ///} - /// - /// public Paragraph InsertPicture( Picture p, int index = 0 ) { // Convert the path of this mainPart to its equilivant rels file path. @@ -2659,8 +1751,8 @@ public Paragraph InsertPicture( Picture p, int index = 0 ) XElement p_xml; if( index == 0 ) { - // Add this picture befor ethe first run. - var firstRun = Xml.Descendants( XName.Get( "r", Document.w.NamespaceName ) ).FirstOrDefault(); + // Add this picture before the first run. + var firstRun = this.Xml.Descendants( XName.Get( "r", Document.w.NamespaceName ) ).FirstOrDefault(); if( firstRun != null ) { firstRun.AddBeforeSelf( p.Xml ); @@ -2670,23 +1762,30 @@ public Paragraph InsertPicture( Picture p, int index = 0 ) } else { - Xml.AddFirst( p.Xml ); - - // Extract the picture back out of the DOM. - p_xml = ( XElement )Xml.FirstNode; + var pPr = this.Xml.Element( XName.Get( "pPr", Document.w.NamespaceName ) ); + if( pPr != null ) + { + pPr.AddAfterSelf( p.Xml ); + p_xml = (XElement)pPr.NextNode; + } + else + { + this.Xml.AddFirst( p.Xml ); + p_xml = (XElement)this.Xml.FirstNode; + } } } else { // Get the first run effected by this Insert - var run = GetFirstRunEffectedByEdit( index ); + var run = this.GetFirstRunEffectedByEdit( index ); if( run == null ) { // Add this picture as the last element. - Xml.Add( p.Xml ); + this.Xml.Add( p.Xml ); // Extract the picture back out of the DOM. - p_xml = ( XElement )Xml.LastNode; + p_xml = ( XElement )this.Xml.LastNode; } else { @@ -2734,14 +1833,6 @@ select e - /// - /// Add a new TabStopPosition in the current paragraph. - /// - /// Specifies the alignment of the Tab stop. - /// Specifies the horizontal position of the tab stop. - /// Specifies the character used to fill in the space created by a tab. - /// The TabStopPosition index to insert at. - /// The modified Paragraph. public Paragraph InsertTabStopPosition( Alignment alignment, float position, TabStopPositionLeader leader = TabStopPositionLeader.none, int index = -1 ) { var pPr = GetOrCreate_pPr(); @@ -2810,75 +1901,16 @@ public Paragraph InsertTabStopPosition( Alignment alignment, float position, Tab return this; } - /// - /// Append text on a new line to this Paragraph. - /// - /// The text to append. - /// This Paragraph with the new text appened. - /// - /// Add a new Paragraph to this document and then append a new line with some text to it. - /// - /// // Load a document. - /// using (var document = DocX.Create(@"Test.docx")) - /// { - /// // Insert a new Paragraph and Append a new line with some text to it. - /// Paragraph p = document.InsertParagraph().AppendLine("Hello World!!!"); - /// - /// // Save this document. - /// document.Save(); - /// } - /// - /// public Paragraph AppendLine( string text ) { return Append( "\n" + text ); } - /// - /// Append a new line to this Paragraph. - /// - /// This Paragraph with a new line appeneded. - /// - /// Add a new Paragraph to this document and then append a new line to it. - /// - /// // Load a document. - /// using (var document = DocX.Create(@"Test.docx")) - /// { - /// // Insert a new Paragraph and Append a new line with some text to it. - /// Paragraph p = document.InsertParagraph().AppendLine(); - /// - /// // Save this document. - /// document.Save(); - /// } - /// - /// public Paragraph AppendLine() { return Append( "\n" ); } - /// - /// For use with Append() and AppendLine() - /// - /// This Paragraph with the last appended text bold. - /// - /// Append text to this Paragraph and then make it bold. - /// - /// // Create a document. - /// using (var document = DocX.Create(@"Test.docx")) - /// { - /// // Insert a new Paragraph. - /// Paragraph p = document.InsertParagraph(); - /// - /// p.Append("I am ") - /// .Append("Bold").Bold() - /// .Append(" I am not"); - /// - /// // Save this document. - /// document.Save(); - /// }// Release this document from memory. - /// - /// 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" ) ); @@ -2886,28 +1918,6 @@ public Paragraph Bold( bool isBold = true ) return this; } - /// - /// For use with Append() and AppendLine() - /// - /// This Paragraph with the last appended text italic. - /// - /// Append text to this Paragraph and then make it italic. - /// - /// // Create a document. - /// using (var document = DocX.Create(@"Test.docx")) - /// { - /// // Insert a new Paragraph. - /// Paragraph p = document.InsertParagraph(); - /// - /// p.Append("I am ") - /// .Append("Italic").Italic() - /// .Append(" I am not"); - /// - /// // Save this document. - /// document.Save(); - /// }// Release this document from memory. - /// - /// 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" ) ); @@ -2915,29 +1925,6 @@ public Paragraph Italic( bool isItalic = true ) return this; } - /// - /// For use with Append() and AppendLine() - /// - /// A color to use on the appended text. - /// This Paragraph with the last appended text colored. - /// - /// Append text to this Paragraph and then color it. - /// - /// // Create a document. - /// using (var document = DocX.Create(@"Test.docx")) - /// { - /// // Insert a new Paragraph. - /// Paragraph p = document.InsertParagraph(); - /// - /// p.Append("I am ") - /// .Append("Blue").Color(Color.Blue) - /// .Append(" I am not"); - /// - /// // Save this document. - /// document.Save(); - /// }// Release this document from memory. - /// - /// public Paragraph Color( Color c ) { ApplyTextFormattingProperty( XName.Get( "color", Document.w.NamespaceName ), string.Empty, new XAttribute( XName.Get( "val", Document.w.NamespaceName ), c.ToHex() ) ); @@ -2945,29 +1932,6 @@ public Paragraph Color( Color c ) return this; } - /// - /// For use with Append() and AppendLine() - /// - /// The underline style to use for the appended text. - /// This Paragraph with the last appended text underlined. - /// - /// Append text to this Paragraph and then underline it. - /// - /// // Create a document. - /// using (var document = DocX.Create(@"Test.docx")) - /// { - /// // Insert a new Paragraph. - /// Paragraph p = document.InsertParagraph(); - /// - /// p.Append("I am ") - /// .Append("Underlined").UnderlineStyle(UnderlineStyle.doubleLine) - /// .Append(" I am not"); - /// - /// // Save this document. - /// document.Save(); - /// }// Release this document from memory. - /// - /// public Paragraph UnderlineStyle( UnderlineStyle underlineStyle ) { string value; @@ -2992,29 +1956,6 @@ public Paragraph UnderlineStyle( UnderlineStyle underlineStyle ) return this; } - /// - /// For use with Append() and AppendLine() - /// - /// The font size to use for the appended text. - /// This Paragraph with the last appended text resized. - /// - /// Append text to this Paragraph and then resize it. - /// - /// // Create a document. - /// using (var document = DocX.Create(@"Test.docx")) - /// { - /// // Insert a new Paragraph. - /// Paragraph p = document.InsertParagraph(); - /// - /// p.Append("I am ") - /// .Append("Big").FontSize(20) - /// .Append(" I am not"); - /// - /// // Save this document. - /// document.Save(); - /// }// Release this document from memory. - /// - /// public Paragraph FontSize( double fontSize ) { double tempSize = fontSize * 2; @@ -3033,39 +1974,11 @@ public Paragraph FontSize( double fontSize ) return this; } - /// - /// For use with Append() and AppendLine() - /// - /// The font to use for the appended text. - /// This Paragraph with the last appended text's font changed. public Paragraph Font( string fontName ) { return Font( new Font( fontName ) ); } - /// - /// For use with Append() and AppendLine() - /// - /// The font to use for the appended text. - /// This Paragraph with the last appended text's font changed. - /// - /// Append text to this Paragraph and then change its font. - /// - /// // Create a document. - /// using (var document = DocX.Create(@"Test.docx")) - /// { - /// // Insert a new Paragraph. - /// Paragraph p = document.InsertParagraph(); - /// - /// p.Append("I am ") - /// .Append("Times new roman").Font(new FontFamily("Times new roman")) - /// .Append(" I am not"); - /// - /// // Save this document. - /// document.Save(); - /// }// Release this document from memory. - /// - /// public Paragraph Font( Font fontFamily ) { ApplyTextFormattingProperty @@ -3084,29 +1997,6 @@ public Paragraph Font( Font fontFamily ) return this; } - /// - /// For use with Append() and AppendLine() - /// - /// The caps style to apply to the last appended text. - /// This Paragraph with the last appended text's caps style changed. - /// - /// Append text to this Paragraph and then set it to full caps. - /// - /// // Create a document. - /// using (var document = DocX.Create(@"Test.docx")) - /// { - /// // Insert a new Paragraph. - /// Paragraph p = document.InsertParagraph(); - /// - /// p.Append("I am ") - /// .Append("Capitalized").CapsStyle(CapsStyle.caps) - /// .Append(" I am not"); - /// - /// // Save this document. - /// document.Save(); - /// }// Release this document from memory. - /// - /// public Paragraph CapsStyle( CapsStyle capsStyle ) { switch( capsStyle ) @@ -3124,29 +2014,6 @@ public Paragraph CapsStyle( CapsStyle capsStyle ) return this; } - /// - /// For use with Append() and AppendLine() - /// - /// The script style to apply to the last appended text. - /// This Paragraph with the last appended text's script style changed. - /// - /// Append text to this Paragraph and then set it to superscript. - /// - /// // Create a document. - /// using (var document = DocX.Create(@"Test.docx")) - /// { - /// // Insert a new Paragraph. - /// Paragraph p = document.InsertParagraph(); - /// - /// p.Append("I am ") - /// .Append("superscript").Script(Script.superscript) - /// .Append(" I am not"); - /// - /// // Save this document. - /// document.Save(); - /// }// Release this document from memory. - /// - /// public Paragraph Script( Script script ) { switch( script ) @@ -3164,29 +2031,6 @@ public Paragraph Script( Script script ) return this; } - /// - /// For use with Append() and AppendLine() - /// - ///The highlight to apply to the last appended text. - /// This Paragraph with the last appended text highlighted. - /// - /// Append text to this Paragraph and then highlight it. - /// - /// // Create a document. - /// using (var document = DocX.Create(@"Test.docx")) - /// { - /// // Insert a new Paragraph. - /// Paragraph p = document.InsertParagraph(); - /// - /// p.Append("I am ") - /// .Append("highlighted").Highlight(Highlight.green) - /// .Append(" I am not"); - /// - /// // Save this document. - /// document.Save(); - /// }// Release this document from memory. - /// - /// public Paragraph Highlight( Highlight highlight ) { ApplyTextFormattingProperty( XName.Get( "highlight", Document.w.NamespaceName ), string.Empty, new XAttribute( XName.Get( "val", Document.w.NamespaceName ), highlight.ToString() ) ); @@ -3272,29 +2116,6 @@ public Paragraph Border( Border border ) return this; } - /// - /// For use with Append() and AppendLine() - /// - /// The miscellaneous property to set. - /// This Paragraph with the last appended text changed by a miscellaneous property. - /// - /// Append text to this Paragraph and then apply a miscellaneous property. - /// - /// // Create a document. - /// using (var document = DocX.Create(@"Test.docx")) - /// { - /// // Insert a new Paragraph. - /// Paragraph p = document.InsertParagraph(); - /// - /// p.Append("I am ") - /// .Append("outlined").Misc(Misc.outline) - /// .Append(" I am not"); - /// - /// // Save this document. - /// document.Save(); - /// }// Release this document from memory. - /// - /// public Paragraph Misc( Misc misc ) { switch( misc ) @@ -3328,29 +2149,6 @@ public Paragraph Misc( Misc misc ) return this; } - /// - /// For use with Append() and AppendLine() - /// - /// The strike through style to used on the last appended text. - /// This Paragraph with the last appended text striked. - /// - /// Append text to this Paragraph and then strike it. - /// - /// // Create a document. - /// using (var document = DocX.Create(@"Test.docx")) - /// { - /// // Insert a new Paragraph. - /// Paragraph p = document.InsertParagraph(); - /// - /// p.Append("I am ") - /// .Append("striked").StrikeThrough(StrikeThrough.doubleStrike) - /// .Append(" I am not"); - /// - /// // Save this document. - /// document.Save(); - /// }// Release this document from memory. - /// - /// public Paragraph StrikeThrough( StrikeThrough strikeThrough ) { string value; @@ -3371,29 +2169,6 @@ public Paragraph StrikeThrough( StrikeThrough strikeThrough ) return this; } - /// - /// For use with Append() and AppendLine() - /// - /// The underline color to use, if no underline is set, a single line will be used. - /// This Paragraph with the last appended text underlined in a color. - /// - /// Append text to this Paragraph and then underline it using a color. - /// - /// // Create a document. - /// using (var document = DocX.Create(@"Test.docx")) - /// { - /// // Insert a new Paragraph. - /// Paragraph p = document.InsertParagraph(); - /// - /// p.Append("I am ") - /// .Append("color underlined").UnderlineStyle(UnderlineStyle.dotted).UnderlineColor(Color.Orange) - /// .Append(" I am not"); - /// - /// // Save this document. - /// document.Save(); - /// }// Release this document from memory. - /// - /// public Paragraph UnderlineColor( Color underlineColor ) { foreach( XElement run in _runs ) @@ -3419,28 +2194,6 @@ public Paragraph UnderlineColor( Color underlineColor ) return this; } - /// - /// For use with Append() and AppendLine() - /// - /// This Paragraph with the last appended text hidden. - /// - /// Append text to this Paragraph and then hide it. - /// - /// // Create a document. - /// using (var document = DocX.Create(@"Test.docx")) - /// { - /// // Insert a new Paragraph. - /// Paragraph p = document.InsertParagraph(); - /// - /// p.Append("I am ") - /// .Append("hidden").Hide() - /// .Append(" I am not"); - /// - /// // Save this document. - /// document.Save(); - /// }// Release this document from memory. - /// - /// public Paragraph Hide() { ApplyTextFormattingProperty( XName.Get( "vanish", Document.w.NamespaceName ), string.Empty, null ); @@ -3606,42 +2359,6 @@ public Paragraph PercentageScale( float percentageScale ) return this; } - /// - /// Append a field of type document property, this field will display the custom property cp, at the end of this paragraph. - /// - /// The custom property to display. - /// The formatting to use for this text. - /// - /// - /// Create, add and display a custom property in a document. - /// - /// // Load a document. - ///using (var document = DocX.Create("CustomProperty_Add.docx")) - ///{ - /// // Add a few Custom Properties to this document. - /// document.AddCustomProperty(new CustomProperty("fname", "cathal")); - /// document.AddCustomProperty(new CustomProperty("age", 24)); - /// document.AddCustomProperty(new CustomProperty("male", true)); - /// document.AddCustomProperty(new CustomProperty("newyear2012", new DateTime(2012, 1, 1))); - /// document.AddCustomProperty(new CustomProperty("fav_num", 3.141592)); - /// - /// // Insert a new Paragraph and append a load of DocProperties. - /// Paragraph p = document.InsertParagraph("fname: ") - /// .AppendDocProperty(document.CustomProperties["fname"]) - /// .Append(", age: ") - /// .AppendDocProperty(document.CustomProperties["age"]) - /// .Append(", male: ") - /// .AppendDocProperty(document.CustomProperties["male"]) - /// .Append(", newyear2012: ") - /// .AppendDocProperty(document.CustomProperties["newyear2012"]) - /// .Append(", fav_num: ") - /// .AppendDocProperty(document.CustomProperties["fav_num"]); - /// - /// // Save the changes to the document. - /// document.Save(); - ///} - /// - /// public Paragraph AppendDocProperty( CustomProperty cp, bool trackChanges = false, Formatting f = null ) { this.InsertDocProperty( cp, trackChanges, f ); @@ -3649,41 +2366,6 @@ public Paragraph AppendDocProperty( CustomProperty cp, bool trackChanges = false return this; } - /// - /// Insert a field of type document property, this field will display the custom property cp, at the end of this paragraph. - /// - /// The custom property to display. - /// if the changes are tracked. - /// The formatting to use for this text. - /// - /// Create, add and display a custom property in a document. - /// - /// // Load a document - /// using (var document = DocX.Create(@"Test.docx")) - /// { - /// // Create a custom property. - /// CustomProperty name = new CustomProperty("name", "Cathal Coffey"); - /// - /// // Add this custom property to this document. - /// document.AddCustomProperty(name); - /// - /// // Create a text formatting. - /// Formatting f = new Formatting(); - /// f.Bold = true; - /// f.Size = 14; - /// f.StrikeThrough = StrickThrough.strike; - /// - /// // Insert a new paragraph. - /// Paragraph p = document.InsertParagraph("Author: ", false, f); - /// - /// // Insert a field of type document property to display the custom property name and track this change. - /// p.InsertDocProperty(name, true, f); - /// - /// // Save all changes made to this document. - /// document.Save(); - /// }// Release this document from memory. - /// - /// public DocProperty InsertDocProperty( CustomProperty cp, bool trackChanges = false, Formatting f = null ) { XElement f_xml = null; @@ -3710,32 +2392,6 @@ public DocProperty InsertDocProperty( CustomProperty cp, bool trackChanges = fal return new DocProperty( this.Document, xml ); } - /// - /// Removes characters from a Xceed.Document.NET.Document.Paragraph. - /// - /// - /// - /// // Create a document using a relative filename. - /// using (var document = DocX.Load(@"C:\Example\Test.docx")) - /// { - /// // Iterate through the paragraphs - /// foreach (Paragraph p in document.Paragraphs) - /// { - /// // Remove the first two characters from every paragraph - /// p.RemoveText(0, 2, false); - /// } - /// - /// // Save all changes made to this document. - /// document.Save(); - /// }// Release this document from memory. - /// - /// - /// - /// - /// The position to begin deleting characters. - /// The number of characters to delete - /// Track changes - /// Remove empty paragraph public void RemoveText( int index, int count, bool trackChanges = false, bool removeEmptyParagraph = true ) { if( count == 0 ) @@ -3842,7 +2498,10 @@ public void RemoveText( int index, int count, bool trackChanges = false, bool re canRemove &= parentElement.Descendants( XName.Get( "drawing", Document.w.NamespaceName ) ).Count() == 0; if( canRemove ) + { parentElement.Remove(); + m_removed = true; + } } } while( processed < count ); @@ -3857,90 +2516,11 @@ public void RemoveText( int index, int count, bool trackChanges = false, bool re this.NeedRefreshIndexes(); } - - /// - /// Removes characters from a Xceed.Document.NET.Document.Paragraph. - /// - /// - /// - /// // Create a document using a relative filename. - /// using (var document = DocX.Load(@"C:\Example\Test.docx")) - /// { - /// // Iterate through the paragraphs - /// foreach (Paragraph p in document.Paragraphs) - /// { - /// // Remove all but the first 2 characters from this Paragraph. - /// p.RemoveText(2, false); - /// } - /// - /// // Save all changes made to this document. - /// document.Save(); - /// }// Release this document from memory. - /// - /// - /// - /// - /// The position to begin deleting characters. - /// Track changes public void RemoveText( int index, bool trackChanges = false ) { this.RemoveText( index, Text.Length - index, trackChanges ); } - /// - /// Replaces all occurrences of a specified System.String in this instance, with another specified System.String. - /// - /// - /// - /// // Load a document using a relative filename. - /// using (var document = DocX.Load(@"C:\Example\Test.docx")) - /// { - /// // The formatting to match. - /// Formatting matchFormatting = new Formatting(); - /// matchFormatting.Size = 10; - /// matchFormatting.Italic = true; - /// matchFormatting.FontFamily = new FontFamily("Times New Roman"); - /// - /// // The formatting to apply to the inserted text. - /// Formatting newFormatting = new Formatting(); - /// newFormatting.Size = 22; - /// newFormatting.UnderlineStyle = UnderlineStyle.dotted; - /// newFormatting.Bold = true; - /// - /// // Iterate through the paragraphs in this document. - /// foreach (Paragraph p in document.Paragraphs) - /// { - /// /* - /// * Replace all instances of the string "wrong" with the string "right" and ignore case. - /// * Each inserted instance of "wrong" should use the Formatting newFormatting. - /// * Only replace an instance of "wrong" if it is Size 10, Italic and Times New Roman. - /// * SubsetMatch means that the formatting must contain all elements of the match formatting, - /// * but it can also contain additional formatting for example Color, UnderlineStyle, etc. - /// * ExactMatch means it must not contain additional formatting. - /// */ - /// p.ReplaceText("wrong", "right", false, RegexOptions.IgnoreCase, newFormatting, matchFormatting, MatchFormattingOptions.SubsetMatch); - /// } - /// - /// // Save all changes made to this document. - /// document.Save(); - /// }// Release this document from memory. - /// - /// - /// - /// - /// - /// - /// A System.String to replace all occurrences of oldValue. - /// A System.String to be replaced. - /// A bitwise OR combination of RegexOption enumeration options. - /// Track changes - /// The formatting to apply to the text being inserted. - /// The formatting that the text must match in order to be replaced. - /// How should formatting be matched? - /// True if the oldValue needs to be escaped, otherwise false. If it represents a valid RegEx pattern this should be false. - /// True if RegEx-like replace should be performed, i.e. if newValue contains RegEx substitutions. Does not perform named-group substitutions (only numbered groups). - /// Remove empty paragraph - /// [Obsolete("BarChart() is obsolete. Use Document.AddChart() instead.")] [Obsolete( "ReplaceText() with many parameters is obsolete. Use ReplaceText() with a StringReplaceTextOptions parameter instead." )] public void ReplaceText( string searchValue, string newValue, @@ -4221,6 +2801,8 @@ public bool ReplaceText( StringReplaceTextOptions replaceTextOptions ) + + public bool ReplaceText( FunctionReplaceTextOptions replaceTextOptions ) { if( string.IsNullOrEmpty( replaceTextOptions.FindPattern ) ) @@ -4298,80 +2880,11 @@ public bool ReplaceTextWithObject( ObjectReplaceTextOptions replaceTextOptions ) return replaceSuccess; } - /// - /// Find all instances of a string in this paragraph and return their indexes in a List. - /// - /// The string to find - /// A list of indexes. - /// - /// Find all instances of Hello in this document and insert 'don't' in frount of them. - /// - /// // Load a document - /// using (var document = DocX.Load(@"Test.docx")) - /// { - /// // Loop through the paragraphs in this document. - /// foreach(Paragraph p in document.Paragraphs) - /// { - /// // Find all instances of 'go' in this paragraph. - /// ]]> gos = document.FindAll("go"); - /// - /// /* - /// * Insert 'don't' in frount of every instance of 'go' in this document to produce 'don't go'. - /// * An important trick here is to do the inserting in reverse document order. If you inserted - /// * in document order, every insert would shift the index of the remaining matches. - /// */ - /// gos.Reverse(); - /// foreach (int index in gos) - /// { - /// p.InsertText(index, "don't ", false); - /// } - /// } - /// - /// // Save all changes made to this document. - /// document.Save(); - /// }// Release this document from memory. - /// - /// public List FindAll( string str ) { return this.FindAll( str, RegexOptions.None ); } - /// - /// Find all instances of a string in this paragraph and return their indexes in a List. - /// - /// The string to find - /// The options to use when finding a string match. - /// A list of indexes. - /// - /// Find all instances of Hello in this document and insert 'don't' in frount of them. - /// - /// // Load a document - /// using (var document = DocX.Load(@"Test.docx")) - /// { - /// // Loop through the paragraphs in this document. - /// foreach(Paragraph p in document.Paragraphs) - /// { - /// // Find all instances of 'go' in this paragraph (Ignore case). - /// ]]> gos = document.FindAll("go", RegexOptions.IgnoreCase); - /// - /// /* - /// * Insert 'don't' in frount of every instance of 'go' in this document to produce 'don't go'. - /// * An important trick here is to do the inserting in reverse document order. If you inserted - /// * in document order, every insert would shift the index of the remaining matches. - /// */ - /// gos.Reverse(); - /// foreach (int index in gos) - /// { - /// p.InsertText(index, "don't ", false); - /// } - /// } - /// - /// // Save all changes made to this document. - /// document.Save(); - /// }// Release this document from memory. - /// - /// public List FindAll( string str, RegexOptions options ) { var mc = Regex.Matches( this.Text, Regex.Escape( str ), options ); @@ -4385,12 +2898,6 @@ select m.Index return query; } - /// - /// Find all unique instances of the given Regex Pattern - /// - /// - /// - /// public List FindAllByPattern( string str, RegexOptions options ) { MatchCollection mc = Regex.Matches( this.Text, str, options ); @@ -4404,40 +2911,6 @@ select m.Value return query; } - /// - /// Insert a PageNumber place holder into a Paragraph. - /// This place holder should only be inserted into a Header or Footer Paragraph. - /// Word will not automatically update this field if it is inserted into a document level Paragraph. - /// - /// The PageNumberFormat can be normal: (1, 2, ...) or Roman: (I, II, ...) - /// The text index to insert this PageNumber place holder at. - /// - /// - /// // Create a new document. - /// using (var document = DocX.Create(@"Test.docx")) - /// { - /// // Add Headers to the document. - /// document.AddHeaders(); - /// - /// // Get the default Header. - /// Header header = document.Headers.odd; - /// - /// // Insert a Paragraph into the Header. - /// Paragraph p0 = header.InsertParagraph("Page ( of )"); - /// - /// // Insert place holders for PageNumber and PageCount into the Header. - /// // Word will replace these with the correct value for each Page. - /// p0.InsertPageNumber(PageNumberFormat.normal, 6); - /// p0.InsertPageCount(PageNumberFormat.normal, 11); - /// - /// // Save the document. - /// document.Save(); - /// } - /// - /// - /// - /// - /// public void InsertPageNumber( PageNumberFormat? pnf = null, int index = 0 ) { var fldSimple = this.SetPageNumberFields( pnf ); @@ -4464,40 +2937,6 @@ splitEdit[ 1 ] this.NeedRefreshIndexes(); } - /// - /// Append a PageNumber place holder onto the end of a Paragraph. - /// - /// The PageNumberFormat can be normal: (1, 2, ...) or Roman: (I, II, ...) - /// - /// - /// // Create a new document. - /// using (var document = DocX.Create(@"Test.docx")) - /// { - /// // Add Headers to the document. - /// document.AddHeaders(); - /// - /// // Get the default Header. - /// Header header = document.Headers.odd; - /// - /// // Insert a Paragraph into the Header. - /// Paragraph p0 = header.InsertParagraph(); - /// - /// // Appemd place holders for PageNumber and PageCount into the Header. - /// // Word will replace these with the correct value for each Page. - /// p0.Append("Page ("); - /// p0.AppendPageNumber(PageNumberFormat.normal); - /// p0.Append(" of "); - /// p0.AppendPageCount(PageNumberFormat.normal); - /// p0.Append(")"); - /// - /// // Save the document. - /// document.Save(); - /// } - /// - /// - /// - /// - /// public Paragraph AppendPageNumber( PageNumberFormat? pnf = null ) { var fldSimple = this.SetPageNumberFields( pnf ); @@ -4510,40 +2949,6 @@ public Paragraph AppendPageNumber( PageNumberFormat? pnf = null ) return this; } - /// - /// Insert a PageCount place holder into a Paragraph. - /// This place holder should only be inserted into a Header or Footer Paragraph. - /// Word will not automatically update this field if it is inserted into a document level Paragraph. - /// - /// The PageNumberFormat can be normal: (1, 2, ...) or Roman: (I, II, ...) - /// The text index to insert this PageCount place holder at. - /// - /// - /// // Create a new document. - /// using (var document = DocX.Create(@"Test.docx")) - /// { - /// // Add Headers to the document. - /// document.AddHeaders(); - /// - /// // Get the default Header. - /// Header header = document.Headers.odd; - /// - /// // Insert a Paragraph into the Header. - /// Paragraph p0 = header.InsertParagraph("Page ( of )"); - /// - /// // Insert place holders for PageNumber and PageCount into the Header. - /// // Word will replace these with the correct value for each Page. - /// p0.InsertPageNumber(PageNumberFormat.normal, 6); - /// p0.InsertPageCount(PageNumberFormat.normal, 11); - /// - /// // Save the document. - /// document.Save(); - /// } - /// - /// - /// - /// - /// public void InsertPageCount( PageNumberFormat? pnf = null, int index = 0, bool useSectionPageCount = true ) { var fldSimple = this.SetPageCountFields( pnf, useSectionPageCount ); @@ -4568,40 +2973,6 @@ splitEdit[ 1 ] this.NeedRefreshIndexes(); } - /// - /// Append a PageCount place holder onto the end of a Paragraph. - /// - /// The PageNumberFormat can be normal: (1, 2, ...) or Roman: (I, II, ...) - /// - /// - /// // Create a new document. - /// using (var document = DocX.Create(@"Test.docx")) - /// { - /// // Add Headers to the document. - /// document.AddHeaders(); - /// - /// // Get the default Header. - /// Header header = document.Headers.odd; - /// - /// // Insert a Paragraph into the Header. - /// Paragraph p0 = header.InsertParagraph(); - /// - /// // Appemd place holders for PageNumber and PageCount into the Header. - /// // Word will replace these with the correct value for each Page. - /// p0.Append("Page ("); - /// p0.AppendPageNumber(PageNumberFormat.normal); - /// p0.Append(" of "); - /// p0.AppendPageCount(PageNumberFormat.normal); - /// p0.Append(")"); - /// - /// // Save the document. - /// document.Save(); - /// } - /// - /// - /// - /// - /// public Paragraph AppendPageCount( PageNumberFormat? pnf = null, bool useSectionPageCount = false ) { var fldSimple = this.SetPageCountFields( pnf, useSectionPageCount ); @@ -4615,11 +2986,6 @@ public Paragraph AppendPageCount( PageNumberFormat? pnf = null, bool useSectionP } - /// - /// Set the Line spacing for this paragraph manually. - /// - /// The type of spacing to be set, can be either Before, After or Line (Standard line spacing). - /// A float value of the amount of spacing. Equals the value that will be set in Word using the "Line and Paragraph spacing" button. public void SetLineSpacing( LineSpacingType spacingType, float spacingFloat ) { var pPr = this.GetOrCreate_pPr(); @@ -4637,10 +3003,6 @@ public void SetLineSpacing( LineSpacingType spacingType, float spacingFloat ) spacing.SetAttributeValue( XName.Get( spacingTypeAttribute, Document.w.NamespaceName ), ( int )( spacingFloat * 20f ) ); } - /// - /// Set the Line spacing for this paragraph using the Auto value. - /// - /// The type of spacing to be set automatically. Using Auto will set both Before and After. None will remove any line spacing. public void SetLineSpacing( LineSpacingTypeAuto spacingTypeAuto ) { var pPr = this.GetOrCreate_pPr(); @@ -4758,7 +3120,6 @@ public IEnumerable GetBookmarks() return bookmarks; } - /// Inserts the provided text at a bookmark location in this Paragraph, using the specified formatting. public void InsertAtBookmark( string toInsert, string bookmarkName, Formatting formatting = null ) { var bookmark = this.Xml.Descendants( XName.Get( "bookmarkStart", Document.w.NamespaceName ) ) @@ -4792,7 +3153,6 @@ public void InsertAtBookmark( string toInsert, string bookmarkName, Formatting f } } - /// Replaces the text of the Bookmark in this Paragraph. Equivalent to document.Bookmarks[ "abc" ].SetText("new ABC"); public void ReplaceAtBookmark( string text, string bookmarkName, Formatting formatting = null ) { string bookmarkStartId = null; @@ -4916,11 +3276,6 @@ public void RemoveBookmark( string bookmarkName ) bookmarkEndXml.Remove(); } - /// - /// Paragraph that will be kept on the same page as the next paragraph. - /// - /// - /// public Paragraph KeepWithNextParagraph( bool keepWithNextParagraph = true ) { var pPr = GetOrCreate_pPr(); @@ -4939,11 +3294,6 @@ public Paragraph KeepWithNextParagraph( bool keepWithNextParagraph = true ) return this; } - /// - /// Paragraph with lines that will stay together on the same page. - /// - /// - /// public Paragraph KeepLinesTogether( bool keepLinesTogether = true ) { var pPr = GetOrCreate_pPr(); @@ -5101,10 +3451,6 @@ internal static void SetDefaultValues( XElement pPr ) } } - /// - /// If the pPr element doesent exist it is created, either way it is returned by this function. - /// - /// The pPr element for this Paragraph. internal XElement GetOrCreate_pPr() { // Get the element. @@ -5137,10 +3483,6 @@ internal XElement GetOrCreate_rPr() return rPr; } - /// - /// If the ind element doesent exist it is created, either way it is returned by this function. - /// - /// The ind element for this Paragraphs pPr. internal XElement GetOrCreate_pPr_ind() { // Get the element. @@ -5196,15 +3538,6 @@ internal void ResetBackers() IndentLevelBacker = null; } - /// - /// Create a new Picture. - /// - /// - /// A unique id that identifies an Image embedded in this document. - /// The name of this Picture. - /// The description of this Picture. - /// The width of this Picture. - /// The height of this Picture. 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 ); @@ -5278,13 +3611,6 @@ static internal Picture CreatePicture( Document document, string id, string name return picture; } - /// - /// Creates an Edit either a ins or a del with the specified content and date - /// - /// The type of this edit (ins or del) - /// The time stamp to use for this edit - /// The initial content of this edit - /// internal static XElement CreateEdit( EditType t, DateTime edit_time, object content ) { if( t == EditType.del ) @@ -5407,10 +3733,6 @@ internal void GetFirstRunEffectedByEditRecursive( XElement Xml, int index, ref i } } - /// static internal int GetElementTextLength( XElement xml ) { int count = 0; @@ -6075,6 +4397,14 @@ private void ClearFooterParagraphsCache() footer.ClearParagraphsCache(); } + private void ValidateInsert() + { + if( m_removed ) + { + throw new InvalidOperationException( "Cannot insert before or after a removed paragraph." ); + } + } + @@ -6550,46 +4880,55 @@ internal Container GetMainParentContainer() private Container GetHeaderContainer() { - var header = this.Document.Headers.First; - if( header != null ) + foreach( var section in this.Document.Sections ) { - if( header.PackagePart.Uri == this.PackagePart.Uri ) - return header; - } + var header = section.Headers.First; + if( header != null ) + { + if( header.PackagePart.Uri == this.PackagePart.Uri ) + return header; + } - header = this.Document.Headers.Odd; - if( header != null ) - { - if( header.PackagePart.Uri == this.PackagePart.Uri ) + header = section.Headers.Odd; + if( header != null ) { - return header; + if( header.PackagePart.Uri == this.PackagePart.Uri ) + { + return header; + } } + + header = section.Headers.Even; + return header; } - header = this.Document.Headers.Even; - return header; + return null; } private Container GetFooterContainer() { - var footer = this.Document.Footers.First; - if( footer != null ) + foreach( var section in this.Document.Sections ) { - if( footer.PackagePart.Uri == this.PackagePart.Uri ) - return footer; - } + var footer = section.Footers.First; + if( footer != null ) + { + if( footer.PackagePart.Uri == this.PackagePart.Uri ) + return footer; + } - footer = this.Document.Footers.Odd; - if( footer != null ) - { - if( footer.PackagePart.Uri == this.PackagePart.Uri ) + footer = section.Footers.Odd; + if( footer != null ) { - return footer; + if( footer.PackagePart.Uri == this.PackagePart.Uri ) + { + return footer; + } } - } - footer = this.Document.Footers.Even; - return footer; + footer = section.Footers.Even; + return footer; + } + return null; } private IList GetContainerParagraphs() @@ -6645,9 +4984,6 @@ public class Run : DocumentElement #region Public Properties - /// - /// Gets the start index of this Text (text length before this text) - /// public int StartIndex { get @@ -6656,9 +4992,6 @@ public int StartIndex } } - /// - /// Gets the end index of this Text (text length before this text + this texts length) - /// public int EndIndex { get @@ -6671,9 +5004,6 @@ public int EndIndex #region Internal Properties - /// - /// The text value of this text element - /// internal string Value { set @@ -6819,9 +5149,6 @@ internal class Text : DocumentElement #region Public Properties - /// - /// Gets the start index of this Text (text length before this text) - /// public int StartIndex { get @@ -6830,9 +5157,6 @@ public int StartIndex } } - /// - /// Gets the end index of this Text (text length before this text + this texts length) - /// public int EndIndex { get @@ -6841,9 +5165,6 @@ public int EndIndex } } - /// - /// The text value of this text element - /// public string Value { get @@ -6903,11 +5224,6 @@ internal Text( Document document, XElement xml, int startIndex ) #region Public Methods - /// - /// If a text element or delText element, starts or ends with a space, - /// it must have the attribute space, otherwise it must not have it. - /// - /// The (t or delText) element check public static void PreserveSpace( XElement e ) { // PreserveSpace should only be used on (t or delText) elements diff --git a/Xceed.Document.NET/Src/Picture.cs b/Xceed.Document.NET/Src/Picture.cs index fa29ad6..bcb51d1 100644 --- a/Xceed.Document.NET/Src/Picture.cs +++ b/Xceed.Document.NET/Src/Picture.cs @@ -2,7 +2,7 @@ DocX – DocX is the community edition of Xceed Words for .NET - Copyright (C) 2009-2023 Xceed Software Inc. + Copyright (C) 2009-2024 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 @@ -26,9 +26,6 @@ COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at namespace Xceed.Document.NET { - /// - /// Represents a Picture in this document, a Picture is a customized view of an Image. - /// public class Picture : DocumentElement { #region Private Members @@ -61,9 +58,6 @@ public class Picture : DocumentElement #region Public Properties - /// - /// A unique id that identifies an Image embedded in this document. - /// public string Id { get @@ -72,9 +66,6 @@ public string Id } } - /// - /// Flip this Picture Horizontally. - /// public bool FlipHorizontal { get @@ -96,9 +87,6 @@ public bool FlipHorizontal } } - /// - /// Flip this Picture Vertically. - /// public bool FlipVertical { get @@ -120,9 +108,6 @@ public bool FlipVertical } } - /// - /// The rotation in degrees of this image, actual value = value % 360 - /// public uint Rotation { get @@ -161,9 +146,6 @@ where d.Name.LocalName.Equals( "xfrm" ) - /// - /// Gets or sets the name of this Image. - /// public string Name { get @@ -182,9 +164,6 @@ public string Name } } - /// - /// Gets or sets the description for this Image. - /// public string Description { get @@ -203,9 +182,6 @@ public string Description } } - /// - /// Returns the name of the image file for the picture. - /// public string FileName { get @@ -214,9 +190,6 @@ public string FileName } } - /// - /// Gets or sets the Width of this Image. - /// public float Width { get @@ -233,9 +206,6 @@ public float Width } } - /// - /// Gets or sets the Width of this Image (in Inches) - /// public float WidthInches { get @@ -249,9 +219,6 @@ public float WidthInches } } - /// - /// Gets or sets the height of this Image. - /// public float Height { get @@ -268,9 +235,6 @@ public float Height } } - /// - /// Gets or sets the Height of this Image (in Inches) - /// public float HeightInches { get @@ -296,12 +260,6 @@ public Stream Stream #region Constructors - /// - /// Wraps an XElement as an Image - /// - /// - /// The XElement i to wrap - /// internal Picture( Document document, XElement i, Image image ) : base( document, i ) { _img = image; @@ -451,73 +409,42 @@ select d #region Public Methods - /// - /// Remove this Picture from this document. - /// public void Remove() { this.Xml.Remove(); _img.Remove(); } - /// - /// Set the shape of this Picture to one in the BasicShapes enumeration. - /// - /// A shape from the BasicShapes enumeration. public void SetPictureShape( BasicShapes shape ) { SetPictureShape( ( object )shape ); } - /// - /// Set the shape of this Picture to one in the RectangleShapes enumeration. - /// - /// A shape from the RectangleShapes enumeration. public void SetPictureShape( RectangleShapes shape ) { SetPictureShape( ( object )shape ); } - /// - /// Set the shape of this Picture to one in the BlockArrowShapes enumeration. - /// - /// A shape from the BlockArrowShapes enumeration. public void SetPictureShape( BlockArrowShapes shape ) { SetPictureShape( ( object )shape ); } - /// - /// Set the shape of this Picture to one in the EquationShapes enumeration. - /// - /// A shape from the EquationShapes enumeration. public void SetPictureShape( EquationShapes shape ) { SetPictureShape( ( object )shape ); } - /// - /// Set the shape of this Picture to one in the FlowchartShapes enumeration. - /// - /// A shape from the FlowchartShapes enumeration. public void SetPictureShape( FlowchartShapes shape ) { SetPictureShape( ( object )shape ); } - /// - /// Set the shape of this Picture to one in the StarAndBannerShapes enumeration. - /// - /// A shape from the StarAndBannerShapes enumeration. public void SetPictureShape( StarAndBannerShapes shape ) { SetPictureShape( ( object )shape ); } - /// - /// Set the shape of this Picture to one in the CalloutShapes enumeration. - /// - /// A shape from the CalloutShapes enumeration. public void SetPictureShape( CalloutShapes shape ) { SetPictureShape( ( object )shape ); diff --git a/Xceed.Document.NET/Src/ReplaceTextOptions.cs b/Xceed.Document.NET/Src/ReplaceTextOptions.cs index d3bab25..30cc17a 100644 --- a/Xceed.Document.NET/Src/ReplaceTextOptions.cs +++ b/Xceed.Document.NET/Src/ReplaceTextOptions.cs @@ -2,7 +2,7 @@ DocX – DocX is the community edition of Xceed Words for .NET - Copyright (C) 2009-2023 Xceed Software Inc. + Copyright (C) 2009-2024 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 diff --git a/Xceed.Document.NET/Src/Section.cs b/Xceed.Document.NET/Src/Section.cs index 67e492a..4f32e27 100644 --- a/Xceed.Document.NET/Src/Section.cs +++ b/Xceed.Document.NET/Src/Section.cs @@ -2,7 +2,7 @@ DocX – DocX is the community edition of Xceed Words for .NET - Copyright (C) 2009-2023 Xceed Software Inc. + Copyright (C) 2009-2024 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 @@ -154,9 +154,6 @@ public Headers Headers internal set; } - /// - /// Bottom margin in points. 1pt = 1/72 of an inch. Word internally writes docx using units = 1/20th of a point. - /// public float MarginBottom { get @@ -170,9 +167,6 @@ public float MarginBottom } } - /// - /// Footer margin value in points. 1pt = 1/72 of an inch. Word internally writes docx using units = 1/20th of a point. - /// public float MarginFooter { get @@ -185,9 +179,6 @@ public float MarginFooter } } - /// - /// Header margin value in points. 1pt = 1/72 of an inch. Word internally writes docx using units = 1/20th of a point. - /// public float MarginHeader { get @@ -200,9 +191,6 @@ public float MarginHeader } } - /// - /// Left margin in points. 1pt = 1/72 of an inch. Word internally writes docx using units = 1/20th of a point. - /// public float MarginLeft { get @@ -216,9 +204,6 @@ public float MarginLeft } } - /// - /// Right margin in points. 1pt = 1/72 of an inch. Word internally writes docx using units = 1/20th of a point. - /// public float MarginRight { get @@ -232,9 +217,6 @@ public float MarginRight } } - /// - /// Top margin in points. 1pt = 1/72 of an inch. Word internally writes docx using units = 1/20th of a point. - /// public float MarginTop { get @@ -330,9 +312,6 @@ public Borders PageBorders } } - /// - /// Page height in points. 1pt = 1/72 of an inch. Word internally writes docx using units = 1/20th of a point. - /// public float PageHeight { get @@ -438,9 +417,6 @@ public PageNumberType PageNumberType } } - /// - /// Page width in points. 1pt = 1/72 of an inch. Word internally writes docx using units = 1/20th of a point. - /// public float PageWidth { get @@ -674,10 +650,6 @@ public void Remove() #region Internal Methods - /// - /// Adds a Header to a section. - /// If the section already contains a Header it will be replaced. - /// internal void AddHeadersOrFootersXml( bool b ) { var element = b ? "hdr" : "ftr"; diff --git a/Xceed.Document.NET/Src/ShadingPattern.cs b/Xceed.Document.NET/Src/ShadingPattern.cs index a175a41..985acaf 100644 --- a/Xceed.Document.NET/Src/ShadingPattern.cs +++ b/Xceed.Document.NET/Src/ShadingPattern.cs @@ -2,7 +2,7 @@ DocX – DocX is the community edition of Xceed Words for .NET - Copyright (C) 2009-2023 Xceed Software Inc. + Copyright (C) 2009-2024 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 diff --git a/Xceed.Document.NET/Src/Table.cs b/Xceed.Document.NET/Src/Table.cs index e619af5..4f11f82 100644 --- a/Xceed.Document.NET/Src/Table.cs +++ b/Xceed.Document.NET/Src/Table.cs @@ -2,7 +2,7 @@ DocX – DocX is the community edition of Xceed Words for .NET - Copyright (C) 2009-2023 Xceed Software Inc. + Copyright (C) 2009-2024 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 @@ -28,9 +28,6 @@ COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at namespace Xceed.Document.NET { - /// - /// Represents a Table in a document. - /// public class Table : InsertBeforeOrAfter { #region Private Members @@ -41,10 +38,6 @@ public class Table : InsertBeforeOrAfter private TableLook _tableLook; private double _indentFromLeft; - /// - /// The custom design\style to apply to this table. - /// - /// private string _customTableDesignName; private int _cachedColumnCount = -1; @@ -52,10 +45,6 @@ public class Table : InsertBeforeOrAfter #region Public Properties - /// - /// Returns a list of all Paragraphs inside this container. - /// - /// public virtual List Paragraphs { get @@ -69,28 +58,6 @@ public virtual List Paragraphs } } - /// - /// Returns a list of all Pictures in a Table. - /// - /// - /// Returns a list of all Pictures in a Table. - /// - /// pictures = t.Pictures; - /// - /// // Save this document. - /// document.Save(); - /// } - /// ]]> - /// - /// public List Pictures { get @@ -112,26 +79,6 @@ public List Pictures - /// - /// Get all of the Hyperlinks in this Table. - /// - /// - /// Get all of the Hyperlinks in this Table. - /// - /// // Create a document. - /// using (var document = DocX.Load(@"Test.docx")) - /// { - /// // Get the first Table in this document. - /// Table t = document.Tables[0]; - /// - /// // Get a list of all Hyperlinks in this Table. - /// List<Hyperlink> hyperlinks = t.Hyperlinks; - /// - /// // Save this document. - /// document.Save(); - /// } - /// - /// public List Hyperlinks { get @@ -147,9 +94,6 @@ public List Hyperlinks } } - /// - /// Returns the number of rows in this table. - /// public Int32 RowCount { get @@ -158,9 +102,6 @@ public Int32 RowCount } } - /// - /// Returns the number of columns in this table. - /// public Int32 ColumnCount { get @@ -178,9 +119,6 @@ public Int32 ColumnCount } } - /// - /// Returns a list of rows in this table. - /// public List Rows { get @@ -260,13 +198,10 @@ public double IndentFromLeft tblInd = tblPr.Element( XName.Get( "tblInd", Document.w.NamespaceName ) ); } tblInd.SetAttributeValue( XName.Get( "w", Document.w.NamespaceName ), _indentFromLeft ); + tblInd.Add( new XAttribute( XName.Get( "type", Document.w.NamespaceName ), "dxa" ) ); } } - /// - /// Auto size this table according to some rule. - /// - /// public AutoFit AutoFit { get @@ -476,9 +411,6 @@ public AutoFit AutoFit } } - /// - /// The design\style to apply to this table. - /// public TableDesign Design { get @@ -877,35 +809,6 @@ select e } } - /// - /// Returns the index of this Table. - /// - /// - /// Replace the first table in this document with a new Table. - /// - /// // Load a document into memory. - /// using (var document = DocX.Load(@"Test.docx")) - /// { - /// // Get the first Table in this document. - /// Table t = document.Tables[0]; - /// - /// // Get the character index of Table t in this document. - /// int index = t.Index; - /// - /// // Remove Table t. - /// t.Remove(); - /// - /// // Insert a new Table at the original index of Table t. - /// Table newTable = document.InsertTable(index, 4, 4); - /// - /// // Set the design of this new Table, so that we can see it. - /// newTable.Design = TableDesign.LightShadingAccent1; - /// - /// // Save all changes made to the document. - /// document.Save(); - /// } // Release this document from memory. - /// - /// public int Index { get @@ -920,9 +823,6 @@ public int Index } } - /// - /// The custom design/style to apply to this table. - /// public string CustomTableDesignName { get @@ -937,9 +837,6 @@ public string CustomTableDesignName } - /// - /// Gets or sets the value of the Table Caption (Alternate Text Title) of this table. - /// public string TableCaption { get @@ -968,9 +865,6 @@ public string TableCaption } } - /// - /// Gets or sets the value of the Table Description (Alternate Text Description) of this table. - /// public string TableDescription { get @@ -1183,9 +1077,6 @@ internal Table( Document document, XElement xml, PackagePart packagePart ) #region Public Methods - /// - /// Merge cells in given column starting with startRow and ending with endRow. - /// public void MergeCellsInColumn( int columnIndex, int startRow, int endRow ) { // Check for valid start and end indexes. @@ -1242,27 +1133,6 @@ public void MergeCellsInColumn( int columnIndex, int startRow, int endRow ) start_vMerge.SetAttributeValue( XName.Get( "val", Document.w.NamespaceName ), "restart" ); } - /// - /// Set the direction of all content in this Table. - /// - /// (Left to Right) or (Right to Left) - /// - /// Set the content direction for all content in a table to RightToLeft. - /// - /// // Load a document. - /// using (var document = DocX.Load(@"Test.docx")) - /// { - /// // Get the first table in a document. - /// Table table = document.Tables[0]; - /// - /// // Set the content direction for all content in this table to RightToLeft. - /// table.SetDirection(Direction.RightToLeft); - /// - /// // Save all changes made to this document. - /// document.Save(); - /// } - /// - /// public void SetDirection( Direction direction ) { var tblPr = GetOrCreate_tblPr(); @@ -1274,26 +1144,6 @@ public void SetDirection( Direction direction ) } } - /// - /// Remove this Table from this document. - /// - /// - /// Remove the first Table from this document. - /// - /// // Load a document into memory. - /// using (var document = DocX.Load(@"Test.docx")) - /// { - /// // Get the first Table in this document. - /// Table t = d.Tables[0]; - /// - /// // Remove this Table. - /// t.Remove(); - /// - /// // Save all changes made to the document. - /// document.Save(); - /// } // Release this document from memory. - /// - /// public void Remove() { this.RemoveInternal(); @@ -1302,135 +1152,26 @@ public void Remove() this.Document.UpdateCacheSections(); } - /// - /// Insert a row at the end of this table. - /// - /// - /// - /// // Load a document. - /// using (var document = DocX.Load(@"C:\Example\Test.docx")) - /// { - /// // Get the first table in this document. - /// Table table = document.Tables[0]; - /// - /// // Insert a new row at the end of this table. - /// Row row = table.InsertRow(); - /// - /// // Loop through each cell in this new row. - /// foreach (Cell c in row.Cells) - /// { - /// // Set the text of each new cell to "Hello". - /// c.Paragraphs[0].InsertText("Hello", false); - /// } - /// - /// // Save the document to a new file. - /// document.SaveAs(@"C:\Example\Test2.docx"); - /// }// Release this document from memory. - /// - /// - /// A new row. public Row InsertRow() { return this.InsertRow( this.RowCount ); } - /// - /// Insert a copy of a row at the end of this table. - /// - /// A new row. public Row InsertRow( Row row, bool keepFormatting = false ) { return this.InsertRow( row, this.RowCount, keepFormatting ); } - /// - /// Insert a column to the right of a Table. - /// - /// - /// - /// // Load a document. - /// using (var document = DocX.Load(@"C:\Example\Test.docx")) - /// { - /// // Get the first Table in this document. - /// Table table = document.Tables[0]; - /// - /// // Insert a new column to this right of this table. - /// table.InsertColumn(); - /// - /// // Set the new columns text to "Row no." - /// table.Rows[0].Cells[table.ColumnCount - 1].Paragraph.InsertText("Row no.", false); - /// - /// // Loop through each row in the table. - /// for (int i = 1; i < table.Rows.Count; i++) - /// { - /// // The current row. - /// Row row = table.Rows[i]; - /// - /// // The cell in this row that belongs to the new column. - /// Cell cell = row.Cells[table.ColumnCount - 1]; - /// - /// // The first Paragraph that this cell houses. - /// Paragraph p = cell.Paragraphs[0]; - /// - /// // Insert this rows index. - /// p.InsertText(i.ToString(), false); - /// } - /// - /// document.Save(); - /// }// Release this document from memory. - /// - /// public void InsertColumn() { this.InsertColumn( this.ColumnCount - 1, true ); } - /// - /// Remove the last row from this Table. - /// - /// - /// Remove the last row from a Table. - /// - /// // Load a document. - /// using (var document = DocX.Load(@"C:\Example\Test.docx")) - /// { - /// // Get the first table in this document. - /// Table table = document.Tables[0]; - /// - /// // Remove the last row from this table. - /// table.RemoveRow(); - /// - /// // Save the document. - /// document.Save(); - /// }// Release this document from memory. - /// - /// public void RemoveRow() { this.RemoveRow( RowCount - 1 ); } - /// - /// Remove a row from this Table. - /// - /// The row to remove. - /// - /// Remove the first row from a Table. - /// - /// // Load a document. - /// using (var document = DocX.Load(@"C:\Example\Test.docx")) - /// { - /// // Get the first table in this document. - /// Table table = document.Tables[0]; - /// - /// // Remove the first row from this table. - /// table.RemoveRow(0); - /// - /// // Save the document. - /// document.Save(); - /// }// Release this document from memory. - /// - /// public void RemoveRow( int index ) { if( index < 0 || index > RowCount - 1 ) @@ -1445,52 +1186,11 @@ public void RemoveRow( int index ) } } - /// - /// Remove the last column for this Table. - /// - /// - /// Remove the last column from a Table. - /// - /// // Load a document. - /// using (var document = DocX.Load(@"C:\Example\Test.docx")) - /// { - /// // Get the first table in this document. - /// Table table = document.Tables[0]; - /// - /// // Remove the last column from this table. - /// table.RemoveColumn(); - /// - /// // Save the document. - /// document.Save(); - /// }// Release this document from memory. - /// - /// public void RemoveColumn() { this.RemoveColumn( this.ColumnCount - 1 ); } - /// - /// Remove a column from this Table. - /// - /// The column to remove. - /// - /// Remove the first column from a Table. - /// - /// // Load a document. - /// using (var document = DocX.Load(@"C:\Example\Test.docx")) - /// { - /// // Get the first table in this document. - /// Table table = document.Tables[0]; - /// - /// // Remove the first column from this table. - /// table.RemoveColumn(0); - /// - /// // Save the document. - /// document.Save(); - /// }// Release this document from memory. - /// - /// public void RemoveColumn( int index ) { if( ( index < 0 ) || ( index > this.ColumnCount - 1 ) ) @@ -1532,34 +1232,6 @@ public void RemoveColumn( int index ) this.Document.ClearParagraphsCache(); } - /// - /// Insert a row into this table. - /// - /// - /// - /// // Load a document. - /// using (var document = DocX.Load(@"C:\Example\Test.docx")) - /// { - /// // Get the first table in this document. - /// Table table = document.Tables[0]; - /// - /// // Insert a new row at index 1 in this table. - /// Row row = table.InsertRow(1); - /// - /// // Loop through each cell in this new row. - /// foreach (Cell c in row.Cells) - /// { - /// // Set the text of each new cell to "Hello". - /// c.Paragraphs[0].InsertText("Hello", false); - /// } - /// - /// // Save the document to a new file. - /// document.SaveAs(@"C:\Example\Test2.docx"); - /// }// Release this document from memory. - /// - /// - /// Index to insert row at. - /// A new Row public Row InsertRow( int index ) { if( ( index < 0 ) || ( index > this.RowCount ) ) @@ -1577,13 +1249,6 @@ public Row InsertRow( int index ) return this.InsertRow( content, index ); } - /// - /// Insert a copy of a row into this table. - /// - /// Row to copy and insert. - /// Index to insert row at. - /// True to clone everithing, False to clone cell structure only. - /// A new Row public Row InsertRow( Row row, int index, bool keepFormatting = false ) { if( row == null ) @@ -1601,46 +1266,6 @@ public Row InsertRow( Row row, int index, bool keepFormatting = false ) return InsertRow( content, index ); } - /// - /// Insert a column into a table. - /// - /// The index to insert the column at. - /// The side in which you wish to place the colum : True for right, false for left. - /// - /// Insert a column to the left of a table. - /// - /// // Load a document. - /// using (var document = DocX.Load(@"C:\Example\Test.docx")) - /// { - /// // Get the first Table in this document. - /// Table table = document.Tables[0]; - /// - /// // Insert a new column to this left of this table. - /// table.InsertColumn(0, false); - /// - /// // Set the new columns text to "Row no." - /// table.Rows[0].Cells[table.ColumnCount - 1].Paragraph.InsertText("Row no.", false); - /// - /// // Loop through each row in the table. - /// for (int i = 1; i < table.Rows.Count; i++) - /// { - /// // The current row. - /// Row row = table.Rows[i]; - /// - /// // The cell in this row that belongs to the new column. - /// Cell cell = row.Cells[table.ColumnCount - 1]; - /// - /// // The first Paragraph that this cell houses. - /// Paragraph p = cell.Paragraphs[0]; - /// - /// // Insert this rows index. - /// p.InsertText(i.ToString(), false); - /// } - /// - /// document.Save(); - /// }// Release this document from memory. - /// - /// public void InsertColumn( int index, bool direction ) { var colCount = this.ColumnCount; @@ -1704,30 +1329,6 @@ public void InsertColumn( int index, bool direction ) } } - /// - /// Insert a page break before a Table. - /// - /// - /// Insert a Table and a Paragraph into a document with a page break between them. - /// - /// // Create a new document. - /// using (var document = DocX.Create(@"Test.docx")) - /// { - /// // Insert a new Paragraph. - /// Paragraph p1 = document.InsertParagraph("Paragraph", false); - /// - /// // Insert a new Table. - /// Table t1 = document.InsertTable(2, 2); - /// t1.Design = TableDesign.LightShadingAccent1; - /// - /// // Insert a page break before this Table. - /// t1.InsertPageBreakBeforeSelf(); - /// - /// // Save this document. - /// document.Save(); - /// }// Release this document from memory. - /// - /// public override void InsertPageBreakBeforeSelf() { base.InsertPageBreakBeforeSelf(); @@ -1779,440 +1380,71 @@ public void SetWidthsPercentage( float[] widthsPercentage, float? totalWidth = n } } - /// - /// Insert a page break after a Table. - /// - /// - /// Insert a Table and a Paragraph into a document with a page break between them. - /// - /// // Create a new document. - /// using (var document = DocX.Create(@"Test.docx")) - /// { - /// // Insert a new Table. - /// Table t1 = document.InsertTable(2, 2); - /// t1.Design = TableDesign.LightShadingAccent1; - /// - /// // Insert a page break after this Table. - /// t1.InsertPageBreakAfterSelf(); - /// - /// // Insert a new Paragraph. - /// Paragraph p1 = document.InsertParagraph("Paragraph", false); - /// - /// // Save this document. - /// document.Save(); - /// }// Release this document from memory. - /// - /// public override void InsertPageBreakAfterSelf() { base.InsertPageBreakAfterSelf(); } - /// - /// Insert a new Table before this Table, this Table can be from this document or another document. - /// - /// The Table t to be inserted - /// A new Table inserted before this Table. - /// - /// Insert a new Table before this Table. - /// - /// // Place holder for a Table. - /// Table t; - /// - /// // Load document a. - /// using (DocX documentA = DocX.Load(@"a.docx")) - /// { - /// // Get the first Table from this document. - /// t = documentA.Tables[0]; - /// } - /// - /// // Load document b. - /// using (DocX documentB = DocX.Load(@"b.docx")) - /// { - /// // Get the first Table in document b. - /// Table t2 = documentB.Tables[0]; - /// - /// // Insert the Table from document a before this Table. - /// Table newTable = t2.InsertTableBeforeSelf(t); - /// - /// // Save all changes made to document b. - /// documentB.Save(); - /// }// Release this document from memory. - /// - /// public override Table InsertTableBeforeSelf( Table t ) { return base.InsertTableBeforeSelf( t ); } - /// - /// Insert a new Table into this document before this Table. - /// - /// The number of rows this Table should have. - /// The number of columns this Table should have. - /// A new Table inserted before this Table. - /// - /// - /// // Create a new document. - /// using (var document = DocX.Create(@"Test.docx")) - /// { - /// //Insert a Table into this document. - /// Table t = document.InsertTable(2, 2); - /// t.Design = TableDesign.LightShadingAccent1; - /// t.Alignment = Alignment.center; - /// - /// // Insert a new Table before this Table. - /// Table newTable = t.InsertTableBeforeSelf(2, 2); - /// newTable.Design = TableDesign.LightShadingAccent2; - /// newTable.Alignment = Alignment.center; - /// - /// // Save all changes made to this document. - /// document.Save(); - /// }// Release this document from memory. - /// - /// public override Table InsertTableBeforeSelf( int rowCount, int columnCount ) { return base.InsertTableBeforeSelf( rowCount, columnCount ); } - /// - /// Insert a new Table after this Table, this Table can be from this document or another document. - /// - /// The Table t to be inserted - /// A new Table inserted after this Table. - /// - /// Insert a new Table after this Table. - /// - /// // Place holder for a Table. - /// Table t; - /// - /// // Load document a. - /// using (DocX documentA = DocX.Load(@"a.docx")) - /// { - /// // Get the first Table from this document. - /// t = documentA.Tables[0]; - /// } - /// - /// // Load document b. - /// using (DocX documentB = DocX.Load(@"b.docx")) - /// { - /// // Get the first Table in document b. - /// Table t2 = documentB.Tables[0]; - /// - /// // Insert the Table from document a after this Table. - /// Table newTable = t2.InsertTableAfterSelf(t); - /// - /// // Save all changes made to document b. - /// documentB.Save(); - /// }// Release this document from memory. - /// - /// public override Table InsertTableAfterSelf( Table t ) { return base.InsertTableAfterSelf( t ); } - /// - /// Insert a new Table into this document after this Table. - /// - /// The number of rows this Table should have. - /// The number of columns this Table should have. - /// A new Table inserted before this Table. - /// - /// - /// // Create a new document. - /// using (var document = DocX.Create(@"Test.docx")) - /// { - /// //Insert a Table into this document. - /// Table t = document.InsertTable(2, 2); - /// t.Design = TableDesign.LightShadingAccent1; - /// t.Alignment = Alignment.center; - /// - /// // Insert a new Table after this Table. - /// Table newTable = t.InsertTableAfterSelf(2, 2); - /// newTable.Design = TableDesign.LightShadingAccent2; - /// newTable.Alignment = Alignment.center; - /// - /// // Save all changes made to this document. - /// document.Save(); - /// }// Release this document from memory. - /// - /// public override Table InsertTableAfterSelf( int rowCount, int columnCount ) { return base.InsertTableAfterSelf( rowCount, columnCount ); } - /// - /// Insert a Paragraph before this Table, this Paragraph may have come from the same or another document. - /// - /// The Paragraph to insert. - /// The Paragraph now associated with this document. - /// - /// Take a Paragraph from document a, and insert it into document b before this Table. - /// - /// // Place holder for a Paragraph. - /// Paragraph p; - /// - /// // Load document a. - /// using (DocX documentA = DocX.Load(@"a.docx")) - /// { - /// // Get the first paragraph from this document. - /// p = documentA.Paragraphs[0]; - /// } - /// - /// // Load document b. - /// using (DocX documentB = DocX.Load(@"b.docx")) - /// { - /// // Get the first Table in document b. - /// Table t = documentB.Tables[0]; - /// - /// // Insert the Paragraph from document a before this Table. - /// Paragraph newParagraph = t.InsertParagraphBeforeSelf(p); - /// - /// // Save all changes made to document b. - /// documentB.Save(); - /// }// Release this document from memory. - /// - /// public override Paragraph InsertParagraphBeforeSelf( Paragraph p ) { return base.InsertParagraphBeforeSelf( p ); } - /// - /// Insert a new Paragraph before this Table. - /// - /// The initial text for this new Paragraph. - /// A new Paragraph inserted before this Table. - /// - /// Insert a new Paragraph before the first Table in this document. - /// - /// // Create a new document. - /// using (var document = DocX.Create(@"Test.docx")) - /// { - /// // Insert a Table into this document. - /// Table t = document.InsertTable(2, 2); - /// - /// t.InsertParagraphBeforeSelf("I was inserted before the next Table."); - /// - /// // Save all changes made to this new document. - /// document.Save(); - /// }// Release this new document form memory. - /// - /// public override Paragraph InsertParagraphBeforeSelf( string text ) { return base.InsertParagraphBeforeSelf( text ); } - /// - /// Insert a new Paragraph before this Table. - /// - /// The initial text for this new Paragraph. - /// Should this insertion be tracked as a change? - /// A new Paragraph inserted before this Table. - /// - /// Insert a new paragraph before the first Table in this document. - /// - /// // Create a new document. - /// using (var document = DocX.Create(@"Test.docx")) - /// { - /// // Insert a Table into this document. - /// Table t = document.InsertTable(2, 2); - /// - /// t.InsertParagraphBeforeSelf("I was inserted before the next Table.", false); - /// - /// // Save all changes made to this new document. - /// document.Save(); - /// }// Release this new document form memory. - /// - /// public override Paragraph InsertParagraphBeforeSelf( string text, bool trackChanges ) { return base.InsertParagraphBeforeSelf( text, trackChanges ); } - /// - /// Insert a new Paragraph before this Table. - /// - /// The initial text for this new Paragraph. - /// Should this insertion be tracked as a change? - /// The formatting to apply to this insertion. - /// A new Paragraph inserted before this Table. - /// - /// Insert a new paragraph before the first Table in this document. - /// - /// // Create a new document. - /// using (var document = DocX.Create(@"Test.docx")) - /// { - /// // Insert a Table into this document. - /// Table t = document.InsertTable(2, 2); - /// - /// Formatting boldFormatting = new Formatting(); - /// boldFormatting.Bold = true; - /// - /// t.InsertParagraphBeforeSelf("I was inserted before the next Table.", false, boldFormatting); - /// - /// // Save all changes made to this new document. - /// document.Save(); - /// }// Release this new document form memory. - /// - /// public override Paragraph InsertParagraphBeforeSelf( string text, bool trackChanges, Formatting formatting ) { return base.InsertParagraphBeforeSelf( text, trackChanges, formatting ); } - /// - /// Insert a Paragraph after this Table, this Paragraph may have come from the same or another document. - /// - /// The Paragraph to insert. - /// The Paragraph now associated with this document. - /// - /// Take a Paragraph from document a, and insert it into document b after this Table. - /// - /// // Place holder for a Paragraph. - /// Paragraph p; - /// - /// // Load document a. - /// using (DocX documentA = DocX.Load(@"a.docx")) - /// { - /// // Get the first paragraph from this document. - /// p = documentA.Paragraphs[0]; - /// } - /// - /// // Load document b. - /// using (DocX documentB = DocX.Load(@"b.docx")) - /// { - /// // Get the first Table in document b. - /// Table t = documentB.Tables[0]; - /// - /// // Insert the Paragraph from document a after this Table. - /// Paragraph newParagraph = t.InsertParagraphAfterSelf(p); - /// - /// // Save all changes made to document b. - /// documentB.Save(); - /// }// Release this document from memory. - /// - /// public override Paragraph InsertParagraphAfterSelf( Paragraph p ) { return base.InsertParagraphAfterSelf( p ); } - /// - /// Insert a new Paragraph after this Table. - /// - /// The initial text for this new Paragraph. - /// Should this insertion be tracked as a change? - /// The formatting to apply to this insertion. - /// A new Paragraph inserted after this Table. - /// - /// Insert a new paragraph after the first Table in this document. - /// - /// // Create a new document. - /// using (var document = DocX.Create(@"Test.docx")) - /// { - /// // Insert a Table into this document. - /// Table t = document.InsertTable(2, 2); - /// - /// Formatting boldFormatting = new Formatting(); - /// boldFormatting.Bold = true; - /// - /// t.InsertParagraphAfterSelf("I was inserted after the previous Table.", false, boldFormatting); - /// - /// // Save all changes made to this new document. - /// document.Save(); - /// }// Release this new document form memory. - /// - /// public override Paragraph InsertParagraphAfterSelf( string text, bool trackChanges, Formatting formatting ) { return base.InsertParagraphAfterSelf( text, trackChanges, formatting ); } - /// - /// Insert a new Paragraph after this Table. - /// - /// The initial text for this new Paragraph. - /// Should this insertion be tracked as a change? - /// A new Paragraph inserted after this Table. - /// - /// Insert a new paragraph after the first Table in this document. - /// - /// // Create a new document. - /// using (var document = DocX.Create(@"Test.docx")) - /// { - /// // Insert a Table into this document. - /// Table t = document.InsertTable(2, 2); - /// - /// t.InsertParagraphAfterSelf("I was inserted after the previous Table.", false); - /// - /// // Save all changes made to this new document. - /// document.Save(); - /// }// Release this new document form memory. - /// - /// public override Paragraph InsertParagraphAfterSelf( string text, bool trackChanges ) { return base.InsertParagraphAfterSelf( text, trackChanges ); } - /// - /// Insert a new Paragraph after this Table. - /// - /// The initial text for this new Paragraph. - /// A new Paragraph inserted after this Table. - /// - /// Insert a new Paragraph after the first Table in this document. - /// - /// // Create a new document. - /// using (var document = DocX.Create(@"Test.docx")) - /// { - /// // Insert a Table into this document. - /// Table t = document.InsertTable(2, 2); - /// - /// t.InsertParagraphAfterSelf("I was inserted after the previous Table."); - /// - /// // Save all changes made to this new document. - /// document.Save(); - /// }// Release this new document form memory. - /// - /// public override Paragraph InsertParagraphAfterSelf( string text ) { return base.InsertParagraphAfterSelf( text ); } - /// - /// Set a table border - /// - /// - /// - /// // Create a new document. - ///using (var document = DocX.Create("Test.docx")) - ///{ - /// // Insert a table into this document. - /// Table t = document.InsertTable(3, 3); - /// - /// // Create a large blue border. - /// Border b = new Border(BorderStyle.Tcbs_single, BorderSize.seven, 0, Color.Blue); - /// - /// // Set the tables Top, Bottom, Left and Right Borders to b. - /// t.SetBorder(TableBorderType.Top, b); - /// t.SetBorder(TableBorderType.Bottom, b); - /// t.SetBorder(TableBorderType.Left, b); - /// t.SetBorder(TableBorderType.Right, b); - /// - /// // Save the document. - /// document.Save(); - ///} - /// - /// - /// The table border to set - /// Border object to set the table border public void SetBorder( TableBorderType borderType, Border border ) { /* @@ -2308,10 +1540,6 @@ public void SetBorder( TableBorderType borderType, Border border ) } } - /// - /// Get a table border - /// - /// The table border to get public Border GetBorder( TableBorderType borderType ) { // instance with default border values @@ -2592,11 +1820,6 @@ public void SetTableCellMargin( TableCellMarginType type, double margin ) side.Add( new XAttribute( XName.Get( "type", Document.w.NamespaceName ), "dxa" ) ); } - /// - /// Deletes a cell in a row and shift the others to the left. - /// - /// index of the row where a cell will be removed. - /// index of the cell to remove in the row. public void DeleteAndShiftCellsLeft( int rowIndex, int celIndex ) { var trPr = this.Rows[ rowIndex ].Xml.Element( XName.Get( "trPr", Document.w.NamespaceName ) ); @@ -2662,10 +1885,6 @@ static internal AutoFit GetAutoFitFromXml( XElement xml ) return AutoFit.ColumnWidth; } - /// - /// If the tblPr element doesent exist it is created, either way it is returned by this function. - /// - /// The tblPr element for this Table. internal XElement GetOrCreate_tblPr() { // Get the element. @@ -2895,9 +2114,6 @@ private void TableLook_PropertyChanged( object sender, PropertyChangedEventArgs } - /// - /// Represents a single row in a Table. - /// public class Row : Container { #region Internal Members @@ -2908,9 +2124,6 @@ public class Row : Container #region Public Properties - /// - /// Calculates columns count in the row, taking spanned cells into account - /// public Int32 ColumnCount { get @@ -2931,9 +2144,6 @@ public Int32 ColumnCount } } - /// - /// Returns the row.GridAfter => The number of deleted cells in a row. - /// public int GridAfter { get @@ -2978,9 +2188,6 @@ internal set } } - /// - /// A list of Cells in this Row. - /// public List Cells { get @@ -3015,9 +2222,6 @@ from p in Xml.Descendants( Document.w + "p" ) } } - /// - /// Height in pixels. - /// public double Height { get @@ -3059,9 +2263,6 @@ public double Height } } - /// - /// Minimum Height in pixels. - /// public double MinHeight { get @@ -3101,11 +2302,6 @@ public bool TableHeader } } - /// - /// Allow row to break across pages. - /// Default value is True : Word will break the contents of the row across the pages. - /// When False, the contents of the row will not be split across the pages; it will be entirely moved to the next page. - /// public bool BreakAcrossPages { get @@ -3167,9 +2363,6 @@ public void Remove() table.Remove(); } - /// - /// Merge cells starting with startIndex and ending with endIndex. - /// public void MergeCells( int startIndex, int endIndex ) { // Check for valid start and end indexes. @@ -3565,9 +2758,6 @@ public ShadingPattern ShadingPattern #endregion //ShadingPattern - /// - /// Width in pixels. - /// public double Width { get @@ -3657,32 +2847,6 @@ public double Width } } - /// - /// LeftMargin in pixels. - /// - /// - /// - /// // Create a new document. - ///using (var document = DocX.Create("Test.docx")) - ///{ - /// // Insert table into this document. - /// Table t = document.InsertTable(3, 3); - /// t.Design = TableDesign.TableGrid; - /// - /// // Get the center cell. - /// Cell center = t.Rows[1].Cells[1]; - /// - /// // Insert some text so that we can see the effect of the Margins. - /// center.Paragraphs[0].Append("Center Cell"); - /// - /// // Set the center cells Left, Margin to 10. - /// center.MarginLeft = 25; - /// - /// // Save the document. - /// document.Save(); - ///} - /// - /// public double MarginLeft { get @@ -3770,32 +2934,6 @@ public double MarginLeft } } - /// - /// RightMargin in pixels. - /// - /// - /// - /// // Create a new document. - ///using (var document = DocX.Create("Test.docx")) - ///{ - /// // Insert table into this document. - /// Table t = document.InsertTable(3, 3); - /// t.Design = TableDesign.TableGrid; - /// - /// // Get the center cell. - /// Cell center = t.Rows[1].Cells[1]; - /// - /// // Insert some text so that we can see the effect of the Margins. - /// center.Paragraphs[0].Append("Center Cell"); - /// - /// // Set the center cells Right, Margin to 10. - /// center.MarginRight = 25; - /// - /// // Save the document. - /// document.Save(); - ///} - /// - /// public double MarginRight { get @@ -3883,32 +3021,6 @@ public double MarginRight } } - /// - /// TopMargin in pixels. - /// - /// - /// - /// // Create a new document. - ///using (var document = DocX.Create("Test.docx")) - ///{ - /// // Insert table into this document. - /// Table t = document.InsertTable(3, 3); - /// t.Design = TableDesign.TableGrid; - /// - /// // Get the center cell. - /// Cell center = t.Rows[1].Cells[1]; - /// - /// // Insert some text so that we can see the effect of the Margins. - /// center.Paragraphs[0].Append("Center Cell"); - /// - /// // Set the center cells Top, Margin to 10. - /// center.MarginTop = 25; - /// - /// // Save the document. - /// document.Save(); - ///} - /// - /// public double MarginTop { get @@ -3996,32 +3108,6 @@ public double MarginTop } } - /// - /// BottomMargin in pixels. - /// - /// - /// - /// // Create a new document. - ///using (var document = DocX.Create("Test.docx")) - ///{ - /// // Insert table into this document. - /// Table t = document.InsertTable(3, 3); - /// t.Design = TableDesign.TableGrid; - /// - /// // Get the center cell. - /// Cell center = t.Rows[1].Cells[1]; - /// - /// // Insert some text so that we can see the effect of the Margins. - /// center.Paragraphs[0].Append("Center Cell"); - /// - /// // Set the center cells Top, Margin to 10. - /// center.MarginBottom = 25; - /// - /// // Save the document. - /// document.Save(); - ///} - /// - /// public double MarginBottom { get @@ -4203,9 +3289,6 @@ public TextDirection TextDirection } } - /// - /// Returns the Cell.GridSpan => How many cells are merged horizontally. - /// public int GridSpan { get @@ -4226,9 +3309,6 @@ public int GridSpan } } - /// - /// Returns the Cell.RowSpan => How many cells are merged vertically. - /// public int RowSpan { get @@ -4423,10 +3503,6 @@ public void SetBorder( TableCellBorderType borderType, Border border ) tcBorderType.SetAttributeValue( XName.Get( "color", Document.w.NamespaceName ), border.Color.ToHex() ); } - /// - /// Get a table cell border - /// - /// The table cell border to get public Border GetBorder( TableCellBorderType borderType ) { // instance with default border values diff --git a/Xceed.Document.NET/Src/TableOfContents.cs b/Xceed.Document.NET/Src/TableOfContents.cs index d899c29..be62379 100644 --- a/Xceed.Document.NET/Src/TableOfContents.cs +++ b/Xceed.Document.NET/Src/TableOfContents.cs @@ -2,7 +2,7 @@ DocX – DocX is the community edition of Xceed Words for .NET - Copyright (C) 2009-2023 Xceed Software Inc. + Copyright (C) 2009-2024 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 @@ -24,9 +24,6 @@ COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at namespace Xceed.Document.NET { - /// - /// Represents a table of contents in the document - /// public class TableOfContents : DocumentElement { #region Private Constants diff --git a/Xceed.Document.NET/Src/_BaseClasses.cs b/Xceed.Document.NET/Src/_BaseClasses.cs index 7d26732..9096a7c 100644 --- a/Xceed.Document.NET/Src/_BaseClasses.cs +++ b/Xceed.Document.NET/Src/_BaseClasses.cs @@ -2,7 +2,7 @@ DocX – DocX is the community edition of Xceed Words for .NET - Copyright (C) 2009-2023 Xceed Software Inc. + Copyright (C) 2009-2024 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 @@ -21,10 +21,6 @@ COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at namespace Xceed.Document.NET { - /// - /// All Document types are derived from DocumentElement. - /// This class contains properties which every element of a Document must contain. - /// public abstract class DocumentElement { #region Private Members @@ -35,15 +31,6 @@ public abstract class DocumentElement #region Public Properties - /// - /// This is the actual Xml that gives this element substance. - /// For example, a Paragraphs Xml might look something like the following - ///

- /// - /// Hello World! - /// - ///

- ///
public XElement Xml { get; set; @@ -65,10 +52,6 @@ public PackagePart PackagePart #region Internal Properties - /// - /// 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; @@ -78,11 +61,6 @@ internal Document Document #region Constructors - /// - /// Store both the document and xml so that they can be accessed by derived types. - /// - /// The document that this element belongs to. - /// The Xml that gives this element substance public DocumentElement( Document document, XElement xml ) { this.Document = document; @@ -107,10 +85,6 @@ internal double GetAvailableWidth() #endregion } - /// - /// This class provides functions for inserting new DocXElements before or after the current DocumentElement. - /// Only certain DocXElements can support these functions without creating invalid documents, at the moment these are Paragraphs and Table. - /// public abstract class InsertBeforeOrAfter : DocumentElement { #region Constructors diff --git a/Xceed.Document.NET/Src/_Enumerations.cs b/Xceed.Document.NET/Src/_Enumerations.cs index b3a3795..7bb9f1b 100644 --- a/Xceed.Document.NET/Src/_Enumerations.cs +++ b/Xceed.Document.NET/Src/_Enumerations.cs @@ -2,7 +2,7 @@ DocX – DocX is the community edition of Xceed Words for .NET - Copyright (C) 2009-2023 Xceed Software Inc. + Copyright (C) 2009-2024 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 @@ -90,10 +90,6 @@ public enum EditRestrictions trackedChanges } - /// - /// Table Cell Border styles - /// source: http://msdn.microsoft.com/en-us/library/documentformat.openxml.wordprocessing.tablecellborders.aspx - /// public enum BorderStyle { Tcbs_none = 0, @@ -125,10 +121,6 @@ public enum BorderStyle Tcbs_nil } - /// - /// Table Cell Border Types - /// source: http://msdn.microsoft.com/en-us/library/documentformat.openxml.wordprocessing.tablecellborders.aspx - /// public enum TableCellBorderType { Top, @@ -141,10 +133,6 @@ public enum TableCellBorderType TopRightToBottomLeft } - /// - /// Table Border Types - /// source: http://msdn.microsoft.com/en-us/library/documentformat.openxml.wordprocessing.tableborders.aspx - /// public enum TableBorderType { Top, @@ -240,28 +228,13 @@ public enum Misc engrave }; - /// - /// Change the caps style of text, for use with Append and AppendLine. - /// public enum CapsStyle { - /// - /// No caps, make all characters are lowercase. - /// none, - /// - /// All caps, make every character uppercase. - /// caps, - /// - /// Small caps, make all characters capital but with a small font size. - /// smallCaps }; - /// - /// Designs\Styles that can be applied to a table. - /// public enum TableDesign { Custom, @@ -368,9 +341,6 @@ public enum TableDesign None }; - /// - /// How a Table should auto resize. - /// public enum AutoFit { Contents, @@ -554,29 +524,14 @@ public enum CalloutShapes accentBorderCallout3 }; - /// - /// Text alignment of a Paragraph. - /// public enum Alignment { - /// - /// Align Paragraph to the left. - /// left, - /// - /// Align Paragraph as centered. - /// center, - /// - /// Align Paragraph to the right. - /// right, - /// - /// (Justified) Align Paragraph to both the left and right margins, adding extra space between content as necessary. - /// both }; @@ -586,60 +541,24 @@ public enum Direction RightToLeft }; - /// - /// Paragraph edit types - /// internal enum EditType { - /// - /// A ins is a tracked insertion - /// ins, - /// - /// A del is tracked deletion - /// del } - /// - /// Custom property types. - /// internal enum CustomPropertyType { - /// - /// System.String - /// Text, - /// - /// System.DateTime - /// Date, - /// - /// System.Int32 - /// NumberInteger, - /// - /// System.Double - /// NumberDecimal, - /// - /// System.Boolean - /// YesOrNo } - /// - /// Text types in a Run - /// public enum RunTextType { - /// - /// System.String - /// Text, - /// - /// System.String - /// DelText, } @@ -838,10 +757,6 @@ 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, diff --git a/Xceed.Document.NET/Src/_Extensions.cs b/Xceed.Document.NET/Src/_Extensions.cs index d239180..e07a8fa 100644 --- a/Xceed.Document.NET/Src/_Extensions.cs +++ b/Xceed.Document.NET/Src/_Extensions.cs @@ -2,7 +2,7 @@ DocX – DocX is the community edition of Xceed Words for .NET - Copyright (C) 2009-2023 Xceed Software Inc. + Copyright (C) 2009-2024 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 @@ -69,27 +69,11 @@ public static string GetAttribute( this XElement el, XName name, string defaultV return defaultValue; } - /// - /// Sets margin for all the pages in a Document's first section, in inches. - /// - /// - /// Margin from the top. -1 for no change. - /// Margin from the bottom. -1 for no change. - /// Margin from the right. -1 for no change. - /// Margin from the left. -1 for no change. public static void SetMargin( this Document document, float top, float bottom, float right, float left ) { Extensions.SetMargin( document.Sections[ 0 ], top, bottom, right, left ); } - /// - /// Sets margin for all the pages in a Section in inches. - /// - /// - /// Margin from the top. -1 for no change. - /// Margin from the bottom. -1 for no change. - /// Margin from the right. -1 for no change. - /// Margin from the left. -1 for no change. public static void SetMargin( Section section, float top, float bottom, float right, float left ) { if( section == null ) diff --git a/Xceed.Document.NET/Utils/Exceptions/ThrowException.cs b/Xceed.Document.NET/Utils/Exceptions/ThrowException.cs index ebc83e6..38bb28a 100644 --- a/Xceed.Document.NET/Utils/Exceptions/ThrowException.cs +++ b/Xceed.Document.NET/Utils/Exceptions/ThrowException.cs @@ -2,7 +2,7 @@ DocX – DocX is the community edition of Xceed Words for .NET - Copyright (C) 2009-2023 Xceed Software Inc. + Copyright (C) 2009-2024 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 diff --git a/Xceed.Document.NET/Utils/Licensing/LicenseOrigin.cs b/Xceed.Document.NET/Utils/Licensing/LicenseOrigin.cs index 26fe3f3..3349a8e 100644 --- a/Xceed.Document.NET/Utils/Licensing/LicenseOrigin.cs +++ b/Xceed.Document.NET/Utils/Licensing/LicenseOrigin.cs @@ -2,7 +2,7 @@ DocX – DocX is the community edition of Xceed Words for .NET - Copyright (C) 2009-2023 Xceed Software Inc. + Copyright (C) 2009-2024 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 diff --git a/Xceed.Document.NET/Xceed.Document.NET.csproj b/Xceed.Document.NET/Xceed.Document.NET.csproj index dab0aae..476220e 100644 --- a/Xceed.Document.NET/Xceed.Document.NET.csproj +++ b/Xceed.Document.NET/Xceed.Document.NET.csproj @@ -44,8 +44,6 @@ TRACE;DEBUG;NETFRAMEWORK prompt 4 - - AllRules.ruleset CS1591 diff --git a/Xceed.Document.NET/Xceed.Document.NET5.csproj b/Xceed.Document.NET/Xceed.Document.NET5.csproj index 63b4b07..92c5e8c 100644 --- a/Xceed.Document.NET/Xceed.Document.NET5.csproj +++ b/Xceed.Document.NET/Xceed.Document.NET5.csproj @@ -7,7 +7,7 @@ net5.0 Xceed.Document.NET - Xceed.Document.NET5 + Xceed.Document.NET false false @@ -51,7 +51,7 @@ - + diff --git a/Xceed.Words.NET.Examples/Program.cs b/Xceed.Words.NET.Examples/Program.cs index 861be0f..7bc083f 100644 --- a/Xceed.Words.NET.Examples/Program.cs +++ b/Xceed.Words.NET.Examples/Program.cs @@ -1,6 +1,22 @@ /*************************************************************************************** + + DocX – DocX is the community edition of Xceed Words for .NET + + Copyright (C) 2009-2024 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/ + + *************************************************************************************/ + + +/*************************************************************************************** Xceed Words for .NET – Xceed.Words.NET.Examples – Sample Application -Copyright (c) 2009-2023 - Xceed Software Inc. +Copyright (c) 2009-2024 - Xceed Software Inc. This application demonstrates how to use the different features when using the API from the Xceed Words for .NET. diff --git a/Xceed.Words.NET.Examples/Properties/AssemblyInfo.cs b/Xceed.Words.NET.Examples/Properties/AssemblyInfo.cs index b0265e9..9c25025 100644 --- a/Xceed.Words.NET.Examples/Properties/AssemblyInfo.cs +++ b/Xceed.Words.NET.Examples/Properties/AssemblyInfo.cs @@ -1,6 +1,22 @@ /*************************************************************************************** + + DocX – DocX is the community edition of Xceed Words for .NET + + Copyright (C) 2009-2024 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/ + + *************************************************************************************/ + + +/*************************************************************************************** Xceed Words for .NET – Xceed.Words.NET.Examples – AssemblyInfo -Copyright (c) 2009-2023 - Xceed Software Inc. +Copyright (c) 2009-2024 - Xceed Software Inc. This application demonstrates how to create docx files when using the API from the Xceed Words for .NET. @@ -20,7 +36,7 @@ [assembly: AssemblyCompany( "Xceed Software Inc." )] [assembly: AssemblyProduct( "Xceed Words for .NET" )] -[assembly: AssemblyCopyright( "Copyright (C) Xceed Software Inc. 2009-2023" )] +[assembly: AssemblyCopyright( "Copyright (C) Xceed Software Inc. 2009-2024" )] [assembly: AssemblyCulture( "" )] // Setting ComVisible to false makes the types in this assembly not visible diff --git a/Xceed.Words.NET.Examples/Samples/Bookmark/BookmarkSample.cs b/Xceed.Words.NET.Examples/Samples/Bookmark/BookmarkSample.cs index 61638f4..5e3dffb 100644 --- a/Xceed.Words.NET.Examples/Samples/Bookmark/BookmarkSample.cs +++ b/Xceed.Words.NET.Examples/Samples/Bookmark/BookmarkSample.cs @@ -1,6 +1,22 @@ /*************************************************************************************** + + DocX – DocX is the community edition of Xceed Words for .NET + + Copyright (C) 2009-2024 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/ + + *************************************************************************************/ + + +/*************************************************************************************** Xceed Words for .NET – Xceed.Words.NET.Examples – Bookmark Sample Application -Copyright (c) 2009-2023 - Xceed Software Inc. +Copyright (c) 2009-2024 - Xceed Software Inc. This application demonstrates how to create or replace a bookmark when using the API from the Xceed Words for .NET. @@ -40,9 +56,6 @@ static BookmarkSample() #region Public Methods - /// - /// Insert a bookmark in a document and a paragraph(and replace the displayed bookmark). - /// public static void InsertBookmarks() { Console.WriteLine( "\tInsertBookmarks()" ); @@ -81,9 +94,6 @@ public static void InsertBookmarks() } } - /// - /// Load a document with bookmarks and replace the bookmark's text. - /// public static void ReplaceText() { Console.WriteLine( "\tReplaceBookmarkText()" ); diff --git a/Xceed.Words.NET.Examples/Samples/Bookmark/Output/InsertBookmarks.docx b/Xceed.Words.NET.Examples/Samples/Bookmark/Output/InsertBookmarks.docx index 0bf5ee245e794f2cea9f1d6db50c966ab9a9a5d6..77fb148513881ae45aacfb332ce133db0d1fa410 100644 GIT binary patch delta 449 zcmcbweP5e5z?+#xgn@yBgJE;^(~Z23m^grR#LD6d>&@SpWEl<3l9P-QEmG5rEiDaA zjEzi`6!h(E^n+4!5=%1k^NKSv3ySSf%-HP8@|FW^h`mk4tjSiqTJ?^3hZO`|*Eglb zJM;9t(NdY6x2v~^k*7KLDjRpf?Kx|^f^pcs0a{lo(d-lHPTYuSO zp5c*$)||7O7#)}Im5fnO^!&E2?QmWBk-()j%HIylc*Ye5I?caS?F>QV4yzE!t&# zl1(g>6!h(E^n+4!5=%1k^NKSv3ySSf%-HP8@|FW^h~23=qsdmhTJ^quhYbYW)+e2v zcf<3Jnq%qi#KYTOvC34>aZxEtv359rtVy|$RVQ$vNW_MhMRk9ky_{@+?_PQP^-PuX zFAhIg(_oYAa6xN1`)$sMMLSnN+;CsEaEf7WOWh1+PyZZ&3&$<)2TO(YPv)69`{J_B z!n#R@Q}-?29OA#pIm%$$(z>$^_1S8cbJPFuUz9Y~s42*rdEuD-0h1%2I~Y%R{^DEA z@axf@eI=V+m_Myxm07*&+A2-S>AB}3FEcGP58ib8$|C>He_MXZtvM2qzvbq%80o78 z%~y4gG98<-?!VvbOYxbaYY**N(fe%8ldR8E#rOUa|LusUu*hUd5gT}bPmUEa1j$aGC}M>Oz{?^|U_l8{TQD6VY6GUHi+TV6w4Aq< diff --git a/Xceed.Words.NET.Examples/Samples/Chart/ChartData.cs b/Xceed.Words.NET.Examples/Samples/Chart/ChartData.cs index a37b0dd..e94fec7 100644 --- a/Xceed.Words.NET.Examples/Samples/Chart/ChartData.cs +++ b/Xceed.Words.NET.Examples/Samples/Chart/ChartData.cs @@ -1,6 +1,22 @@ /*************************************************************************************** + + DocX – DocX is the community edition of Xceed Words for .NET + + Copyright (C) 2009-2024 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/ + + *************************************************************************************/ + + +/*************************************************************************************** Xceed Words for .NET – Xceed.Words.NET.Examples – Chart Sample Application -Copyright (c) 2009-2023 - Xceed Software Inc. +Copyright (c) 2009-2024 - Xceed Software Inc. This application demonstrates how to create a chart when using the API from the Xceed Words for .NET. diff --git a/Xceed.Words.NET.Examples/Samples/Chart/ChartSample.cs b/Xceed.Words.NET.Examples/Samples/Chart/ChartSample.cs index f7181b7..a6b7832 100644 --- a/Xceed.Words.NET.Examples/Samples/Chart/ChartSample.cs +++ b/Xceed.Words.NET.Examples/Samples/Chart/ChartSample.cs @@ -1,6 +1,22 @@ /*************************************************************************************** + + DocX – DocX is the community edition of Xceed Words for .NET + + Copyright (C) 2009-2024 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/ + + *************************************************************************************/ + + +/*************************************************************************************** Xceed Words for .NET – Xceed.Words.NET.Examples – Chart Sample Application -Copyright (c) 2009-2023 - Xceed Software Inc. +Copyright (c) 2009-2024 - Xceed Software Inc. This application demonstrates how to create a chart when using the API from the Xceed Words for .NET. @@ -40,9 +56,6 @@ static ChartSample() #region Public Methods - /// - /// Add a Bar chart to a document. - /// public static void BarChart() { Console.WriteLine( "\tBarChart()" ); @@ -92,9 +105,6 @@ public static void BarChart() } } - /// - /// Add a Line chart to a document. - /// public static void LineChart() { Console.WriteLine( "\tLineChart()" ); @@ -145,9 +155,6 @@ public static void LineChart() } } - /// - /// Add a Pie chart to a document. - /// public static void PieChart() { Console.WriteLine( "\tPieChart()" ); @@ -179,10 +186,6 @@ public static void PieChart() } } - /// - /// Add a 3D bar chart to a document. - /// - /// public static void Chart3D() { Console.WriteLine( "\tChart3D()" ); diff --git a/Xceed.Words.NET.Examples/Samples/Chart/Output/3DChart.docx b/Xceed.Words.NET.Examples/Samples/Chart/Output/3DChart.docx index cac16c8740965a20ad65c62b3d595d716e28323c..d65ebaa1168c5bf58dcabe4b4fe5fbacaddbf758 100644 GIT binary patch delta 453 zcmX?Va@2%3z?+#xgn@yBgJE;^(~Z2pnK*!SMBQ46Ynug_Wf=u5O;e1`l1wcu4b4(a z43d*3+p@?p1C?x!V|mK~R_oa#Ei^fpSEs(&K)`i<(%F3yO`3{aCzs96SsZiVMzRB| z^i8$QbJtw^uV`QC3Xr~}w=2=|fB%1*+Ml2QChx9)ZC&K{I%=`E$07-iti+VnuZ7&! z&%3taes2GbLV2^8%Y1z;>bIs|sIbq`C|z`L-tH4TE1DPgyxqyacssmz-F1BUvAzv zCCJcd-l7!A)zgj$@oxV&@uiwy+$ZKVexscmFWi*BTgw>W&5ab0n>+X_7{S5BEWpML zX7C69&)h_29Ow zX4c1BEThG3gVqO#M6R7&cCmN*=l>s`zwAE$z5ndHweL?zI_2zLz2bz0>VqxjYgcPq zEvlVRvi+{i!r&QZNtgL1E>YJD+u|rQPojHQW8Bd*{0}B2*S-*4W_Tqh;Fs&w17UNf z>zpxukz2238O!#=f6?}BS2ujGdUNoh{6U>ZOPf7TdbUb!SoG#9yYb3Muf diff --git a/Xceed.Words.NET.Examples/Samples/Chart/Output/BarChart.docx b/Xceed.Words.NET.Examples/Samples/Chart/Output/BarChart.docx index 350ea2c46f1181f10be017e8c71c3f1a07932b71..5019301ccea3e6d62b3ef64180e11397f3046533 100644 GIT binary patch delta 587 zcmX?PdeD?Nz?+#xgn@yBgJE;^(~Z1;nK*!SL{Px3xtoQUWf=vM(<}^AjgwOojVw$| zOpFpI+q1|q1C?w}V0p{I1yUOvGUd^KhRNZ)8ui|JhZRIzw>QnWKBH-3aBIpX&t-vT z3_pG@zLCI~H+yU81=Uh+*NIoHGTG-=oY>oc_@eOq_wu*@-oCI{{KLZHu%uZ}B^piF zy~p2l+*-U!Oa$+4wSp**``##keXCiMdnq6})`n=B|Hc;%(By zH}#0SuEYza<+luuii%52ygKELNydlF#oxp39}Qa5vS*1;#zJmAhHE0+0?Ac>zi)e1 zv+$^Q?B}L~Z5MgP*F*)M-g4@A_3~_s@-OaZ&c4Bz<~7|QdDQuK>cOG+~H(u?&fa&rQ_ z8JR>F;L#uPlf~t}4$ydgc?JeC6zvSclVyb^CTC0WfSp(+CC!*Hd76|O+X@MgIsk#= B;sgKy delta 612 zcmX?TddQSFz?+#xgn@yBgTXJxY$NYqCJrDSp`g%Ry;+D^mQldSC^0S7B01UE+$7P& z+{|LKJ&PPOP|4;5mbV;SAhiZ5Rqq)XCx`QD)H~)KRuFJq-*n@80{ihiQT5q5n|g~F zxtepYvT+~FEZ(M9wIpt##-=Fsw~M6pf7Vyn^!}*%f8)))Uwv~9wqLv1wTyE)%bKEH zTT5NtP54#s=9;^|P&w9lVT-fE$1YycT!D7=V@+8LrYjaQ-?$<1yt?z_i)=HGuS(eo zlFzfBJ?E*fI<2z&G{b*ItK=xw>gC7ebpA1>G3v{*c==tr-XNN~{@iO#U!~qj&FfwS zipD(YSJR)O=Mu%Fnq#PH{q6jN$8PV}?(3cz5hj*BQ*5VLPzTSENlAHjRcd*pt?GiTd0H6F@!Vn}oSzpo$Ib@3^9qK^=9Y6K&b#F!nhEf&=1|bGy zP|L@_P@Z3uqMuiqo0M9VnU}6tk((3X&B!Fe0FT^=y=jdix0o0hqS+Z31d+8f{NRV` zFHS8f0qQPB*DepT|0j#feI20P`tl46Vkr6Sth2Xm>H#}8mAeX z7^GQDwqucF1}fPc&+?W7tkzWgO3368Uafk^pu-9xZR-zhFc)yXwCwU0Y4f{fRgK~m zDw4t{7y_%!#N|$EpU7~#{pyhKv_JMWHJ=~+{hGVGUb5;_%enGvAtt^Ssu@c{=VoeI zvDR*1_WSO)4%?O;hqvE-;c1gp<9b`*7;kdiHj4)THyvtbw{|f)#q4V9RghokSa!bh z;2qWG`Z(j0FKr&xcZ9w6d(=Gja)a6*#x%P*)nBH}IbbTGb!y();Nn>>QmX8s7n2oF z8Ld`a|IV(!4Mq8K6I4Gj$Evoic>2GNoz1_htjoT-m&>CD<>pSl3Px~1u?Vm+gBiTS zo-ANSq_{g+YVu+U8+dR}elB4MlASCqX@v;aSVopxEGqMf38y6ckaL8c=!*8R`RzLXv@ zJL{;5=%OU)uv1Lajs*37_&Dul@En_8%+LCNtyU`f>i%6GH7GZC@>MW`1Byj}jTy|~ z74~ESGa|*^!BUeKOW44Jd-8J$Ly+ubX-O+YxW-C4fdv;y+Jfmvk~UykQOXfar%HJM E0Ftw`JOBUy diff --git a/Xceed.Words.NET.Examples/Samples/Chart/Output/PieChart.docx b/Xceed.Words.NET.Examples/Samples/Chart/Output/PieChart.docx index eae41d0cd39429c2c295bc28245f5bd5c6e5dcfb..284f18c019491c033754ab9eefbf21655a729732 100644 GIT binary patch delta 510 zcmZoOYB%By@MdNaVPN3kVAx#!bR+L?CJrDSF-^ceeX{_wETe#hWs+f%p}C1cqG76u zxmoIDTNXKHppwmTEN?l4Kx$hfP9J4pWMH_%#K0iKF!`LgT>aKbj(&#?1YFlAotrJu?(vuHP+`$wk>KGNV;pCc5{8({Z^1&?orG8Ul%7=9Q`4+OW>Hh*WMQa#q)0n`sPe2 zoz-4ZqARZ6Sw%<}YmF8JShi`Q4C`Dq#pb z_eH5cH|aD{V2?Z;D5ff=6x?Mlt+q;tBi8q%&n`!C^Q!Exu{uXiwNF{-WqEpI;_O8c z!Do^=K7PG_d)DXHuvVE$z0W}&$388K3id9!(;B_p+oJqt{|xIBZyq_V|M!Cb9XCp_ zZf@tRU<3ymlK>ktn87W)gbB>pB9n*2x11|Ia29mEYmvXe{1t+)_jJb8z>16cUC zxHMz+WN`^aFwa^-n&}(=WI+Mp$=MP-V4*4rX~zGPr%9-SdHaA0mWfV2C@MPngML0NbLfxFTwvA7#Qv_F)+w5Og=9zSHE?VZ(g&3fZO_{v->2p z7A)gBsWv-jam)exWCvF1n`*h|uDSMK(Z13Z;C)GNSK`a}()RYfe}4YkcylkWt>xm+ zb4^WCJh@nUx2!Vuzx`m$xjb&pX)=t!5eP_J{vs)?Lp#(U!a!hvXAp9bW3r|Kvz)^Fp>? zS#xJyR=Lz56T<5*@~KlaQq`+*ryE<#x@9TL92ay;@7?}OPb_KbDgkeulBFea20NF{ zI4302?!y!6Uqc3C!3m>JFBg{8!8d9`chN#SKBSlS{>|xDY`+d8fDoSon{) xG-K6d2?<3o&qhL;@$2LW2?a2(8p!)MdAfuun71FuTRQo+gc{phF<=xi007A#zgPeO diff --git a/Xceed.Words.NET.Examples/Samples/CheckBox/CheckBoxSample.cs b/Xceed.Words.NET.Examples/Samples/CheckBox/CheckBoxSample.cs index f854fce..9415861 100644 --- a/Xceed.Words.NET.Examples/Samples/CheckBox/CheckBoxSample.cs +++ b/Xceed.Words.NET.Examples/Samples/CheckBox/CheckBoxSample.cs @@ -1,6 +1,22 @@ /*************************************************************************************** + + DocX – DocX is the community edition of Xceed Words for .NET + + Copyright (C) 2009-2024 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/ + + *************************************************************************************/ + + +/*************************************************************************************** Xceed Words for .NET – Xceed.Words.NET.Examples – Section Sample Application -Copyright (c) 2009-2023 - Xceed Software Inc. +Copyright (c) 2009-2024 - Xceed Software Inc. This application demonstrates how to insert sections when using the API from the Xceed Words for .NET. @@ -39,9 +55,6 @@ static CheckBoxSample() #region Public Methods - /// - /// Modify a checkbox in a document. - /// public static void ModifyCheckBox() { @@ -49,9 +62,6 @@ public static void ModifyCheckBox() // This option is available when you buy Xceed Words for .NET from https://xceed.com/xceed-words-for-net/. } - /// - /// Add a checkbox in a document. - /// public static void AddCheckBox() { diff --git a/Xceed.Words.NET.Examples/Samples/DigitalSignature/DigitalSignatureSample.cs b/Xceed.Words.NET.Examples/Samples/DigitalSignature/DigitalSignatureSample.cs index eb434c1..080a58a 100644 --- a/Xceed.Words.NET.Examples/Samples/DigitalSignature/DigitalSignatureSample.cs +++ b/Xceed.Words.NET.Examples/Samples/DigitalSignature/DigitalSignatureSample.cs @@ -1,6 +1,22 @@ /*************************************************************************************** + + DocX – DocX is the community edition of Xceed Words for .NET + + Copyright (C) 2009-2024 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/ + + *************************************************************************************/ + + +/*************************************************************************************** Xceed Words for .NET – Xceed.Words.NET.Examples – DigitalSignature Sample Application -Copyright (c) 2009-2023 - Xceed Software Inc. +Copyright (c) 2009-2024 - Xceed Software Inc. This application demonstrates how to digitally sign a document when using the API from the Xceed Words for .NET. @@ -39,9 +55,6 @@ static DigitalSignatureSample() #region Public Methods - /// - /// Create a document, add 2 SignatureLines and digitally sign it. - /// public static void SignWithSignatureLine() { @@ -70,9 +83,6 @@ public static void SignWithSignatureLine() // This option is available in .NET Framework and when you buy Xceed Words for .NET from https://xceed.com/xceed-words-for-net/. } - /// - /// Create a document and sign it without SignatureLines. - /// public static void SignWithoutSignatureLine() { @@ -84,9 +94,6 @@ public static void SignWithoutSignatureLine() // This option is available in .NET Framework and when you buy Xceed Words for .NET from https://xceed.com/xceed-words-for-net/. } - /// - /// Load a document and verify the signatures and SignatureLines validity. - /// public static void VerifySignatures() { @@ -98,9 +105,6 @@ public static void VerifySignatures() // This option is available in .NET Framework and when you buy Xceed Words for .NET from https://xceed.com/xceed-words-for-net/. } - /// - /// Load a document and remove all the signatures, but keep the SignatureLines. - /// public static void RemoveSignatures() { @@ -110,9 +114,6 @@ public static void RemoveSignatures() // This option is available in .NET Framework and when you buy Xceed Words for .NET from https://xceed.com/xceed-words-for-net/. } - /// - /// Load a document and remove all the signatureLines. - /// public static void RemoveSignatureLines() { diff --git a/Xceed.Words.NET.Examples/Samples/Document/DocumentSample.cs b/Xceed.Words.NET.Examples/Samples/Document/DocumentSample.cs index a4ccc85..1f6aba8 100644 --- a/Xceed.Words.NET.Examples/Samples/Document/DocumentSample.cs +++ b/Xceed.Words.NET.Examples/Samples/Document/DocumentSample.cs @@ -1,6 +1,22 @@ /*************************************************************************************** + + DocX – DocX is the community edition of Xceed Words for .NET + + Copyright (C) 2009-2024 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/ + + *************************************************************************************/ + + +/*************************************************************************************** Xceed Words for .NET – Xceed.Words.NET.Examples – Document Sample Application -Copyright (c) 2009-2023 - Xceed Software Inc. +Copyright (c) 2009-2024 - Xceed Software Inc. This application demonstrates how to modify the content of a document when using the API from the Xceed Words for .NET. @@ -50,9 +66,6 @@ static DocumentSample() #region Public Methods - /// - /// Load a document and replace texts following a replace pattern. - /// public static void ReplaceTextWithText() { Console.WriteLine( "\tReplaceTextWithText()" ); @@ -80,9 +93,6 @@ public static void ReplaceTextWithText() } } - /// - /// Load a document and replace texts with images. - /// public static void ReplaceTextWithObjects() { Console.WriteLine( "\tReplaceTextWithObjects()" ); @@ -107,7 +117,7 @@ public static void ReplaceTextWithObjects() t.Design = TableDesign.DarkListAccent4; t.AutoFit = AutoFit.Window; t.Rows[ 0 ].Cells[ 0 ].Paragraphs[ 0 ].Append( "xceed.com" ); - t.Rows[ 0 ].Cells[ 1 ].Paragraphs[ 0 ].Append( "@copyright 2023" ); + t.Rows[ 0 ].Cells[ 1 ].Paragraphs[ 0 ].Append( "@copyright 2024" ); document.ReplaceTextWithObject( new ObjectReplaceTextOptions() { SearchValue = "", NewObject = t } ); // Save this document to disk. @@ -116,9 +126,6 @@ public static void ReplaceTextWithObjects() } } - /// - /// Add custom properties to a document. - /// public static void AddCustomProperties() { Console.WriteLine( "\tAddCustomProperties()" ); @@ -151,9 +158,6 @@ public static void AddCustomProperties() } } - /// - /// Add a template to a document. - /// public static void ApplyTemplate() { Console.WriteLine( "\tApplyTemplate()" ); @@ -178,9 +182,6 @@ public static void ApplyTemplate() } } - /// - /// Insert a document at the end of another document. - /// public static void AppendDocument() { Console.WriteLine( "\tAppendDocument()" ); @@ -206,9 +207,6 @@ public static void AppendDocument() } } - /// - /// Insert a document inside another document. - /// public static void InsertDocument() { @@ -272,9 +270,6 @@ public static void LoadDocumentWithStringUrl() } } - /// - /// Create a document and add html text to it. - /// public static void AddHtml() { @@ -290,9 +285,6 @@ public static void AddHtml() // This option is available when you buy Xceed Words for .NET from https://xceed.com/xceed-words-for-net/. } - /// - /// Create a document and add rtf text to it. - /// public static void AddRtf() { @@ -303,9 +295,6 @@ public static void AddRtf() // This option is available when you buy Xceed Words for .NET from https://xceed.com/xceed-words-for-net/. } - /// - /// Create a document and add html text from an html file. - /// public static void AddHtmlFromFile() { @@ -314,9 +303,6 @@ public static void AddHtmlFromFile() // This option is available when you buy Xceed Words for .NET from https://xceed.com/xceed-words-for-net/. } - /// - /// Create a document and add rtf text from an rtf file. - /// public static void AddRtfFromFile() { @@ -325,9 +311,6 @@ public static void AddRtfFromFile() // This option is available when you buy Xceed Words for .NET from https://xceed.com/xceed-words-for-net/. } - /// - /// Load a document and replace texts with html content. - /// public static void ReplaceTextWithHtml() { diff --git a/Xceed.Words.NET.Examples/Samples/Document/Output/AddCustomProperties.docx b/Xceed.Words.NET.Examples/Samples/Document/Output/AddCustomProperties.docx index 0e6c009e5b494d61a53cf98f8f9593f8a9acdc71..9b0d70e0f9625221ace8a587a3c24603326773cf 100644 GIT binary patch delta 1778 zcmZWqc{J2(AODSEFqeoiCS@#xW0GwedoNdpH(RFem2IR36RNSKjF%cqGqO(l*_X@} zm9kU1wrkg1P3ct(axB9^L%1Ya@*3~C=dJTT=RE&B=kt7@^L)Oa&-asTm}+>K=m-@> z0Dy!9P#ZPl9z`qQa76%sC38?E zmQ2pS6wz;)Ng2qqZM@N#^-7SXQu)y|^NMSnfvDQ;w4uk`)H3q;(6NMjA6v`mKeKV* zlM+}%(0ulCBbt0?GEc^Do2sgH$)obwk(nQk_5hQ{EYJr7pBHtYZqNyvAghQ%1Ty=uS^yrt8~a zeI#BGXD$_iA}k5Y8T~GWc=(A+9m%| zNNRd#d&&=>j3+gB`KCeGR%YL6(t4dKu{_x!7WNFLpF2wm_EmR+#}^U7mbsAxd!~4I zLafX(%V+vS$v4-Gdx^?kCV(nRav{L zINlIyw+YU9m`{B`0{HFEgWBRkM++*F(PeJhPm2ExY?{+@q%eE)U80*?mJU==wBAf~ zPM5P!*kd72Nmj$w{R*GGZDh8_4pI_B)l&xKPBoL`*_f%YH||6X>X2MROseu?b2^H3 z>q7FcE@41cX<+wumUR_9cRKw1gcae@=aPx`viC9FR&B>7BAGvP>^C7q;`&rHy-X|J zj^nF8cg9WHudT1Xa->*yYGi@paKlJ>BWKR#=~9nf`GVkBMQuTYtsBDZk5YG_Yh!b% zUhi}2xn2RzjWnCe)E=Y<);y)x?27(P=YI!?PiEaAnd^{!Zqj98PzfP7Csa0Wf<^M` zbeB$5g!pn(;&^PxbKTO4O0MSv!5YPh^p1vEe$pi(-9Jy>{&e3jK;z z65r33M_L;ilf*Z0&ilRD8(p^>JPIVEj88^ni-VR@AEFWmxt3I2*N-O+ky7 zw;?fd`k_K2*F?heSw z!`kJQh3qiSKnL=ZiP6){>1S1&lbp!W4`D!TrPFLtj+llKYnJn6y$LgX@}b%{x@6|n zGZ$&(X|#!zwn+~>q2nbnx`wpqdE*HEmuau=L|G&W^(9T+aTQU)Tf2?q(PCcf#(dIP z6Y<7vZRi)1b%Jtbs_>!a!|~a0C5HfXdPt>vslRRCQHzvI|1{$U-uROC_2Y*bjq#$E zNa&A^+2kmD)LAOnK%{?|^I#ehry@KN`rs7=0EGJ|;QO@=jw6+X4F$K6haoEJp{byS!v51kq!0{5_ z3!EP?OmJLLbsr;?4|T5&4hjJBKVVoO8l}FE5q=M~havwTMi2BsX~80p!i)a_4SyI% delta 1793 zcmeA*>^7_q@MdNaVPN3kVDOGHi%>kCEPjTGfgzBSfkBXgfuTIVC`CUdKe;qFHLpak zA~$Dmn0Nkd1D<{SH|hmy;vR)hD|LIk$U}a)*uhJQyS0pDvp1_c2R&N4zivv-@{`j_ zGX=jSc`x}fQQkMmZvT(asVTf(#hPky7CbggO(%Q0pB|}?o>^1yOfYxFi409vpFO-8 z@0Du*zuV(!bTUko!&$)TMN03jLo=*C)}G~Bu|n>Y6pL2zO0BGd)zj)+ubvOJP1v+* zNaR`-=Cy%USGBfxBo??Z z=^nZEXokSI+HVs>rgZD}tnIUJ*tW0z#cuCe%~eXDrf~o23VFkJATIGd*Q%cOr#>8F zU!2mUx0mg<+S)&JlYVS)TiO!Oj64QzJszevBKKd_8HlXUwEQS>jY*?k{oD3sZx_c- zzmmA)umW5BbJ>=2!^*m*lE-g;laoxJ(r`c;wFSb4?HK+Swdi7Lu&&JmuBYW!k|NT2@omDH*X&!GO^{~aUWS@?} zuKRjR4!YIdnm*xu2KR!QbN%Ks9m$&%<7K{P*W04hJJ)>I$?o@=RyL_@W=Z?^FBTK? zM9;4=*Go9Y>&*1Ag8kUpxao_&?K+TK9)Ba%{^BL!`>+ha0L}o(EVDmu=3|y+6izd> zOiMIPHBT}zN;64LF;r5}pS+Mca`JQ*GXXO*3o{Fo6vMP+!z2@vWV6Y4S>%|3`DgP# zmbV<7po~=Pzq<7OZdukCdaPl=#BI{P_YcTib>{tj_gly0 zj+M$hi@8;LXIwZSu(*1O$qB}-95YKZf?OllyZS7Azf$;9KS^F`bin!sHLO$JkzUf4yruTUBbp@^y{M>nE7_ur^xf`uleIEkP7ce4zC2_racCJV4JbAZBTeu&T1$qR**>b(yeh_HXy{h*w~ z^0t|8bZP3^7gl>u9$5HDS7p8N4HZ?-<<5WJEqnFs!0bncmHqbn_e_6zv-{NrsWp?` z!Yz6^-4^T=3|g;c^TW*Q=!wc@tgn08xbhD?-2Cf9!mbU=*k7w!h$wB*zP|5J|Gn?2 zlPvymbnUb#c@dD)8+xXFajfdH`droaV;>wFzj3NQu@G$Q&wN+5^QH5j^n3Y-e>~U| z7`XrO!v(Gxze+bcuKg4g@?)!Jns4v~rA41l>Ueop3Hok2>FMIfxlp{M%+hlH{=_T& zXGN6HhE)7Jvtr)Mv!xa_&)S}B)!+T^W@YsKVur>%pV#wevZ|Q&FF#rS^YFwR#m55m z|65LNTVY^hSkV7keu{N+t8-$C#=d#_-*v0|_G^Ax`zVHkTd$|uf8x^0u4y?j3t7!% z7HV@Zh~}K@z@0Y#pKC~tEAQt-Z{_7vWh+)LSl04P&{NrK`pd$ZPgT!8dZcoedy;KU zLfPEkbDsR(eEmIY%=|hj8@bs*)R~bNrP!Z5LCi=VBm&9@XBZh6K$sg?5g@?t$q&V( zKoL6mpO`e`hsjdna!4uOQCyVi0q^9$ymHzB-i%Bl42Ze~m>8~m1C1+XVPFtKm?-0Z-#y}L7*Zguwn08&F6 A%>V!Z delta 59 zcmX@x&v>?1eH#;zG@9qqyTirbXk&hIQ diff --git a/Xceed.Words.NET.Examples/Samples/Document/Output/ApplyTemplate.docx b/Xceed.Words.NET.Examples/Samples/Document/Output/ApplyTemplate.docx index d417794d486657dcb27e0f8a185b891833fb52af..bc585199800a3bec62d9c3852b1c990685fccefd 100644 GIT binary patch delta 584 zcmZ3woN?)LM&1B#W)=|!1`Y;>P1R2~@^UdV1L@6D%rm*cjBR{@5D_jR5eP$3bUq6o zP))?)j$>OUGB7aQW0*WaN@VgQ$pv5?ty27qV8(RmJrG8itOkV9DCfw?0n!?p`F-Ey zGl~k6U&-GD3)CKX`3x+u-j8eYSB3K+1129={0BDZgc36om~l>JImDm}H3bM`wt6H) z>bs^igdwUU3t^b*K^dV2P)4ayG(_sM2~^~>8I&Px31t{tGqHi~vT$^QSW)Yw4q+^J zu4VyCsd`L>i0t)z24+lN=4}R&nS9^d3QWuR*n;U89~&?|+s6(}-+|Jyz7T$#uQOPD z36y>Xr49T%!QwT3p5Wk#T6!jZa-*Nv@4ur^i2SVgKq4aSm%^KtYHs2%29!z%yxr6B|K@j_dgCYFbU=IMv$NxJ3 delta 584 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 d{~-XLfD&(mM9`KWQ&jr5shq- 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 JKBk{n{|9yJg;M|k literal 0 HcmV?d00001 diff --git a/Xceed.Words.NET.Examples/Samples/Equation/EquationSample.cs b/Xceed.Words.NET.Examples/Samples/Equation/EquationSample.cs index 924ea5f..18d6122 100644 --- a/Xceed.Words.NET.Examples/Samples/Equation/EquationSample.cs +++ b/Xceed.Words.NET.Examples/Samples/Equation/EquationSample.cs @@ -1,6 +1,22 @@ /*************************************************************************************** + + DocX – DocX is the community edition of Xceed Words for .NET + + Copyright (C) 2009-2024 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/ + + *************************************************************************************/ + + +/*************************************************************************************** Xceed Words for .NET – Xceed.Words.NET.Examples – Equation Sample Application -Copyright (c) 2009-2023 - Xceed Software Inc. +Copyright (c) 2009-2024 - Xceed Software Inc. This application demonstrates how to insert an equation when using the API from the Xceed Words for .NET. @@ -39,9 +55,6 @@ static EquationSample() #region Public Methods - /// - /// Create a document and add Equations in it. - /// public static void InsertEquation() { Console.WriteLine( "\tEquationSample()" ); diff --git a/Xceed.Words.NET.Examples/Samples/Equation/Output/EquationSample.docx b/Xceed.Words.NET.Examples/Samples/Equation/Output/EquationSample.docx index f0ce4d2539e9886f42007ab533d6ec44c5aa1217..119b51e2cb067f09404e56b949eb4b1a1a3a84f1 100644 GIT binary patch delta 476 zcmZ3eGhc@{z?+#xgn@yBgJE;^(~Z1J%p5>Ef^W}Gh0W&7vW$k7hL)yg1}2G?mTAT& zmZpYE3i@_7`a!8Vi6xo&dBqu-1;utKW^8U{dCS2GGDK~QOWFI$)x4VZ-hPJ-1RT~U zotBa@2e*N3>6Fcw5^8UX2tzmM{N@bqMG9FSJ7q%)Mt8~r`V3v|JGGFXF z^<1TLGFPpC`pS7J{aa2HJN});c)i}I$maYH`9-gH1wL#J?sk;^&v04byfB-B`^)Mc z-3#K+zpBnwm73sw_t3(Xr&pbp4%5C@u+CDT%2;*x4B=lT7w3oFZ=HH$Wx_6@9#hwI z7Ws_}rlyj|wbKJC;g0@HA-En`9z7s|Xj)?fFe>X4TD`8{?2FYe= z0XAkZLq*sGEHXJ-#0DPXljn;Vf@CLO7O_GKK`~KBuxOO1G~>j{Wul5;-Yg)GXYw{t V1u*X>kS99%tEd{A7ce#%7yv-s!>j-R delta 547 zcmbQQvrvaOz?+#xgn@yBgTXJxY$LA{GY624xMgH7yV;ysmeJ5C&BV+o$;>b*B{|W= zBr!=zLEp|sKPWXPu_QA;uQ(&Kpx6$@jLoeqZ#g(YhD<-Pl>Ou6YF^EH$GpP|0k diff --git a/Xceed.Words.NET.Examples/Samples/FootnoteEndnote/FootnoteEndnoteSample.cs b/Xceed.Words.NET.Examples/Samples/FootnoteEndnote/FootnoteEndnoteSample.cs index eeb187e..a597c4e 100644 --- a/Xceed.Words.NET.Examples/Samples/FootnoteEndnote/FootnoteEndnoteSample.cs +++ b/Xceed.Words.NET.Examples/Samples/FootnoteEndnote/FootnoteEndnoteSample.cs @@ -1,6 +1,22 @@ /*************************************************************************************** + + DocX – DocX is the community edition of Xceed Words for .NET + + Copyright (C) 2009-2024 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/ + + *************************************************************************************/ + + +/*************************************************************************************** Xceed Words for .NET – Xceed.Words.NET.Examples – Headers Footers Sample Application -Copyright (c) 2009-2023 - Xceed Software Inc. +Copyright (c) 2009-2024 - Xceed Software Inc. This application demonstrates how to create footnotes and endnotes when using the API from the Xceed Words for .NET. @@ -41,9 +57,6 @@ static FootnoteEndnoteSample() #region Public Methods - /// - /// Add footnotes to a document. - /// public static void AddFootnotes() { Console.WriteLine( "\tAddFootnotes()" ); @@ -79,9 +92,6 @@ public static void AddFootnotes() } } - /// - /// Add custom footnotes to a document. - /// public static void AddCustomFootnotes() { Console.WriteLine( "\tAddCustomFootnotes()" ); @@ -123,9 +133,6 @@ public static void AddCustomFootnotes() } } - /// - /// Add endnotes to a document. - /// public static void AddEndnotes() { Console.WriteLine( "\tAddEndnotes()" ); diff --git a/Xceed.Words.NET.Examples/Samples/FootnoteEndnote/Output/AddCustomFootnotes.docx b/Xceed.Words.NET.Examples/Samples/FootnoteEndnote/Output/AddCustomFootnotes.docx index e7e1c3af53650f8db08a7a859adc89698d90986f..d9e89e8ec07a76192a97d8cd72c6168c7dcaeef5 100644 GIT binary patch delta 629 zcmaEB^v;Mkz?+#xgn@yBgJE;^(~Z2>nK^)Tgx%Zw|2Ds2mSq$$H#IR&GPg`MNHt3{ zNli_hEXgXz3{tqnUt-k zvf4nYJb2UTB?p$f)knuRO_eb3nKkW_m!Yaz*Zp7}hn|<;Zf`sHdFr$f)rJW>S9M1f zsJ&a6I;Z>E(c9sBShP3pIpw|d3Y*qp*5&rK6Ib)^{>=sqM=nG_ZqDMbU<3!#Qvo(+ zFyo!D855YHE@lgsnw&0f0}t%UtHljLvXk$NTOoz2l7wSDD2(H${=M$a$iPs_!oVQJ zfDGdJ85qj*i&FISN^_G^i!$@l^(u060=yZSL>S=l8nHL6QREgA14A@B1A`#4c7~e* zQ2oWJB_%-J#pv4QLH6%ml>CVks9%x`-Tp_D86_3LYATK`e8CHJV-_<5gD{F6(vuw} K)z~7%L4p8HgXygR delta 628 zcmaE7^wx+sz?+#xgn@yBgCQWsY$NY=W)2`7F`db|bn_c#Sw;clR7)cx(^QkhBqK8u zBQwLvlB{yfKqZ^4Sl@DRg4CYA;r5YjvH_oQy@2%pRTeW#E@e*PO{lmLmb>A>&fII) z9H(E=6$uS|Vj^2IN%8%mhc6CYKmNSzzg_PW(He<4xi8cnPH71Bu5XAuaG9fV(&8_&3C=fXfBt3TtJFIw{q6;4&d8IMs?isx zIfa?3zRB|{n;G?C?%0?f18p&RhTcRF{&d<#ea( zi_AXFi#lexg)cw;qtKco3fTu6jB<}oy)or!zr^le8+PY|f{_y*j+?XjD;U9{^h|(_ z8O(SuY{mp;Xo%T@r6y;H+rYzm@)~hNknH3K;#Nq3sx09s4+`S=sei9~GcqugvM?|R zF(8B3$;}dq^&mBS(;7u?F)=VivokOVA}e9IA;7>;o?n!rUz}P}l9`uYtXGkn6X4Cr zB*Fl9am3z5$)7lZ+9kQrt#~L5)t;80Uy_$!l8T`p?8b^?3t#X8-I&G9zyQ>N1f(WA LNvg3$h=YUxu5sN% diff --git a/Xceed.Words.NET.Examples/Samples/FootnoteEndnote/Output/AddEndnotes.docx b/Xceed.Words.NET.Examples/Samples/FootnoteEndnote/Output/AddEndnotes.docx index 9e63d9ef40e538bfbd59c349397a5b3d62833c91..2158eef08b686ab87ad7fb70154478addb3125c3 100644 GIT binary patch delta 1948 zcmb7_c{JNu8^?bU`_f9QTB@-OAqWXUFw#b)_K{kHaUzmvDW#^ZzNpk_?Mp`N!D}tG zwqkFsZB1#tYHR6Brlp8ls~J(H2ItK5o%g@F=iGCjKR)NV=YGHEexEsKuCo-u7AzR7PSr!%B zXP5Hbwau6g(r`K|BpNA=uj{E00eMI~JMqw(`D#W&)KADR>4}nY{9vYvW&g3_8+npV zPNhYoq~+JFx~V~a>hBwY7zC9E!Dcq`?$}{+W>Ai>b9-UMa6^EeoJ60pFk+-7O@2B7{A-3rkzYS`8+uFsT28H= zi%aW^1Odi9eS>z7`hnwrGlJa-xdA$m+2p7&_&{dqro$mWF|B2x^uVAuNa?RwzuoS2 zzF~Stb+UYA4I<;Nzj?z5_T;={HLQuoYTnuM%9B>Qom3OSEme-v`8YN6@YmGAxh>y< zGOBp5xY~DNA(KUds%{S$x{&;q_uRB2i`hx;m8uq3L75yLHnOGQjuPdb0`X_*;TU#Y zO8y90nuv`_nxK@?anr%R#82eDxP5OdY>wrfGM_A zmq9eY#54;HNdD9>)4}n~^8JWJj+M~K1~Zt$Dy8N|K`FSaIfMXiBA3Nma+cb?my>%i9ZZt8Jw@YCr^TPyUTP8@I5 z-c2fe(=4Db;_SwkaKe1pAVn#!?3uDY6|~6=4PT1N%)4qGvoQ`m_qlvGW7k1z_oZc( zWwI2j$TC^(lz7f>o>tn`;T!yn$t_3s)C>bU&ow8Pquw0SPjh75;~a}#bk}j}0Ye=? zJ@b%uj2Yh&N-C^&FpYEi?H8I=8W76Idw1x$%AFR;^X3l?nJ!?>~BNP;gig#|N1l(Ag@UI>%f0#k{ zx^Ed)^`4XKXgl>e=LguiZJ`F)NqfnFlJBr7ciLY<-%I3IgtF!%u zvfQ_!5aSPr>K5OI>W8PF*Stz9U8v2;<}1N&2MA_QG4e^UDF-)Hr+j|?HR3hB?3>w6 z)+(4uIJPg?^B7OgYNzw4sqCAk(HG{6bV&@B^X{$J5p7zWKS%0l!;DNrWBv5M*ep82 z-|xjyW@B0W_l#E32Rub_BDi<1F?8NTm#rpdG1l8ALXhiAj+0ldaqliW&BDI9?vWLT zc(meObK=SBb?}+V#zXhV3Mz*NoHT+wpQ4;iV-_#G!t#q6)&KiN=+6&|KZr^qh~Olq zCIJAry{!)bKxj}1RX31E^&{)js7NHn2Sq`UDTZhS+LwYv7*l-F2xCLEAoNTcR0^N${Hvp{^i>z}Q7iargm{K68p=HM=)r@Oe@O`=Q1>*g*3 z9Zv&ZGOvjD1#<>Xr!=PG&k+Y$IL{%;d@i>z3^jO@)g!PpVTGwW8^lkI9(t@T=ytd( zSpMTm!h*=3LLKPDz6i5DNHS)V`uBg$7Uq^ZYCqnXIvOVbGeoXv;1u^q3MpgfwJit$ zt_cFbkv(m{EjDvVL-~Md_l=TyBLD!NA^-sS2JBTjObA@*fH}xaFaSjD0e@$Vm;|^I zegCfi_wie+3Aumls!s6b3j|w`fDG{0OeOC7JG$5P?B0VEzIETLKn~0`xYmIVP|cGd OFQ$nmO!%JqKJy2oxKzCW delta 2006 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 pdb4UabHC delta 1315 zcmaE9^1_5Sz?+#xgn@yBgCQWsY$IZ9-T5^(! zg@M`Rc`S0wKqZ^^v%KX1tG$@Uwtw;#UaflHyu%6tZtI(Fm?!xB6+U`$+3dWcYaL_n9;W|b@3(rRjg_j z`VljX>tEVr~Sp+w?bq#BQfH1FSv+y8?v6)J9w(koN)i;f{QCRlU02eh z!cr9aB(H}RYQEm0b~-ci{l&^X|Bq%H2s3MJ4)W&PIc?J_(X;&$yCZMBHAe~3%^&$H z7{LLSBf!SY2@2fgZ@rfKldFXl>u)Ov>M+<(QB(#UQt_nOZ(ts zQ!O?Yi<@7rmp4tekUy6fc530;Yw8C+%=lh$xS;rVgr^bv>y|J{*)Pdn4ux~MzfQP# zOMLJ5DHi8L&MgU>a8cEw%DV3Nvou4kE#JJV3s?-NNb4F!Rpq+{KB?doEw0UVc(}jb z>2_D;n_KM}3v=_s+T^J#*m^bY@>dVH$s(5eZfiay7&T}saYaB?LcS!GF)Q`gty2{RW8o%N?y1s988FwmzMGL``Feg^-NepG;lh98 z)n1+8I(g`=SpAEJSGDus1#=Xq9d~~BJ?&z_`%}07?JM^8dl2==b^FARcE{fHybbeA zV7z-?MDoZ-(RE6E`u^b@Cpg#7y)G*D!24(Yk5~We@BCM_W7N6!GXBVthaTz$bJhMF zHb~rT;&=J=2PG|5spER(tCo45*DTtl!P4G8>$<4M{V5jQMj^%FPF#;~MU@{}X)JH8 z@^4FG!4wzwN9%&0sI&XD$r~v9RooDN;i2><*R)E{wQP6ZA9j?46%oxe-{i#Po1(ys z$Jb;a!1`dd$>!-wivpQc5Gn)1MvqQ?2th+B}JUaCB$=Tm(GmpQW zm+N+OGIx~vmQ#sRM;!tRW4W(BEBJOcg>$x&_QrI(oE?4=?oO^dWvt$xofUN4ddeBs zTMM{67q3mR>)E!n?W1t^M76>_3%*@$$e$b%-W>A3V^=22@wLy=J5T*@$P`z(&0WeA zWO#c~{pQ04F3Rp}l-E7gwtZnGbFWu!ZIbPT+PTi1pG_XFjy%+tIcM2tO@XMCFRwX| z3Zr;$^9?auaK4!=Az=eAlP1SV7=kj>r|AIW;`|7R!WVHLjoiZ0Kpzh&;S4c diff --git a/Xceed.Words.NET.Examples/Samples/HeaderFooter/HeaderFooterSample.cs b/Xceed.Words.NET.Examples/Samples/HeaderFooter/HeaderFooterSample.cs index 09e0c8f..db8620f 100644 --- a/Xceed.Words.NET.Examples/Samples/HeaderFooter/HeaderFooterSample.cs +++ b/Xceed.Words.NET.Examples/Samples/HeaderFooter/HeaderFooterSample.cs @@ -1,6 +1,22 @@ /*************************************************************************************** + + DocX – DocX is the community edition of Xceed Words for .NET + + Copyright (C) 2009-2024 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/ + + *************************************************************************************/ + + +/*************************************************************************************** Xceed Words for .NET – Xceed.Words.NET.Examples – Headers Footers Sample Application -Copyright (c) 2009-2023 - Xceed Software Inc. +Copyright (c) 2009-2024 - Xceed Software Inc. This application demonstrates how to create headers and footers when using the API from the Xceed Words for .NET. @@ -38,9 +54,6 @@ static HeaderFooterSample() #region Public Methods - /// - /// Add three different types of headers and footers to a document. - /// public static void HeadersFooters() { Console.WriteLine( "\tHeadersFooters()" ); diff --git a/Xceed.Words.NET.Examples/Samples/HeaderFooter/Output/HeadersFooters.docx b/Xceed.Words.NET.Examples/Samples/HeaderFooter/Output/HeadersFooters.docx index aff6febf285cdd2b48b0037326dfe66a22bdb948..08d6862c3133631210d378f3d5c24c6825bd685c 100644 GIT binary patch delta 1758 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 diff --git a/Xceed.Words.NET.Examples/Samples/Hyperlink/HyperlinkSample.cs b/Xceed.Words.NET.Examples/Samples/Hyperlink/HyperlinkSample.cs index e709818..d36f1e3 100644 --- a/Xceed.Words.NET.Examples/Samples/Hyperlink/HyperlinkSample.cs +++ b/Xceed.Words.NET.Examples/Samples/Hyperlink/HyperlinkSample.cs @@ -1,6 +1,22 @@ /*************************************************************************************** + + DocX – DocX is the community edition of Xceed Words for .NET + + Copyright (C) 2009-2024 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/ + + *************************************************************************************/ + + +/*************************************************************************************** Xceed Words for .NET – Xceed.Words.NET.Examples – Hyperlink Sample Application -Copyright (c) 2009-2023 - Xceed Software Inc. +Copyright (c) 2009-2024 - Xceed Software Inc. This application demonstrates how to insert hyperlinks when using the API from the Xceed Words for .NET. @@ -39,9 +55,6 @@ static HyperlinkSample() #region Public Methods - /// - /// Insert/Add/Remove hyperlinks from paragraphs. - /// public static void Hyperlinks() { Console.WriteLine( "\tHyperlinks()" ); diff --git a/Xceed.Words.NET.Examples/Samples/Hyperlink/Output/Hyperlinks.docx b/Xceed.Words.NET.Examples/Samples/Hyperlink/Output/Hyperlinks.docx index ca82b0a3571eaf4d42e7c4aa0a2bdfb71a7aa074..8d268382b37b924cbb8ec04f3facea7b646df946 100644 GIT binary patch delta 1634 zcmZ9M3pCSh9LN82opQ@%L~dbkO>&!D@@hjaEi-9Zt1N4-ZI&V4To$^#8eTRW4Mj91 zmzYbZQli3JE_1h{$eqO^l+ugy)~TLzp65L0Ip_0z&iVe%_bV`*GgQQ&M8%W<01O7W zk)t?=QXwKbRdE+RgSWpDOi@}sf8oe7s5Cm@rNZ8dflD8ztzHFx7U3VT&?zXYnvDu? zt6h$Yo?mo2kt*Y_o0bi2KxW9N91Pa+>?Bbb3>Uk^o6ODwE}76{#?7z#U#L*|*#_06 zNPHZupxL6yu!QmfZeDzW&5jL3Z0BO`b09V6(t8fSDa)d7=1g6}mn)^;eYIfvqLhhF zvg6{%a;`A&#wCfcV#Q{xJ6K}CEv>zio#qp5r(mjq>0?Ppq!W=-l#`2Um;0qap|Eoa9@^XZiOzvAQrUBCW9p5; zMSv2Hq|X+cwAka zy6@J(v@YQzGd-%mxvOfAh`$>;k~gQ^qx{kOi+7638%WNkd9y=KM~5%Av>_gwJPrv; zB!pTEW?1lC$~nm@KJe)t1>tEos2<*QDIe5MpD`(e=6KNKW8@N07d)?|xBDXwt2_G= zP}-6h{=-DogjVtE&~VnMzo}*|`?zqLx6Jl7tFy1i-KZ6EnLCp$HuJy}F z)cw=Yu1<%3YiiA6s#S=kI4q|DjpF4K;DB2k1J^9t+;!5ZhE#8T?3Z}av=9=8F+m4u ziJ=b%k2tRyvG`*Lu?L)>UXRGOa!XIlUMGZ&+?T~7-|L z3_>0@T1jxix02cug;>4OnsMF}LYGPA7Gl+g9WcvzkxiLQh?a-nq;bLfqta3YT+}Xi z?t|Ch+!pfIMd?K1*CA0`^hd4AGe;YMdKK@j*2eew9`6d}wQd+&4pnDmzcyVp z$owkuJ&C|t5+z1)epc_;+*(l$ki3cI9urHrDbd2z)EjPc%7Qf|rYX9XR_8x-C!*5Sf=ooTQ)SAmCG5ZixbZ(Qn}m6f(H_vs!@Dy`CI4XAYJ^9 zeRgD6#Mz;Q$uY(5jc^`85Or@cQIC(zyA7{-*1&Ig#hwp<#yH1dbt=-=AeuM#ed;W zcjOr;6r_K?sT}cKz5{i|YQdKLZLlXehLc{%6e?JbTlsD4(y!VROIkrw_dQJR3t$ib zsa>S%_!8kJtabOE7Yyci59=NOx0rO)i-z?n7Fng&+e`LXb}oBP5_0C@1`4;B2R~#F z&6JQnPtF^90pH!<=s_-7E&{Y+@wmK%=*DGE5f0k$dZQv)hRSw7cs z^C}hv00Pa29AdP4{luU^B1*uIre$4MRtJ4!Jy6!v{xQHciK;bd+s`V%tPE?DtS0?8 z97jn1+KXBP!o&bT;TM1?2LRzz8p$Xqj6(FG1qAu+j-Zf#=WBgqmG~k6a7+>aw*0~m q$p6oW_=JY8(IM-&!S6i8Qrlc??f;QA4aHyhG1e0ZR6<>O{qaAVKfhoA delta 1534 zcmZWpc{J2}6#p?}jHsDtCJ{4YEX@qcZql=x?CUVYJjpt;MYh5y%S)53Uy+i1De`11 zgvj!;Po5;6l$kmTWyxu5uZMGbuXEo0N8^O+14ENJe>1j+4;-93)}ZaH-0DgHDQc&#&J&M)X!RZO+X?KYZIm zP1eGNw^WPtO45c!lN*2u@J|Evn51y4)_qKIZg;kK^|P4t(NkGb9xHn6;KAWsSI)s! zYtnb@UcWnUjEXh&-vqm|8!`|*Qnl~=0Cnbf&{?b1fte78NU=zCzIv1GukR>H{*aHy z3feZeToq3l63EAW1C=gzRM%#AC(^A{3dwA1+%=~QtQzaI%-PbZF=UO1G=`JI^aM7w zMG}@2mec23?%$IUh?jd-4%Jq^Vq!+N(4aFWD8=99@WJFp^ggc2;euS*1e!5|$-{;e z^~stoGjm3jeJd!s$CsA9StgB$ym!_QWM75fli-hxr5KE_F+usJ?7I{p#$BsQI4;Q^ z@mWL4UM#;@p>M{ZHuuhTr#)NOBBps;o+FJejmCMIJ>J5W?Aw3YSzz)9C*-0CcR_=ho5GkmNv`Is1We7HPL!wVFNZ`hko|Pj;Q}kbtzTdEYO0TMU z%o)q>%cHmW1(nTu&Lc33=PH=xN&ONq6mW?s2{~BT29e@J9zWx$uBNK0s;%kaq3-454bDNOA=@)`A_5C=(H+&Y{F>Ue z_yC{*0sw~ra1$lX>;^5YJ5`a%)uPch^YTN&8VfKqVcfAbUM=s$XjfW5cD=7>M`j~G ztbuKqH10_7jT_d=H(j1v>5plWTz@N+x=??#m*6F*FF=c^Q0g6fsii|z{(zrPT2Tp@ zOx0YJ?aL|&4{9kLHDo0`ER?oeD;e`a4rP}W7RRUhWtcLrm5$~ff3BnE^2KaZ*zQ%h zU{tvWsUY-V`)G4)dKUDohs1eYA*i{`-m8}iMbygSVT_wzr>^Rta|bh^U;WMfNsfM- zCQn^sVG3v9Cs-WaOorW}rJK`0QCQr@@L8$#a@w)s!gfVp`^6)J)%Rasxc-sUu(qsw zx}32mGG5Wthz-%}NvEw3ek1*6no=AxAOi~FE5t>mJyw~|j08<1`{tjGz01*3m9pHdnXnB}8YNz=REI5}i diff --git a/Xceed.Words.NET.Examples/Samples/Hyphenation/HyphenationSample.cs b/Xceed.Words.NET.Examples/Samples/Hyphenation/HyphenationSample.cs index 9c1fee4..892d4bf 100644 --- a/Xceed.Words.NET.Examples/Samples/Hyphenation/HyphenationSample.cs +++ b/Xceed.Words.NET.Examples/Samples/Hyphenation/HyphenationSample.cs @@ -1,6 +1,22 @@ /*************************************************************************************** + + DocX – DocX is the community edition of Xceed Words for .NET + + Copyright (C) 2009-2024 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/ + + *************************************************************************************/ + + +/*************************************************************************************** Xceed Words for .NET – Xceed.Words.NET.Examples – Hyphenation Sample Application -Copyright (c) 2009-2023 - Xceed Software Inc. +Copyright (c) 2009-2024 - Xceed Software Inc. This application demonstrates how to add and update text hyphenation when using the API from the Xceed Words for .NET. @@ -39,9 +55,6 @@ static HyphenationSample() #region Public Methods - /// - /// Create a paragraph and set text hyphenation. - /// public static void CreateHyphenation() { @@ -53,9 +66,6 @@ public static void CreateHyphenation() // This option is available when you buy Xceed Words for .NET from https://xceed.com/xceed-words-for-net/. } - /// - /// Update document hyphenation options. - /// public static void UpdateHyphenation() { diff --git a/Xceed.Words.NET.Examples/Samples/Image/ImageSample.cs b/Xceed.Words.NET.Examples/Samples/Image/ImageSample.cs index cb5ac08..d1bad54 100644 --- a/Xceed.Words.NET.Examples/Samples/Image/ImageSample.cs +++ b/Xceed.Words.NET.Examples/Samples/Image/ImageSample.cs @@ -1,6 +1,22 @@ /*************************************************************************************** + + DocX – DocX is the community edition of Xceed Words for .NET + + Copyright (C) 2009-2024 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/ + + *************************************************************************************/ + + +/*************************************************************************************** Xceed Words for .NET – Xceed.Words.NET.Examples – Image Sample Application -Copyright (c) 2009-2023 - Xceed Software Inc. +Copyright (c) 2009-2024 - Xceed Software Inc. This application demonstrates how to create, copy or modify a picture when using the API from the Xceed Words for .NET. @@ -43,9 +59,6 @@ static ImageSample() #region Public Methods - /// - /// Add a picture loaded from disk or stream to a document. - /// public static void AddPicture() { Console.WriteLine( "\tAddPicture()" ); @@ -104,9 +117,6 @@ public static void AddPictureWithTextWrapping() // This option is available when you buy Xceed Words for .NET from https://xceed.com/xceed-words-for-net/. } - /// - /// Copy a picture from a paragraph. - /// public static void CopyPicture() { Console.WriteLine( "\tCopyPicture()" ); @@ -142,9 +152,6 @@ public static void CopyPicture() } } - /// - /// Modify an image from a document by writing text into it. - /// public static void ModifyImage() { Console.WriteLine( "\tModifyImage()" ); diff --git a/Xceed.Words.NET.Examples/Samples/Image/Output/AddPicture.docx b/Xceed.Words.NET.Examples/Samples/Image/Output/AddPicture.docx index 53dd5a6fd50ce2ab7cd2a74e707a76322388207d..2365144ee600787c9639ed9053bcd96297ff9179 100644 GIT binary patch delta 2093 zcma)7do%|!YGS5|+CwDu4=s!++I20SI~pikk3yNH!Vm^h(57?O%WAgQ|{Bc49s#K z=aPNgXHx0u(8C#&PMr(9fi9*y-`JVflORHzU<|EYJt4@V_il5NpijgbWx9TnBtd&P zmW;qXau&+E2ol=A{z^h{e!=gAlS}zpHpNkSWO;7U2S=^k%S)+}&ikxELhnegT3W>$ zN0j~})=q|n6$2|*=zKi>@O^f=`dm^yG{mSQwm&;9+;St8mYkw(%cNFw`7@WkOY7(R zwj_k@7;tWw#?QEng`@;T8O705c!Dh4U8QRp*vNSb?Q&P0c9;RSNK2dPU8?*?wO)i`8PW32 z_+nmyi(P(Zl+&ohX>5qK>q>1#h3}KSa1wp{=Pr#*#c! zL@j>RT$7g->QYrPTRB>Gdt1k!@BMer$J`UmjmT?CM29T)Ll2{hfh&pvvMe7tweZ^r z$Nqao&vyr>H?+BxZO=c}EQN5pf14?iv@3g=j2dJx`BmSi>;^IyL7kn2&auD_B3(^)|M}+V+l|SMDQnZ|Qm1w&zI-|OG5e=$RV#eLs9U+w zkBDoRnD|}Se9cU9g#N`z*w%~#sc>#+f|Z|QL0$8XaQA1no&|N1Z)zS>=ll!zmRffG z(jhSigu$*fwvLb(u*F94{FkXTn|A%#vcUDIs z@gr+sJP7_xq`;|dt=31QQI%t0W_CFy7asaLllhX~ch22!xK$~2vDP3xal(nGSF>FA zp4`}l3tWhHXF{vp);1#6jZ*Kx|A3F7H81rN8-_tl8F6^ooVG>ZV}Y;!^+jm;&<$jX zul~F9ISoK`Hx}d2WSmoKT|mk%N6%}N%_h}%U`;#i)Z#w)G!uekgG+3(j1EoS&eR(= zO+k55N_x9)HQuCqYd3Y@0eul9Kq^QDlYWh@9619J1VckoZK<>nGKFksPqMLL_sbi~ zZfaKRoV*yUv?X3J!M%KMwn%jkb9kSREE1w1YT*95FNqtx|M`u|%4|l;^A!y7feSx2 znUkGrN|(3P^iVqX^k9ME#2wdcac=us&s^Jt_7hA`>|6Lw8b@>7AuaMlgooVfLLXR`3!>yR&vn-fY-f}b z!*fhOnbX0Q5t5`(RfE;p!c$tq^xQm6Skcc#7WYnO_LtYUa zy1vaNc^mElQw94rzKtmpB!dD(Fl%p~7uAc7Bit`onsx1nsSj?Zyw5+Tit|^Vi93hG zPt15OzZ|KIOpyYLFV>`*i+B?MthvPC28QKS$AhT`aeuysI_kPfy;Bng9Q-2>G%_S_nj zuth}KW()vUCIDdn#bqL>lrWOD0~JG}P^dPD%```Zy$#I)5kkXI5O(%x6v_^bwnN$5 zSbY~oZG}U%jHNg#{jnhF_@&;(mf+Fgtv9wl4%;d~%PDKq&Vm`#@N?EyTl+B_NJbO* z>UagAac$jT09cO(0JTjlU)KaXDZtQZtCsX*fdJsPECA?#y|5V#usZ_a(k{#fz(B{@ z@&ps`(uL1iPOA^F*TlR_fn2^8aeV Wi7=TQe|ED!l>IFcqA-fz0{j=3(1Qv9 delta 2143 zcmb7FdoEjdn9;Y6Il&tIwMqSxd@C zWNrx=X#A8=Vw#d>sA3pBSv5VAX<;Jm3f38e#U$A{fZ2Pp!++x6oyJ8aQoMd@PRZ(h z0Jd@5@RUKZaC+-uM0HSePDp{U>x*`T5=-Ypmfx#|_R`y*qskNPi%K$wR9K#+trFh6 zk#kV`2o@Ox;wx_@P#z~ITw~1ESyU;#BvyDgp~~*W>{ePV^b|d*Ftsm#XU2BqKG!V0 zeBQ=BJVo6%N!hA9V)cXW>C70*PXKQ^y+U^=%13L-jF(- zWXERUlZ}C}rqkK}#Wq~_`NzdOV4+`#qvbMuO zHXbgZ-`w5Q5Wdy@alC^-j%?V?l(B>jrK?JsQy*n`hIbmmwuNY9P0*?najcL1ttmC& zlwQWuf5J@@yymq!(~X@90Z6mr%(xxpoEh{&i@&AeGW25NGfdRPEgU&F$BUim#+HWN zx|0bx5|=mV!P`Cn52DfvpN|ac7!608Q3hQ+??|HNeF_iOMuup9)IKKKpK617w4_V; z?NN-qb%ymc?~2~^!2RxG#DXig(57lz<*4|E!s74h9D&Uplpx1I`NW){bq<|;Nk#cq zb;)e0tL~w)KIyTo*_Q~#uD6i^;~r&=W2jQT{K9FqMxNZ`UN!jP6_`Ga{c6_=yXmg` z%RZW;ZG4sG3_YLL`ex;5^RCON&kdKX27a0B$;_neEs++vJ$hGF87kmLKkF8R?~BOh zMht$?)Ay-3<7YQ|OPY7m)*54No2Qpc+GTep(6^i{`ny$cbUQZEc_J-jtV*Oc_N`iW z#bIXNh{qH6CBBp3gCiaex)l{5JigkGyh$<_7ei^Y(1Y4SxVR=}6e3rogL`^EO8&$L zf5FD!IUEO-7}uqluK(nF-Det~8rD$vl-8^lbCQ+i3XWBNoL&NtVhDyOV+ryt%_@ z>CD>G#ngEpDe~s}e$Z=A+_cm+E9$ayZ3_}Pan-8rD8sz_{;%Qj`Do!Mdeb9y#cAIQ zcjNm{y?I7^Y|$hF%RcY1<45%lL*^gIuDJ>SwAAq~ zN28%`F(f|;I$DjXzoEiOFufX_ET3v6{f4e&e03z6!p+;l+Z(nfw*?=+eMI{zu^gPY zC6^C$n%Nyq+ez3QsC!#MyEOsn0w%><374#lzS21b&pBjreV1S00&=3nG1CKnScMaK zn(T(iNyHuA>N1>={lK|rp;T34!>xk%ttBnpqug4d+r3D|KgP3e5W=JCk)U##!e-Cz>AqpKp$6|3f1R8@UATSsd3*k>k6A(;19)-hLqHtI| zQy7EQUjHG?BRhfC$G>h{{Ba6y`&vgouFz^rf1YIiUaIywm>*RKB;`j^VSiblYt+p$ zFTng!FwESY2$InPzWXBW=dZoQ)s2i;^+t_9%dG`e{t8up9kziLtJNn10KST=-uXjL zCx5TE9`C=A^*ybB73}|{Zs&0>``;V=>ohRmtFJ~3YwQmQ{|nWt2m${AkuLn@`j%BL VTx9`3^9P6=zMYS;LO*5g@n3~3Y4-pC diff --git a/Xceed.Words.NET.Examples/Samples/Image/Output/CopyPicture.docx b/Xceed.Words.NET.Examples/Samples/Image/Output/CopyPicture.docx index acd1924fb2490cbc0c6f93b304ace9819e1bcdfc..0dbf4fda2c0323566b90d9287a51ad2bb2679d27 100644 GIT binary patch delta 1644 zcma)-dpOg39LImmLO4xL*bo(#7-Ki)GFGuewJf=G&e62Vk;#?Ji000aD09610B7@J-P3gg>!vh&X=aHl(0)TmOnEPxxT5p% zZD+oNwjCpr#U0NzGI#OFS707sv(1%Gj{9qOrCmjDGaH7Nr}0L zsZ0yAI!bLbdPgBp_|6Dt25eS(>4J$OWAM1RAd_|^30^Q%d7boU?>tN+wK7dmwb;k5?SrSfP19onR7Lq8=CEH= z{StEFbB@#&BAl@`5IWxHvt(ctsgpRUsJMiTusCulM5BV#P0@=CiVk0W(S?)%kA(NY z?kfp%VfNlPl5GJ=@|Tjlm->h^4itfsTL4EZDrzcIe%$T^mCK~_db&fQLuPFuuCC=P z92)B|Tf}UpC=JEGKaay;kCid!Ra0uLSJn!{X$|4OPkU}R5C(@v2Q~D+4up8+1YzBy zL`^mdQzy75%g=Z1mA#!^%V&e0$v1r@&L?jd5F6Y1h85*$59QcpWA~sht?~+Uok`&s zU3uNES}H2aTdYIst-1dAdKR?#X?c&_m8EWWCt)Vm&}Pfb@KFZP=2)^mXJP&ITPLkSFG%uYy=-2ksQZXAz#73tQc-?x?dksUo(v zu~V?bpdbHRYaHEO?SvwiZ|C;?j``PAq6?z4b`c>W9zo zf4(ru`0}oS+eiu%DMyxk@=?^dHZTrU7Ld1ve!Zij<*=C1jb6XvH=%DFD|ADBP8=IZ za$4@eJQ%-P%w^H|8ow&25&M@%Q`vsP!AjQdINdQjkEPlBBiCNQn7ajCS8XDCCo&HX z-Ce()xfZ8}n4#QAr;rbjGO`4Dqu_li^KtHXS{04>_cn4jr2DgmK__HGaYvgtv0o9KHi~WcPW(Y=b@k)k7F$UtB!^gEHbEtOjv>< z^*tj9cAbaZ7xG4a{+Mxey|1n*o52$2Z)DdtV>4D#hBR&IQ}0}5Ygzpf7y>tYjnnwI}fu=wq@#P~i_2 zD=2>B#B$>8M19_=ANH{c=br0AxaE1d84!g!^Yr0+WYGecWqflx2-ZlBu7X;+mO%^_ z=mCZYVHtDCT_dY=Ey5N5MSsbl#ouNGg05>S0<=GyFUH>`^HFUw)#~+zjKX(f^F}c^Y4UA_yj@t7RFsOf`p>S?vG&sHTP$3rgeSr3Ni!G@E@Q~U z;-sQHPaOP^*`^stsUOIoGij#(=T}JokTVo#8CfXsuaWScZVIRH`fvtY+A*6x0{jCX C_xoS~ delta 1643 zcma)-eKga19LIlbhNPxeWRXRpVvTLTtymI{%-p(2MOZdvSo4tUp;_pR5~-g&<)MU1 zq&&q~C8JA`XKCWHb$gmpcdj&XwR5`X{(1lVe!k~?-sf}PpYwUWlQ@YS-aaY}jsgG; z4ZzKZcu-H3Ga!ZmfEp42bN~SO?L;^O%Qz8mGL*@Vw2Tf7neq~|B}60_+ru-G8&V&b z(9YE9R@P`PD{;(_#RIhcYtd&-oL{ETewfY33~BU^er3XCoj#)<&bLl(oxsgaNFv-J z0(iiTOyehQ!}##5JT)5gO}Ba#9x)Z|*rIiKYsZa_EU{D~ds9RS`C@<1v$fQig9&}W zuMc;76T~{yhGwa|L})T^x$ZF#1m+S4Y%1mJ+|$b3wmDdg5)GImj(vjt8o`V)0Vx=6 z-C5o@XWqDl+7hjJ7ntKd*={~;Aw}W{%?QM%&`q^d%{&5j2EiO8AKKt865QI^lt$Tf znEn=_=pDfIIOW=-+ZyWhgz23HPv}whs>0M)=iQCgx63l{9={i${S0^!wW+ptGGb86 zU_3_Q)1zBbyz;crpK|+Vm}X}#5+%1^BQ{DdES&pu?CXWWOuGJvv^H|R8u-jAKXc&2 z!cje6UVm)f_5oFpPI^U4qh$u`pMnQiK7U|SZz&sQN9J#$SAW-k^5*Zju2ICbnRkH^ zrS}a-h5l@2!;FhAZDYnr$L%@rZX9xc1-!~kMH@a^5o4wB(WFkl+2ZCxuQ1Nj7vMd- zVBx^3F7%q~vx6UT4h33=v^w@;Dik)fyUtkN_j>4KRNtPAv3U;!a(*NxkMX=;`uUa1#(bfZgCZh`Y<$R_nlZ7F&wFu;1gi4LPq)NRN`;yKXwZ zZ4xn)JSzLG!ftQ!x!N->8}$X!Gi%kb&OxVjo4?>mo$VJF#&d!#)XOLJMhfdUro>V` z*5$Xi4W8Sd{91GFLdAlFv}nvW6h{2D6MPu)7q6`=!G8D26;HIKM;#}EHllg@#Da0x zOHpreJ}%X=KuWh$_UGd9BcHM_EDQ--3YgKai;Au^C!Pu;x2J-(wev~e^xP8S_>d-4 z1=Dwb$e0#(P)i@zHBDK1Sw_N=<&##P3Ni2LOv_ihmF10u;_2Rut8ocM0XC~GW7&`6 zFePS`u%6Iy66VU(^F{cTrzbf&C*yg;SXMTv_9kEkw`|@-#ur{Nf?5%72 zYt=pvN6)^fURu_(tgEE<;yYMW7;{FQO2Ck4%r7kLks>o|r+x9uq|5i@S`DK(%E8<(I9JBS_j}#!NTu4E*~@vSx*VGNRTnX_ z0fB0>z6KTza`hZh - /// Create a document and add different lines under paragraphs. - /// public static void InsertHorizontalLine() { Console.WriteLine( "\tInsertHorizontalLine()" ); diff --git a/Xceed.Words.NET.Examples/Samples/Line/Output/InsertHorizontalLine.docx b/Xceed.Words.NET.Examples/Samples/Line/Output/InsertHorizontalLine.docx index 382f9eaee608b5a427af747e87b906e9203241ab..660007293f14d95858a6a3740a2efbce26a23135 100644 GIT binary patch delta 517 zcmbQEGh2r@z?+#xgn@yBgJE;^(~Z1x%p5>EqT4ZX_GV*dSw;af6LYgfbE6dFlw=bV z1B=AT2`qBVKqZ?SS>AGRg4F(F>g$AoSie(=3HAd0u5RrM|peWWRPFx3=Ly3GoPxb**});@?HMC6aIb`yF-tkJoCa zFp1Esy4f2-dVgM8WM04VFAGY*MZ{12dwuf)zG6mj*oX zOT-W)JNcZ56;cQaiaN@J!V_eaHzNZ>DGLLG5Cbykom?oY2v)NqFS^?rv91RT~UotIk-zEZeg0UJav`fu$U>2b4KIu8^5?mI{`hU*&AqQW=UiyNIEyc08ndJF8X4dF z2W750Gw*(z)-T+@QkiElw@UAf3kL-jM+ZwCX_(c1#>!;nqBYlTmRLsr8 zu3yoYEI6%F-`;)rzrfm{#Rt^2(|XnZF)mY#Q{!>qyYpSbdO`Z@r>3)2r6#1`Jh;!U zD|G7gwQHinwx)8n-19wo=2wSZ?3d+N%M%r^iKssF5zRf^)#X{|zp=q^+1vf=OV8?W zk;@JfU(vGS=c-9QHJKM@@4r#Ugc5QQ@l*e9p2t_h2o4)j0XAkZLr&NPEHXJ%#0DO) zlV^$;f@CM36|q7JK><-mc~E!)O}g&Q$iPs_!oVQJfDHO37l2(Pk`!#QPc=celM!V<_?T@1_l87gS#65 diff --git a/Xceed.Words.NET.Examples/Samples/List/ListSample.cs b/Xceed.Words.NET.Examples/Samples/List/ListSample.cs index 62eb388..d5e95b7 100644 --- a/Xceed.Words.NET.Examples/Samples/List/ListSample.cs +++ b/Xceed.Words.NET.Examples/Samples/List/ListSample.cs @@ -1,6 +1,22 @@ /*************************************************************************************** + + DocX – DocX is the community edition of Xceed Words for .NET + + Copyright (C) 2009-2024 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/ + + *************************************************************************************/ + + +/*************************************************************************************** Xceed Words for .NET – Xceed.Words.NET.Examples – List Sample Application -Copyright (c) 2009-2023 - Xceed Software Inc. +Copyright (c) 2009-2024 - Xceed Software Inc. This application demonstrates how to add lists when using the API from the Xceed Words for .NET. @@ -43,9 +59,6 @@ static ListSample() #region Public Methods - /// - /// Create a numbered and a bulleted lists with different listItem's levels. - /// public static void AddList() { Console.WriteLine( "\tAddList()" ); @@ -102,9 +115,6 @@ public static void AddList() } } - /// - /// Create a custom numbered list with different listItem's levels, items and numbering formatting. - /// public static void AddCustomNumberedList() { @@ -119,9 +129,6 @@ public static void AddCustomNumberedList() // This option is available when you buy Xceed Words for .NET from https://xceed.com/xceed-words-for-net/. } - /// - /// Create a custom bulleted lists with different listItem's levels, items and numbering formatting. - /// public static void AddCustomBulletedList() { @@ -153,9 +160,6 @@ public static void AddCustomBulletedList() // This option is available when you buy Xceed Words for .NET from https://xceed.com/xceed-words-for-net/. } - /// - /// Create a chapter numbered list with different listItem's levels, items and numbering formatting. - /// public static void AddChapterList() { @@ -168,9 +172,6 @@ public static void AddChapterList() } - /// - /// Changing document list numbering type and levels configurations. - /// public static void ModifyList() { @@ -186,9 +187,6 @@ public static void ModifyList() // This option is available when you buy Xceed Words for .NET from https://xceed.com/xceed-words-for-net/. } - /// - /// Clone a list and modify some ListItems. - /// public static void CloneLists() { diff --git a/Xceed.Words.NET.Examples/Samples/List/Output/AddList.docx b/Xceed.Words.NET.Examples/Samples/List/Output/AddList.docx index a1997eb2686060d8c5416fe7a595262c96b4eb4a..a166937b38f161694fae3a4de4416c0cd926e403 100644 GIT binary patch delta 1350 zcmV-M1-bg!G1)N@6aWAS2mrHt<*^Nn0|>Kwht$G3187C2m zZP^acv$5bvTmcJJCE7}^F*F8#L-y^Wx;@;)vgA?uf(aBgrE+N*Ge|_moCG;H+ZdJlb3_F3c+BF!aHSj zKSXEDsPTWn>19Tn{s7aMP7_8T2Nilu66lKy-8oxi8j#0M!oCp|XLZ%I%2d1-B@lWw zCA-W=4Edrzt-cE@F=6mnHn)w?jo@6UYl=loDR2LMt#f{*#Z1`>&h9Excf2n7mlnPF zi|r>+O9KQH000OG0JD4LSSlDeoSOpx0Kpvq01}fH4<~<^yF#LrG*zlJt(r)EUhD-{ z*^9NihVYu7=_ll~@(Uds3Dk6Bp_KscK!aNWm z;hlyZ>-JIAwvisBa*j=roy5p#ziy2bK zj093B(bj**fnbhkw@HAVzL23)a6LD@i=+s!Qh?J$yoZ!Mf@AY&BElRN+d?v=;Zb%R zhU9%59RYfTG-(k^^Z>Bkat0%ShUE1T#L+mQ#HBtAXmrUu05ViUy0_45arKi5{bwT|e@Q>($^wqCS6ICV-2C9}b-u9Y+2(qUSD9kpyDw zu}BEhduEX^MEGRml~R*WZfCvRewQMSCTL_mv@3o;#!7yfOJI#^l&7ZF3+A?qBKQHZ zpnlciLZTLhh#=!uaw2We3(EqwC(VR|=+aAw*av?K|CCTlcVn{v@CqM4yvbZf5bT}&C!Ub0T$k_#qX z0Rfac^Ytc9!&qZ>$;PW84hTcJoipe={4h2;@Q&vVegxSv#ce&a9{rZ%$Mgl^NrDo~ zhV7R@wfprh;+<5s)90MKllM=aV7HfPd#iuarlODKHP#x-cc>SPQm+(DQ7^1T{f}UX zzr)-&%G`6Srl|XyJ?zCVMtK*Drg#@Of7(lCxmR6N+)Eoj?q#FY3!X8ND{u6;A0AZ9 z5-%B(xXQ-Q`{6;=EcvQ2k*jX{z#ksejB@u2s|sCmpKGob>b|^Jy07Ym=bvACUrm2@ zU*9Utrd#~he53n(tzp8FYud(g^nH2-329pPfxZ;DtFEUg>d z&y`^2ZJ_224V0!ZSDMmCmgf2K-}Zl+*2Svx7l4w_RVr7T>30Uo;J=_qA6kZ|?e)+* zAyLIWlBng{_}$m2(q3uQa+AgmX;gWyG-|oIXD2kOvPT-V+~l?U8dcpZjaqIt+@40g zGKoU|0FTd4o>N0A)Xfl9Df}del5T} z_T~c|-3|YGJ^c?*O9KQH000OG0JD4Lv(pj=0|T>r<+I!sGywy%d*zc87d!~Fd*xW- zxeXALR~In@vwP)}ix)ZwvwP)O#?)XClg$@G2(x?TSSlDeoRb$AI0LhL<&#nvJOi_P I<&%*ZNa-?!Pyhe` delta 1350 zcmV-M1-bg!G1)N@6aWAS2mnr8Hn9zi0|-uBHdw*42iK=o<{TW_P*J@jsrQN552Pu6j=@gt#Z1zZ3A;O4>jzz zn>`LPrjF3{Qy^)?h6cJAr!}QPbvVk9xe0Bm80SYBQ|MbdN%bOIq-CCS>X!_-Ws<{X z!v7GRF};7nC#U8SZTtgFL%a+afE=W6F*ZQY&g*M7OEe(Qx`F+Q^P)O(l?$esWGf)_ zZc26@kLc4ye_DMP7GkC0Ir2wciCQqp@t$G+O9KQH000OG08U&sSUHz4r<(%+0Kpvq01}fH4<~qH ztL(+vT|;=y&-4@WS^0&I4F&_ba9IN4$(NluJ7;D&nlZTF%G!bDAi!C7;((owT z4ny)Gjt&4lLYg!QCAtsTZaISyKtuA{5aM7IP~uV>1T?&49&(<22QC*Ph#BTO-O-Vl zLJWed4vEGzmPLcbP6pC_k3^Tz%&r%C{%SS2kf?tLmoeZx;fDh!MhB68D7E?`ba2M12euOjAPQNKh_%m6f$=ZaAW)aN{UEe)&UGHMTfOeC00+(Dc z=?Vy-)S0h0b{fPQvnw`Q4RJsi%I%y%-{Z%T(VllWYw#n;mML!OsrBf$96hEl2u~7} zSVD%%pxV7!2k~|)+v#)8-O2kWPq5qTw7q|2X;aa|@&;>-h#Q5?5LKdEeiwnk8Q~CUVtvANc*fBct4lg=K{qLh)~UHmHzv)PQmo&v+{@GR#@eyeTTa8tE5Wr&s-yw}bHZJp zH3dyk&!9RJF9?S{L)=1;`00J*ylvlfzKiJ_m_=cr?LsTR*8Gc&b%gU}zae5tu(WP* zFIR%8w}F~9G*FttOleA=S(=xpf17`6TIZ|IUjRxzSE*cWCf^w-L-7?w`qVN!Z?1>l z3W@S}NTL>N - /// Modify the direction of text in a paragraph or document. - /// public static void SetDirection() { Console.WriteLine( "\tSetDirection()" ); @@ -77,9 +90,6 @@ public static void SetDirection() } } - /// - /// Add indentations on paragraphs. - /// public static void Indentation() { Console.WriteLine( "\tIndentation()" ); @@ -113,9 +123,6 @@ public static void Indentation() } } - /// - /// Add margins for a document. - /// public static void Margins() { Console.WriteLine( "\tMargins()" ); diff --git a/Xceed.Words.NET.Examples/Samples/Margin/Output/Indentation.docx b/Xceed.Words.NET.Examples/Samples/Margin/Output/Indentation.docx index 07bf0b7a417f957fbf15573a0554e6c5ab3cd619..243b647be348b91443a990b4bd1e970d537da977 100644 GIT binary patch delta 498 zcmX@0y-%Arz?+#xgn@yBgJE;^(~Z0bm^grRgu0Zc(dMg6vW$kQ=1GR;rpA_LX$DCq z$%bi43i@_7`a!8Vi6xo&dBqu-1;utKW^7hwdCS2GGQ`UHtMG@(lDwMrzIlfg1l-m) z-MD^3#M)0}lCRlax19`a2e)O_u~_7uyXM+|MO!2^@adM=lF6#ZhaaC+x4U<5`|oh$ zg~lxwR;LR?r${tT_3PdCyu$C-!lS?Me&d+zQK`hYxL+fF9Wl;aU$^r2o?c&?t@Kj)IDejz@;b8I=kn0=CV`3M+VbzX3O zG-J<>1?#RVT{fr+l94x^8ln}U?WG;|YLD5@*^}n_vMZ|py8LSQMuFtDX+5PEOhZp+ zZQQjyqGigb*ZVK;x+WfFIyL*nE3dV;x@^rpEOpKMcl4bwN_a%XPu=XqSIWo?43f>e z_}Q4jjKe}EV3Encgl*sX7g1hSw_PY153k1Q&V$`R1*`E zq*O~K1${dk{h-vG#FEVXyyA?^f?_)qGd3%;yyf5o8ImkD$NJM`NnXu*@4Ukb0&VM? z(&C%t3nyu*%+A}@Tg1rIoO{)VWk>G0Yp(rQv_(P#pKggQnas+a_F%TZea)V|@A=lJ zDV>*i^g^e7Q-Z?q;(PnfmY2qVWGo|2a`YBx182UpXT)Fi1A< z;Adk7GY$%wfJG+%5VnDb_+%RqLy+v`0ud{u5Zo-{C=UwH_^E%ddowaHl(H}|2r(c7 zqshXeit!*dd(#?4ZZR=1M6)w62qG(CSj*4AP@Z3uqF? diff --git a/Xceed.Words.NET.Examples/Samples/Margin/Output/Margins.docx b/Xceed.Words.NET.Examples/Samples/Margin/Output/Margins.docx index 5f126d217aa2162eed33b06424042674f96ee7c6..818b10779257f4d92323bdca1ba2cf75aaa8c0d9 100644 GIT binary patch delta 464 zcmeyW^-YU6z?+#xgn@yBgJE;^(~Z29OdLQuBJ1remd$-kvWx;|#s;Zo1}TQ-#>VC* zrk1IbcQeZ|1C?yP!~B**2&7go=U(u81_p)zCI$u>hRKa0a+81Z@YLV%oMYxzy8C5Y z?p5v`=PWus-kd1ovX$oUJ0iNlr8Oww;Ih*{_f|@sJ%0Ol+IK6yCp~sw&Uu|MW@A}f z=9?eQS!}{@`exf~Wh))eGX!XJ?yvn<)7A zwlF&@f133?W<%F>U)Gj;z9-K;=B(ZI!hiMqLr!O=Og;Bnc>VRJ&rKhzyI6Y+bN|<_ z&8}OxG)vJ-=elaVXpBjG)R$-a+vcMLUPS!Vzt_DP85l}g7#M^$Gx23Hf&(g_pN$#J zs1Py%i%ecGYy%JF$)AM{L9&z8MXWgC!8tig#1SmIPDGmV#pF{WieTP5ATN0`m#6}m UrzmQldOBsDS7*wQ@NJk8L= z+|*+7Ze}@VppwmZnBQ`6g4Bi?m0W)}`4W$Dy@mX8&CttvH#V%TYTRh-rzB*(Y3{Un zy{zt!xFS|KX>Lfk{PfQ~o8D)S-`4J~mt`+gdS0EKbz+i;gkZ1PwYp?CCU!=bJ*+ico%x7wM@H}ahy|`5*>p}YKS=nZtCJE<#dD%}b5fSBzG;vyE z%yjJivXp0mle)$KW`2#0=rY|oVX59JE%8MmM{SSVvgh@blRx;G;OLn#XbgAl`J7QReIaM%>^voV7il|m+9k;xl`ZQubr z`HQe2NOrP@h!s)@W{Wt2Mc0c+Gd`buT0{}ddk^F#P39I=0Q2-jr5Up)dx@&CEf8h^ F0sy1Bu$}+_ diff --git a/Xceed.Words.NET.Examples/Samples/Margin/Output/SetDirection.docx b/Xceed.Words.NET.Examples/Samples/Margin/Output/SetDirection.docx index 9b5d2990aa3b71c1d0133af37ea23eda8ef38e8d..6ffa5dc5e868e9c2cdf88e8da039dcbd693a014f 100644 GIT binary patch delta 424 zcmeyZ^;?TKz?+#xgn@yBgJE;^(~Z1!OdLQu;@FG@oSP>z$ubHU85&w98k(9~q!}5S zq$Z|JKEN!;3{hHQ#-m;Dci2F{VSUosc{fbYEf2k%w<|IFD^s7X zpOTRErnye%k2NV5vg(8^6p7gIvZyY9p4;b--}c?z-^XmZn1AnP(=|qHENhE)ZO`Q` zHsKe2Q+`{S&uCfSg|ER1nMc~Bc1bMfUFukBacaU&&fHZJ&)p@1UqoAZe$|OyGG}Ac zFIDEene|UfW`3}DN%vX*;lUM~MZNV6nH|#^nI}yCqI*p0Mfc}lv(5_fo|wGu;R#jk z)-$Q=q(xc{9A4a=^2WyO#bwv}s9JHcq@!LLUr$sl?G;*<^-fdF;MkVG-?y&&*(#>} zHEQ~vRYk{+?h=TP`tnS_Y(7f3MZ{12dwuhN-eN{@(3JACF@qU(LMC95$yETe#_d74?WxsjQ1iiNp} zrHT3E1I%*FKqZ?WGQZ^jtNrsisC)7?9_{+P!wLcp>zmTzn|V7|Yx$YoEs=i8B*AvO zis}`Ng-2Fmr_fLcVk{M#_XC!uR@mbl&hg5?7oZa_^xZhM05O`IJWAE%qbC-)b-+SS|`u#Dd9&W|3Ga1WLXEGQ1Z|u-~dcQvZbyR%D)irCv zYIJuz^VxD@|CSeLV{_~oQNk@Ee(K-roB#6`GlGMrl%I_m%%~GG0gFuDDr^G}*U3MH f4MDP#bw#WY0hll11Qy&PVhg6fh}eK>V^I$P@W`kU diff --git a/Xceed.Words.NET.Examples/Samples/Miscellaneous/MiscellaneousSample.cs b/Xceed.Words.NET.Examples/Samples/Miscellaneous/MiscellaneousSample.cs index 9be2255..f9be9bf 100644 --- a/Xceed.Words.NET.Examples/Samples/Miscellaneous/MiscellaneousSample.cs +++ b/Xceed.Words.NET.Examples/Samples/Miscellaneous/MiscellaneousSample.cs @@ -1,6 +1,22 @@ /*************************************************************************************** + + DocX – DocX is the community edition of Xceed Words for .NET + + Copyright (C) 2009-2024 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/ + + *************************************************************************************/ + + +/*************************************************************************************** Xceed Words for .NET – Xceed.Words.NET.Examples – Miscellaneous Sample Application -Copyright (c) 2009-2023 - Xceed Software Inc. +Copyright (c) 2009-2024 - Xceed Software Inc. This application demonstrates how to create docs file by using the most common features of the API from the Xceed Words for .NET. @@ -53,9 +69,6 @@ static MiscellaneousSample() #region Public Methods - /// - /// Create a file and add a picture, a table, an hyperlink, paragraphs, a bulleted list and a numbered list. - /// public static void CreateRecipe() { Console.WriteLine( "\tCreateRecipe()" ); @@ -117,9 +130,6 @@ public static void CreateRecipe() } } - /// - /// Create a document and add headers/footers with tables and pictures, paragraphs and charts. - /// public static void CompanyReport() { Console.WriteLine( "\tCompanyReport()" ); @@ -195,10 +205,6 @@ public static void CompanyReport() } - /// - /// Load a document containing a templated invoice with Custom properties, tables, paragraphs and a picture. - /// Set the values of those Custom properties, modify the picture, and fill the details table. - /// public static void CreateInvoice() { Console.WriteLine( "\tCreateInvoice()" ); diff --git a/Xceed.Words.NET.Examples/Samples/Miscellaneous/Output/CompanyReport.docx b/Xceed.Words.NET.Examples/Samples/Miscellaneous/Output/CompanyReport.docx index 8e1fa82d0bc20c9b8739bde0ca05b970fe2b8ba2..dbac7d2ed566eaf68a1966b1c2b8ef0244ec298a 100644 GIT binary patch delta 4673 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 delta 4691 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 b^E0D&w|TBcFzzq|Inb~jUV@_aOOgKrDpETE diff --git a/Xceed.Words.NET.Examples/Samples/Miscellaneous/Output/CreateInvoice.docx b/Xceed.Words.NET.Examples/Samples/Miscellaneous/Output/CreateInvoice.docx index a6749dc409582339fa258ec9450ddcdeb780db2a..b1c7d49bfa3027e6e1c9e4ef726c4464f4277516 100644 GIT binary patch delta 4271 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

(rSoMVE7>u0bG)#P$ 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 diff --git a/Xceed.Words.NET.Examples/Samples/Miscellaneous/Output/CreateRecipe.docx b/Xceed.Words.NET.Examples/Samples/Miscellaneous/Output/CreateRecipe.docx index f82bb8c4ad8ee2ad68a20b95332e83e15938f81b..a7ab8a5c5110cd1c8b3d391f6dfa6e349b04ccec 100644 GIT binary patch delta 3383 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 delta 3472 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 Z(IHs?hCloOfJu4j4-%x#^*ve!{sq{90wMqa diff --git a/Xceed.Words.NET.Examples/Samples/Paragraph/Output/AddObjectsFromOtherDocument.docx b/Xceed.Words.NET.Examples/Samples/Paragraph/Output/AddObjectsFromOtherDocument.docx index 3283eb1e2e3efbd25c2e616d43a86f2d9b2e17cf..9e2a3efff874808492e8a352a4028abb2cf6b8fa 100644 GIT binary patch delta 2286 zcma)8c~sL$68;5{TR;d5caTHmNJ5xE2+AR0IE*BK3vvl2kN`peNf?4a0>(snD&PhM zMOpCxF+e!wR5GIBQjl?!OO(?C;{d}cmjll3JazYv?f0r*cfYFos;ldL)hBL(PTmBm zcw)sRzyKgE4OAsh`ib6uz&@;05s5J=jXDnRoypO=?z2+no+ew(u#%nP^>38y-z5-Q zl~$5#yq*QWJve!i^W)1VJiUlPK#m9FHws@6OG}Bx?lp(jGbv8$1IqR~Wd^xMGV z`VK)3uE=C9cY&^G=rM48L35Eg@d%QZqctSzQXizc)j9{jfVgeOCuYzi1k92j@ul)p zSMv_<_x2xYSM2j@-S_Ztmzh{ZRX&jF@lHatjetapWIhgvq;+)4rj@{{3=b`OI{x5@uQ;px8 zI$S)xZE*-E3ac8znN6_Y+TVLHm>t3qc3a4E+EAqj5MQk_7=|8WeS7) z5+5+y(E6I6ac{DMWnM{S>ip)a(>A3G$!x*o51$PEpcfaNl-f1lG`w_ToEt(%8piL5 zP+v}GIvdI&@L7N}>{|A8{q#2H)#luk{zDBOdQMUx{T>C$!|)VggTp6waos$>Lvv9I zS}hmi=-H2+3S`=*+%j$h!d}a*bibR>xG$&IG~7z(h$CfLOM9&Ck~nRx`h5^utKMFH zwc!J^W75;NBW#@1s>--g%P_YIh(v}6G_`C%rNwW@yK-JXI@74p_{Qz<0=gjTG@2Bv z*j6-Ydt2-NtP9oFGDR%&Doaoak-SU!xxlN38@jw*kGVrOTO;pAD5H5<{55108}Fd5 za9~LzYm7!*c8M7!;N;iKBezrLA6HJle>k&wNU3L&9n>%Vj=;;;h0HgTl#8cuH)fXy zBga?B-Q_l{D}V4Wen8@qLjO|2D=5v>oC33t7Dn00tZznzn-@! zMpHU_x4{t8OH5>hM6f5y7(5$3(8uVF~%s#$`n`o@}F(Eo`=imqE z=$dPZ8cU~xrfp|XuJ7YJfZ+afpIhQpy!)@WuPSTvM${o7N;V|a*0-n=NA?b{b=Dkr zG4~<-aN$&;7XNwc#*Ok%yk0>>`R)-Que@4%wt!GBD+m~wiwA{BFH9? zr98KUs9flq%!;;18OX5DF@xtG@7jfrE@LR*nh2v8(31XvY+>t2oJj_wcm<3T)aRW0 z0e9rg{yQ)JrD9I#Caw0=*smD-`8F1ni2HeI`Abo8rHtLKb5|n;PXo#6UA{qS*ATWI zM#9UsCD03L3fF&@tqB-@;&+|VCP|_pb)9w?_08b>n?ZsR^tNnAk_9JV$n=h;LfLF* zWH_!;tF;S6kE~Vlu36E^PyNKsjs2!iRby4@pf7nBs!57(Ex0`z+J*##1rlwEu!NGy zL=+TBBL4^_B2fe=5xCy@F8=WRK07#6D4}()lG+Ja#I2A^xM1L2Q z-|S_$LxDK}bZrXq8}o-6|2C(P!XgRq|B-Fxf2A9CG>#PhJ%nBNnIxml=!T@fhp2J+ g2IBvDp05!${r&Zk;Wm0{fy}rsymm=O;kPdFCvpMSjsO4v delta 2219 zcma)7do03ag+5Ph(xxC=K{c-63Z3C03GKf|Yy;^;c5i?I0QC%-<<&Mo2xajrqC!sX9C zPz!rmCtP#4D4CF3S%k6g`>Xan7P1)k>QzlDM8Qf69$!ixRg z%k`IG#>^8cQA(S0D)MQ;)5I`%vYq5FN;VDlaZhe1_}m>!?y*seO;wg{zt0$+s^cEx zKP+8#(>+2SwsKs>r8)ST%#Rqnr+M5@9r7q^*e&AMUJl`n16{I#SA+G0-n)H`lI&w< zZrDfufY*hv%W8gYMmq~O_4o4~>R~TMnI;xlz4b*yAKdxHDT0y2Vb&?gn&HUWD^PzxGTZV3e!UfTQRlaKDj!%lj z8uzCz1g-L&fniEHZ6bxhfC#yC4uezDIh&P`q-dOPmyc$@_=WiXOn=I;xUMPb2e&pQ z`<|6V)Emef?v#1}WglLZnh#0&PjBgEK2e862g@g|xU*uIYeN z#OJd*eh~#vT6=vKkPnyWroOP#L zaq5@{TfbD4%y{0)#6>i3o{_TaH?ckDnF*Wf9uDE)*k6`<_hvVoDC!6|q!t@SUc-GP zZOoPa9>~?cScf9{G9uS5Jj-nF)Ar~nRUo`s2+=z(`f(_-iGL>cf*myoVYsnNpEYRX z)b|KZ;C2xwJbp8N^+_w5sjV)WreACwYteWl^f3>mz^chR@5EA}HNh%4uh=&kYh>YU zeDX#Ej8Hh=Adrolc;fP?3OiX)QjL+jr1ycVZf1J8V^q?c;g`|r4R#4yuPm(=E*Dq5 z3C~XNY-O#LdZpl!Dd1(-uIi^@WEY1^?M@6!7ax3KwG;$6S)&(^rt}2_TC%zLD+Z!k!RU@t47`kuo{yj<}P} zcpkx6Jv%oobZ%0e3sqVJAJ&ggvfSir7W=ddu1>^?@6eeKEk5LY0f8fX#hAswqv}^r>7|gZd6-*`~HE%3pv^!>> zzt0-wwHK*=@fD~K&lFPL2r?$VZH}CW_9Y_GuPJO*dh1MF?_TGj;v;Xx^@7gjz9Qdn z=@nZI+|jwfp^mxsw3LMK^)5Teu6KiZ;TyAUv&;sed4;UfN%#*!oqzN{TlNy`|5401 zYo$g0%mf|C_fKTGH74XT?<7UUkp5|lT%h(-L&+R4EWnN1-GTX0*@Eh4(k zXZeVy%Ilf)hj!c!38hB&0Hc=kF^q^(o|XzSzP5tL(~FV##ji_x&z+VrrG7?U2ugJI zZ(W0!-;CX8*R?Q4YN=7ewYF9IqH{ZPm-Kjr!x*9Atyjv;n098^5OfuFT(Zx;8u}^pAYRGq8OJzJ z0*c*D{8`j$lQo~yxH2?dZ$teVd6}*m@;o9FtvWi>R8l#J!ajDmwHyKk!vxt?OF!k7 z8Q9+&wC_ea4R2z~_#M^nq(4n%D`8HwD++D>{uO3pTgOODazwcOkbtAGo zBhl-kxeC$z0pHS0P_Z`*tF&3nQcBI(k$@Zy^Y8}>l}=>0a$zQgm>03h~U z1QiiRqXv@^e}ya4kn^;^|IaH}-mV%)YmR&u>#wl*e`7VfYJiMbBG-M=!7f|L{tIfO B$d>>B diff --git a/Xceed.Words.NET.Examples/Samples/Paragraph/Output/ForceMultiParagraphsOnSinglePage.docx b/Xceed.Words.NET.Examples/Samples/Paragraph/Output/ForceMultiParagraphsOnSinglePage.docx index 6a3a50974252ac7a25ffd2bdcf26f69911e97c52..58214aef6d7c0faf327c36aed27690187a0a49d6 100644 GIT binary patch delta 517 zcmcbmb3=zWz?+#xgn@yBgJDzk(~Z2*%p5>EV!h>($jt@JvWx;2X2xk2spiJ!rsgIl zCaI>A=d#E#1C?yv$MTkg6Qs6mw(;Bdleh3{*8BP$HV|-IpLBNKjY6L(ieD7YzWKPmU>yIf2xt}`<5N+%^hBxo$|)0T%u@^{n~x(+J*;Lt(v@S)#+s-$2y|BTzxd-|IfX) zbpN^R#XF6BuC17wk@9n?>-v93-wC6HTtxiTznky!l`w+CCPaXZ8O(?kHUW!Fo+4rc z57@~!L<~W)lX*m~kV4R3)KMN3or1+W@13k6dapgB)~>V#3$_)XRmQ)6oeMmqxo0P4TdH2?qr delta 464 zcmcbib4!Oez?+#xgn@yBgTXt-Y$IJfl=la~$@-w?xBK?#} zf`3~mv)F?zmeJz2LF)rTT&G?xyXZUZ3{U@Z`w53D z{DjV5>)P&?6(8_CW+K>D$fpv!abct4v7Zw!EnqV-O38DZZFQ?sIoayhymLXer{yva z&R9@)wxK>-&2nD)AO4G(wpw?rw@PgJ$Zx>=(I%0hXv)6hHyCOQ_w5eZ?85x%ifO@w zj#Sn6manzWvKA?PN%JZ*)crN(h5zdJ$Gp~LWH0kt_|&;?PI#vLc42ObE;*8MCTbpZ`Wf=v`ObslPQ`3@D(#*_F zOj0c;uVj&91}fQnisdZ_SgrZhrF@h3^Xk_-tWP>S??z|y>=57GiHEnnVwFjs<8q`d z#oFQgu_on0R-KTAA`u&27S-j?bNl@9+dk_(vpQ`S^Do}a`$UqtDQsunmRe@-E9Igx z-*zke87=EG=qXmnJkrM2Ch=T%sUvSj%85HYW}#a?yB!nxHSb)I?Mb=JgEJP?oo&cg zvz(j$r=I^}rma>@L6%|0WBCNBN0o;do~YFJZ)E)SsHXg6S|{6+joA-0Ud?%~^IUiO zo;w}90#(MUyJv{i?t020C<4{khGQQD|` zo3YAFOr}#ip_6OrfhOPSpFfz-ulxDqc0Jb$Zlv&VNM&BlsN(a!QqC*$ zZMU+Y(z0HI9=!=)j~TNr8Qi>xnhalhtnhiaZkXYo3+je3yQc^fk-s&NgJL zSMhUZs_^E%ddowaHY<|O+&j=2hH~}_hFe6>q1S~Rno`?-RTqi#g fF$Bp@78A8X1Ym@y6IgJrs4bYjD{2F#WyCxHme#FZ diff --git a/Xceed.Words.NET.Examples/Samples/Paragraph/Output/Heading.docx b/Xceed.Words.NET.Examples/Samples/Paragraph/Output/Heading.docx index a89667e454cd4b2f4bdedcb1b3a61d236edc382a..95a7443553924bd3368522105aa587aa36861b7f 100644 GIT binary patch delta 574 zcmbQIy-=Gsz?+#xgn@yBgJDzk(~Z1~nK*!Sgs9@&y_ z>FhjHS=muqh4~GV`mhd(D`<_wk1Nx%?I@rkE#P_n-JgUC--9(5!cwy}J$v9zEp$ z;?t2|2CJr=zHrI&rTSH+*r}<`hbJ-CU-v1p@&6&eX#2M7KOTIwS>#>ckm>WBQF+2* zE?qUwFGtynUy99Sdvejk;zMxqDX)lY9m~vWSX=J-oILxO)7kIK@~hty6p!)bX~l5` zX2)*+`fFN}VDPEy^~+0N>Thw$b={g6^K?g6>XqqYdw+@V_D2bii1?|S75GXSnSnvF zc?LflGnlbZ$OJ4h`G&9!Jj5rQnNR$QREgA14A@B1A`#45{5p028Qzdq7?n&)RL0Sy!2wdirkz4Z$>5& l26+5Oh*>C@vH-1k0yIJxMf-H2$s2@3CwGVnu$=+R003S6+OGfr delta 476 zcmZ3eJx`lAz?+#xgn@yBgTXt-Y$NYtCJrDSG4b9s|IIs?WEl+;jf|6$3==IAlT8gx zjExPH6!h(E^n+4!5=%1k^NKSv3ySSf%-GDv@|J@WWJuW_p%-r_|KZWB_x3w%AmFe* z>FhiUm!FGv-QAEF{gvrl#T*ykHz&##*hY)XbZRFo5$#?qa>dz*#`cMB(E1%`| z&FdWhHI53OpoEkQs}7bhO&BSy5jhQ}c zGG41mCcUt-^R_wFS21mwYI!!>9i#f24{a{jcZ9uWe0lSc(L~PrhMoM+C)#XiE|Fzr z{Bzc-^sL%Mwl}VvH&(kPugkug7COs(7t68t%TlJTR2A3%b@|oq4MN!)omO?PI<)E3 zX1BY+XM#Bjf4|R;{j9BfB+Sg!t)s>A)g$lj`+tsp6GjP)i1?|0uX}G+<11oh1_sII z+5BwGV8#+56R^nS+rl>R5T7hBVhEC*94umm6oS)49KoWuM5Gx7CVvxA1oNasr5U>? Xn~5rbd67Wgl*y%{YHTNk8Grx)BHz3| diff --git a/Xceed.Words.NET.Examples/Samples/Paragraph/Output/SimpleFormattedParagraphs.docx b/Xceed.Words.NET.Examples/Samples/Paragraph/Output/SimpleFormattedParagraphs.docx index 43406ef1d3f931d2a0d8d9bdea19604b994a846a..2c07d272efdf674980cd68f2c591cf65dd66ac7a 100644 GIT binary patch delta 472 zcmX@0e^8${z?+#xgn@yBgJDzk(~Z2lSU7-mgjN6JW1G*j$T9MpnWq{grI{L=8?HdOtNa;t_u74jU%kUf5Tk!c^3iI9lvMu*2x5YP$PLG_^Wn8w> z+B^+FK`sdzCsk6s#|1SG))%&E!j^~=mflV?TQkhp1cCkHMAs@Eker~@- z*9IgJzLS(yI=$5aOJ2bz@mO9yW^JPwaF8bA*?T*pOmybT! zyR81IQ2#OEsm;R9`i9Jo>4MA?CV!AU#`dE7>#JF3g?LX)&U$bnH1@R6*QgN7^jVAx z%Y%(RUs>cY{x|b$Y(z(*>Wm9P+e*9lOn7R0l=I;S1~U$en1Dql{}Q!# zapL4Zta8ji6`N(*zHxAR1C`1y>t=aBS%%-Z{)T7F@(|zMiHEnnVwI_$AHX85<%fEx>rm$UosNwufZOh7}Ir6DK3-e#9TkrFP7DOz+Y_sTup+qvI4-#OoR&iDI%=lst3{Ys5)86oUwGO|bjfIxuS z=xIk9?BN4W27<_$+a$LITa3#7WTF5i&)Z-80Z=~Jx*GF_$R67pa(N)rnvBvU^eASAVjE*a8LJr( zjCv3q9%sl&6d!mu7U7B_q#qqZ>|&uzERUKYT!K6 z1l(pTae%)}xy0C};@|Qn*_?%EawrL7)@PoE9KRi)_fVA~whH3iIWgq-oYtS7E!OGk zNO5GHd{o`Jl7Y5y_Mq0*A(;^MX~x9@WK|xomE!ekwBukM;FiVY-xI!UyOZTIQW zDyZkoYm2IKS%qft0WntYuai#8HDlfjtx+fK?2emcjzKBDHlw+; zM*h(K$1@W)!O#Wk%U!gb!@2NKP_b+HaK&_yW~ta~q+8hFUS$9YbE$^y?I4wphQyXh z>`O#2gF{*|Q;NkBxWey_;3tBl7V1qroCCG2e_l>YV^qJ^pKRxy?ltvtz~4ZW{CZfA zPs`c5$AF5d9K1L>6;FY4cU(K4<{XDe2SWsIzhruxV%2$XT20y^`LYa-UBaaJO&zl} z?=D!$-`cU*;)083xsd|5MHiHjPqw+I5@*9TYOdSW>vQ;ee6#v(1@yV0u0}eF<5zA2 zVOBarEg#D{^Lp7!WktRF?%oEWEfyX&4b2Pk9i%zSmQK?OLDEIbHD&ie$;*P>)0avc zm+ZZajRYvCYzA~jfncXt`&^40IgI<1ri`_sN`$q@sAuo}y(w$6?QDjwPEAh+xzY5G zq}3{(O7SgJG65D3mJ#$N3OSuI{Ji}9SdKB;(a@HO+Q~>AkRSIDOJNP;Ps08Z;xxbH ztw5Ekp(B(mrd2#tmB{Ln{HAgYVRm;SX+lUUQhgP;-EEWOou$wG!C7bhBfEOd&lKuJ znL`x!r{aZ_wi~^(hJle5=J(Zh4Go|My5F|3XQ64Lqz6^p8HbV>j!|FpTFu-f@?6~H zhkm$=wM5c$MBLd29@YNV-zk5f_H10Aluf8Zk6gGtqu=Txmi6=L87fQ|xr9^lyy8UR z8`tq)?6{|gQQCvJDAEgGhG}Uy;dGNz$n6tX=ipGaw0j;Y`L-C|BXI8VZm`DNGG*jf z@DDGp+wr>@$@{j%37TZIKyY)ir|(W5k_p+AsJ$i{64dpnj3 zhLJfV^juuoD1B!@xtlPUfXf)kT0lmbp*0f?Jqi_X3ghV4mZO)+IaltjEUbm)b*l4m zspva4YH+cru1F$BER4S8(KMRFf9s(;^F3ewkjP!KQ>x1Qi!LXuc&V{30DZ9UdN-RzgKJGg_AXSs?!%V*LH%lbz z9H~6--G7YIW%BAhdD53BQy5`C&^1<&jQMs_>gt&2Tfrh4*^X!C4y%vbKl6qJe_8Z* zT{f&F^}fsW9xASwHkfgD{`jYHc>WKa{>dzN-nU^I2mr!l0YFtiRz3yVkfsnWFS9X} zA;=(wf5VMCgEYhaP}g7`_Pv#WpR0;XMPa`~xlSkzOOPA@LBaY2Ka_uhZ9 R>suZ-8cmQNTxS4)zX7wXdgcHC delta 1433 zcmZ3XyIfZ|z?+#xgn@yBgTXt-EFxHH(z3dV!aDVy(N-N96T%X19ab@!Vd7g|INAI0 z#2XXenoZeXm#+Sj-9V!x+C(vQ<=fAH-(Bu}-{+tAsYk~_OYO&vkJa;>8{C!BYRt-> zS-q6Aa>+cEJd2YrIi2&ACFlKpmU_(*E}vy~sBs(&-QbY5s#I{tx~`xTD_?aoSqKR$ z7OyJQO3(AFfBJRL3pXYG6=}iK4EL7&o@ZW^CDE9q%AeJdcTP!jipQ2jPM1j=I9}~< zbAG3^J;`!y=r*BPPRUmaJG>$nN^SYGG{eJ3dcx6UH=R#wZib8P_UKmCHI%Ci=yr}8e$n|-zMc|=-i^jiNbwWnNeI`*zS>>ty3 zMOH~soLiwHtS}`L_#jjT;jTG>7n9_ zR=*2o-`T*HR3s*JA&|SkDTpcYT6T+&&)GR;Zy4eWkJZ-4B{=+R60EMAD&$xE;_vg5 zAAf%^YfrS-pJ_hDHlTFYmPhON>bxlXo@Bl-EBK$5w^eRdpwsM2ucuee)~de{Hd$ar z)HbQQ8tyGx^Iv`mb)Vmu6U?krbE~v|_04qq^{-5y*YDB^dhqIg{U7;#_wMX=EM3Lz zU;1?Uk+`U3-bUt2rOpNWEZ})kSAOBcT>BTYvTs;F?qFUW^uqA)`kt#l7H41foY{25 z%Kg%dTM^omc849CurN$V&RT+t=S<9Urh4VixkY7VzaBTwNM5TE7<$LU)a!Ni-^A;m zcmMr2^*wuY;)BZj8$U!f$0mA;KD(iCFlpN>If+2t#9Zlh5_~$wSs(xXdsN!Nsy+X% zW$(JFpQe27dHjs)QG4?Og-a4lF~K_jn)ZESOaI&ad10`AtkT^z^ZeQ3{%=?{W42Xg zS>~zh^+LK|`hDb=^90HC^ReHsD%xINx6G|g?8dhb?atByC(|^Y%rCFJ5S75cY-aj| zoPgj38!f}%+aA$tcHyW#^Xg^Jy0=&6?d07Vabu>!6}^qKx4*b?;+IBb&JsgDaUb`L z0|{FglmCS5T=7cu!InI+8v)mA7km(hWkm)CZ+2i_RMAnW*nEIlmQlbc)hH>^+|a@x z$=KAyI3;!RTNXKHV0PWi$NH9o1C(#2bZ=HnX67@gxA2|gA9y$K#)h?3jP=JnU6S0l zF@MR?u@DMB;3VqR$U0l^`S)j;Ci403cOQOjGAaE_V!^b-YNs0)g!=Jsd%VG=`1+y5 z{nn2(l3sEAHDI6Qmh<4kaf|!GQX&15IcCnjxU8$NPROuz-{Q>y{)?QWo>cn&oyB=9$Yb6*jwL_+3{SEdBWrmvTl4|j#k#5OzUKO5?E|8D>vFmvskyg zYi1PVLi6BFr&TU4@BX*tm)@GAr*f}`^yUP3gk|kn8gW44^0)ifcRdM@%H5YJ_1bNl zX!2IAeOq2!jeld$2n#1jkrhAn?{#lR28L1=1_q(cru*Od=X-0<0WukHlurPiPR2aa-z#xOHf#C!1 zWL`cw{s3=ACJ_dBVLJICP`l*hzoLp@!xY7&nWhL#-Y6i9p)f&AnsM&r8ZkAtOF-QW F3;_3fW)%Pc diff --git a/Xceed.Words.NET.Examples/Samples/Paragraph/ParagraphSample.cs b/Xceed.Words.NET.Examples/Samples/Paragraph/ParagraphSample.cs index f3e3be7..f784534 100644 --- a/Xceed.Words.NET.Examples/Samples/Paragraph/ParagraphSample.cs +++ b/Xceed.Words.NET.Examples/Samples/Paragraph/ParagraphSample.cs @@ -1,6 +1,22 @@ /*************************************************************************************** + + DocX – DocX is the community edition of Xceed Words for .NET + + Copyright (C) 2009-2024 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/ + + *************************************************************************************/ + + +/*************************************************************************************** Xceed Words for .NET – Xceed.Words.NET.Examples – Paragraph Sample Application -Copyright (c) 2009-2023 - Xceed Software Inc. +Copyright (c) 2009-2024 - Xceed Software Inc. This application demonstrates how to create, format and position paragraphs when using the API from the Xceed Words for .NET. @@ -49,9 +65,6 @@ static ParagraphSample() #region Public Methods - ///

- /// Create a document with formatted paragraphs. - /// public static void SimpleFormattedParagraphs() { Console.WriteLine( "\tSimpleFormattedParagraphs()" ); @@ -145,9 +158,6 @@ public static void SimpleFormattedParagraphs() } } - /// - /// Create a document with styled paragraphs. The styles are already defined in a template document. - /// public static void StyleParagraphs() { Console.WriteLine( "\tStyleParagraphs()" ); @@ -177,9 +187,6 @@ public static void StyleParagraphs() } } - /// - /// Create a document and add a paragraph with all its lines on a single page. - /// public static void ForceParagraphOnSinglePage() { Console.WriteLine( "\tForceParagraphOnSinglePage()" ); @@ -210,9 +217,6 @@ public static void ForceParagraphOnSinglePage() } } - /// - /// Create a document and add a paragraph with all its lines on the same page as the next paragraph. - /// public static void ForceMultiParagraphsOnSinglePage() { Console.WriteLine( "\tForceMultiParagraphsOnSinglePage()" ); @@ -246,9 +250,6 @@ public static void ForceMultiParagraphsOnSinglePage() } } - /// - /// Create a document and insert, remove and replace texts. - /// public static void TextActions() { Console.WriteLine( "\tTextActions()" ); @@ -317,9 +318,6 @@ public static void TextActions() } } - /// - /// Set different Heading type for a Paragraph. - /// public static void Heading() { Console.WriteLine( "\tHeading()" ); @@ -347,9 +345,6 @@ public static void Heading() } } - /// - /// Add objects from another document. - /// public static void AddObjectsFromOtherDocument() { Console.WriteLine( "\tAddObjectsFromOtherDocument()" ); diff --git a/Xceed.Words.NET.Examples/Samples/Parallel/Output/OutputDoc1.docx b/Xceed.Words.NET.Examples/Samples/Parallel/Output/OutputDoc1.docx index 2e16a9e77987cb55f14e455fa0dcd97de09af379..8985785b08ee0d7f44a3c4122ef86c1685b2162a 100644 GIT binary patch delta 2023 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 a2nYaATsD)sIU4~zlh!#V2FW%60000FIgJ|t diff --git a/Xceed.Words.NET.Examples/Samples/Parallel/Output/OutputDoc2.docx b/Xceed.Words.NET.Examples/Samples/Parallel/Output/OutputDoc2.docx index 4e414d3da5bb720db1caeccc5a410910118aa874..12915f3a3d71ed1423e05f5fc3387b5bd4a163bc 100644 GIT binary patch delta 1148 zcmX?Ce71Ol9y4pt8CwDQ&Bn|IjP;Wp^O_9=T-PU6@*it#6KGAj?7J;f&)`P#0#@mp zewXL0?Uq{^zGA8e?~2Hh!=LKU|M{PixzB#T+3x;*%I`B`vr9ZH=L9rGN!)z3Yl-^$ zMWT0e&Dq}^Xy?4XrCB-Ab@wE*d;HnQ=45PO7oW{oS`m2c+k@sUrqT|39D8#ns(7c> zAD1kd<=Ho#@&DwEDOs#`(uJ=Af3qKa({q)(O8$qes{01hUz7UISf~VTny$LFdS=j} zH08p2gFDJ?N7wNDyYz6zgH`H(YtGflmwk+@pK3nYUtwCYlg8q|f~)daK4trA%zL&Z z<97j9Ia8Tg*e1DD?ll?}i>5r8ctm884!a=Zb62A&%Y#C+G&gZw`cb+fe?hwekLR?c zeNHDnz4=z2Q?&TDe1JDIiwFZ72L}TKgCfIX-6vt2r?B=j*K;;Yu)pQ5y1Q^k?cIG= zUrqLfrpsvRu2efI#^f#3tfen-_IBc*v^j@zdc!uB1%FN2taPkeXS15&LB1DvcUA2( z?7!0CJAF^}yQr`&jywm>F1_R*l5#?4*F2WZxqXT5{maj!~N!dtLOZUm3GDdN-fcSFs~slePJ$TTL^_XiwaKZQ~C2URm#dtDbA> z?w%H}VRm0PIy-jeDZ@tQ1&0m4n5xO#ire|xcS`|F_QBGG)9Ui9*VD|7bQzpDXnWG2 zhHHkaXaDM_wt-jE*3MK^65X`NdV{@m`-MqMzP@ahELA?Z-_ZSk{n^02H%|4*x+`wk zP2PQO(>Jp{MlSxX*=KfWNTViWu?=gfg$o06|>U8pTzfAkrbZo-y^ zHyN3#((21DzMT0h_L`;QqExs&6} zr8YBjJ1RJDu6`OZYn|TSdQJw0V?b;SjPmmQq7?ny)RfFbeM?J2gS501L*0~A<3wE( z^TcG`L_Vs6LugljS*xA^4Q=2~3VKzXpW#ghdsq$j^JmtxGA%xdAt=sDTl!jAFV zA0ceE)F#<~ odRYbO2n!S;HY~b)Zd)`X149$gf5Hgkfh^9+i!9aHrka5S0W?9>3jhEB delta 1148 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 delta 1844 zcmV-42g~@sbH8)2E&~LNw8qb~G6OLIf78KogCGzF;8$U|D`1SqPE0Pn~vG&lULCO z?|0iH^xTIZuI)yL!iaVyZoMC$2yvo?fxFm@pu>wYcHlmgwjm=IZ@dALP?`}tf6c)2 zOjKP)_)nrysuS>R#AyKS9|V&#)Gy$D@H>nuZX56=o;2f-h|xio*dF8xBeIyp{b9IA zhGbELzw|H_T
w&Z>vX5qg6THcy$hRBvgD5HJF>wW_HZOs(xB^BKePT?*fXJaK9 zKz5ukx@MFnd9>jfi&9p|sLql)f1;`Yo~tyMO2n^YbAujNoE1qSX(oh9C6iY*nce8_ z2T)4`1QY-U2nYZG03iUuWwEd^1pokV82|tg0001YZ*pWWWN%}2ZDnqBE_iKh?OAPa z<2DTbK4AYr@b}hsn)Xto=^<^}?0{|y+S}(rk>yycZ3&W+H23RA$uF_vf5c7G-Z0#D zK(BfsA5tVmk?z&!mo!03Di!0|(D6?_2hoi1kY)3sv(VAWz(GpmEW`=V=+IeH<$S*W z`KPN@5OT6eX{HfCWGYw*GIV0CMc}%M#5Bd~G-X6`#Up)6ctg{pxzNcaKfIy4VAX7 z#0AY@GvYGE8m4mYrdU2N#0ek^tl5kuOs@gdyC`8ect>VI0dZ0(V_1S*nc`Q;ArFz8 zvy2PRT8XZt3FyEx6*Ez}Cp{JoHscax*>#9znv`@a;rHJcTjSg>e;dF<)GwTwCb{O_ zh`x7#M+`*8afk{{nWZKvX4yvYQKqRG*FS$7K(7UGq3GKn&I<@vt<%lbSc&=jygZS7 zAvS32eP~~@=L*ZDzBgbM(Nd3K^*&{uVl3b)rzH3?&$z_11T+HQBXA$G9zf=nIFOnV zg5*5o;o6SvOrTW&ejW zIs~pcl@4;71hTnXnFMY z6ib{WG(nh{tQ#OnMS=-M@Q7#xFEL^%o>RlE8|N#L>{&m;fA?nt@6J0r-uF$T|F6~$ zZmr&pHy(_4sa5Fk{nRQ_9)C7<)02jR3piN_f{f4%r;sfFobVe=o*N(=raQP-6^r|} zJdyFK^q!=DLkvzE_y`HI>dFq4eh2}Ae+Ga~*5wI*_8ATye`m42t8QoN) zhiYV8{vFDxe}+Q2N|5$Umth(Lzu)WiJ&;S*wTZinDT*l3cR4FW5RjQrbP$xm@c(Sf z&l^VQYNisIK=2)uM-CjADgunVImmCziNqpi4rG1eF@Bs&6He=wpKlD5$SANB%KDGsBL#V;ge z%PE7P*hx^3fRT%+@itN8zQ$ot_fTEAuSvEjvxJFzmL&TmVM~EzK+_oo?H=ZpL64UYs@t$7Vuxk-*e&0L zpLPmx8#$nrpsL;GOXOBh(biMB{casx_}=>WH#b#rGL<_P>xEQfXIfk8tXRa8UMIAy zT7IF}d`IiG`XMDSfeoO;5!5v%9QsZ<8!a?1e+XK^b!4+8?|G(8uYwg}kb_5(VQ5WP zK|IP-eNI$0X%#bsCtQ}YJ^OEGQ&f`lE??=Hb`ty(ecg|1jG%-13En+q@Vl6OcIb~rtW;8csW@EE>D~$;QPh2*$2sOw71dO!C z&y& - /// For each of the documents in the folder 'Parallel\Resources\', - /// Replace the string "Apple" with the string "Potato" and replace the "Apple" image by a "Potato" image. - /// Do this in Parrallel accross many CPU cores. - /// public static void DoParallelActions() { Console.WriteLine( "\tDoParallelActions()" ); diff --git a/Xceed.Words.NET.Examples/Samples/Pdf/PdfSample.cs b/Xceed.Words.NET.Examples/Samples/Pdf/PdfSample.cs index e845ae2..856ed17 100644 --- a/Xceed.Words.NET.Examples/Samples/Pdf/PdfSample.cs +++ b/Xceed.Words.NET.Examples/Samples/Pdf/PdfSample.cs @@ -1,6 +1,22 @@ /*************************************************************************************** + + DocX – DocX is the community edition of Xceed Words for .NET + + Copyright (C) 2009-2024 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/ + + *************************************************************************************/ + + +/*************************************************************************************** Xceed Words for .NET – Xceed.Words.NET.Examples – PDF Sample Application -Copyright (c) 2009-2023 - Xceed Software Inc. +Copyright (c) 2009-2024 - Xceed Software Inc. This application demonstrates how to convert a docx file into a pdf file when using the API from the Xceed Words for .NET. @@ -34,18 +50,12 @@ static PdfSample() #region Public Methods - /// - /// Load a document and convert it to PDF. - /// public static void ConvertToPDF() { // This option is available when you buy Xceed Words for .NET from https://xceed.com/xceed-words-for-net/. } - /// - /// Load a document with uninstalled font and convert it to PDF. - /// public static void ConvertToPDFWithUninstalledFont() { diff --git a/Xceed.Words.NET.Examples/Samples/Protection/Output/AddPasswordProtection.docx b/Xceed.Words.NET.Examples/Samples/Protection/Output/AddPasswordProtection.docx index 6e545ffe8e5a026fd3af75c7b40f004e5e54e4a6..73f550b432795f411f9aee548df4dfcac1fd06c6 100644 GIT binary patch delta 1391 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 diff --git a/Xceed.Words.NET.Examples/Samples/Protection/Output/AddProtection.docx b/Xceed.Words.NET.Examples/Samples/Protection/Output/AddProtection.docx index d2969fa0e145e43c537230b6d1b2d9bf1701d3e0..1ab37160e1dce30a7f3fb87d980a6611d2eb4c75 100644 GIT binary patch delta 522 zcmX@FeNme?z?+#xgn@yBgJE;^(~Z1anK*!S#QY17RQmrOqC|{k!acmRpgNJX?CU#wHn#sHe9MmYJRjv=7;EKbPO) z)C?;pd!NQ7g3?(plINIBVY|9`qGGY|t&of7q$Pu2SX+61RkB{9bKd*abeY$NYhCJrDSvE56zbn_`DSw;bq#FQknt%I+ z#1*l~NpnNO<)?q{+4Mep{I+&?{ap1Tx99GQqfbl{;mFFovf{Vcvq29p;5_AMfFuxO_%v>k7%~tO8Z$ zs(a5c#qN3Gzxw?luQgc}mlI}+&(J)UwP*Q^;{uPq-M_x;S$LH1vVafAgFHeFFVEfY#;MZ{12d)=FnfuWRzfkB9YVY3ro1|v9Z*7B<`gBe$ZOu!0Ji_IV*mgE diff --git a/Xceed.Words.NET.Examples/Samples/Protection/Output/UpdatedPasswordProtected.docx b/Xceed.Words.NET.Examples/Samples/Protection/Output/UpdatedPasswordProtected.docx index 1ead5142efeea609aff29438f4eea957a1c162de..b27199ea80adc1acb0e85df03c3b11c1f97b7c79 100644 GIT binary patch delta 935 zcmV;Y16cgJSBOH%pOmlkX5Zf7^2EHWYpDO#i{-*Op)tLJ}rEX9y|hmNc0< z=b?F%EdeUJbxVfOukV(zY}0gTraS~`ueFz?eIqv?U!{n)3@q0wi_^0tj+iPnbFpC=pt*EZ#F4fBf*{4>!B1WzHeZMkt}|R3jhM)Rt=|i5*B@g0_0;e+H$N zQ@vdBk~Lp(;{jQ`cFs(P!^Y`M8>SFjYLLX?7FNT9%bhMO$&?$8l4LRjCWyle+ch^f zsLB7UhTuAgY)?I6D@EY#(&Qb_-D#k$$9t~l9SrD_S&NaCB3zKGAY;XQbPmuxFMz8n|1_xggf!ZHZmK1rNRs|IXC@Eu3?j#pBkV8?NTMs;`mwk4L<47R&1= z^XFpr@{q&wo0t!+NK*Gn|875DWu9e;K(BrA$NBTOO;Wzt@BHPbyDyJ2e=TMiGKL{0 ze`zg|Zy3I~IjDzHwj`Bs&!otmHptr&%*5rW&nedgNa+~lhLo7UxmFIe2xO{%)o!k( z0Zeb-4Nb&#d+bGO>rK1;O=}lql4O)#E+(U((2_brdYxX(&QB2jQ(<=ziXNFD^{L>9nF^iVfvdy1SEu({agPx6Ju;1lS| z9FcZF%ojxw4a{^rKGxyN-E$dWTNU{~G!%Avk5MW5xP>nKM-lh+e~gb5WPeM_%?j_M zXuc+fh4eY7+MpuY;WS}BJNHDb0*9%=_uO|_!70yT0)u?kuWA9gpF-?`80=o}R;v!CX3^P@)hs&Od9a;#wsEl4BjvEX2)2vP zHVL*#Jz#J;f#7O`e?u%Ry?v>L&^tyyclaAqFA~;A77NPHkG8M%!Q6}$8*QiT6^D+W z!T5t~IF;lzi$}>tzYH2D%$u&y~%bCIH=QISu&j&)S+We>R;crk&0Rk-m6aWASv!xV<0R?S0OObJtFcvxn Jm=pj20046)%Uu8f delta 935 zcmV;Y16cg+EbuI_>JSCugqPuTlkX5Zf6H#$I27FvF#jNEJ&q(lTO(@WIQ1lHJV~k! zGFwWdCDwchBxT3_`ni-vNp1=^s24GL&$)->eL0sOUpVu2L}@BT>_-=&?-7wnOhq31 zmDvp5`JOgNV8o;#v40@i|M=n0KQ8xkO^gAW_CP}DxdgrvbDb50BR$|WQ&P)~e;H(w z&*f%AGtzwdjfaZ;!kBU%1dY>$EQtVYBNaymwki*fF4r=vI1wfohT$|&gdqbL)&(uK zQ{%s@24LYtcIO_klMJF31#%lw)A_hk(Q2`r5mcm=mlpC&AxMdMG9vR59}vrHPRx@OB6?F&p+dS%DPF3{gpmGRWUj3Zo=*WGw%Y zW+{28AiaGzFd@_Jp%<~PH|_R|l*Y+~;V_!5rbDODk~%{4KAJ2>X9&MkSiBFX*YC~| zt|p7w_zYnc&Z5Pq_L)Kde_fY+Zkz5=Ip^bk1@ZFuQDBL9swnc-b#u0-@Oi4XS5!D! zN}xi?PY6ksI?iBlf@_W#TS1~64$XQ(z*LvlWYagXHBxzZYMb;LROdjbo4fWTTUbQ> ztz=c6koF3dw*mv|n9+EAszZgjr`*B1N|PTn1ax|jQ3?F8Q(gE^eLibv? zG>>AR(Y!GAEHSXdNNwv)nhzUnSYyK@R&P*d0|)G8(b<62EIQlB*+!jh>}>T&IW8y8 zHtB3rXPedo2Bwo@e^hK?h`FV;ZzN-KPw-8LzcTeAp>1TLpzQo;`&u5&%~;XiZcbic z=-3$yKe#2u9KFQ;Fr4(upmBn{$;zC#G>n>Keallpj0~zLcq - /// Create a read only document that can be edited by entering a valid password. - /// public static void AddPasswordProtection() { Console.WriteLine( "\tAddPasswordProtection()" ); @@ -71,9 +84,6 @@ public static void AddPasswordProtection() } } - /// - /// Create a read only document that can be edited by stopping the protection. - /// public static void AddProtection() { Console.WriteLine( "\tAddProtection()" ); @@ -102,9 +112,6 @@ public static void AddProtection() } } - /// - /// Load and change a document password protection. - /// public static void ChangePasswordProtection() { Console.WriteLine( "\tChangePasswordProtection()" ); diff --git a/Xceed.Words.NET.Examples/Samples/Section/Output/InsertSections.docx b/Xceed.Words.NET.Examples/Samples/Section/Output/InsertSections.docx index 44b89ccb87d454befb498e2d820762fd84c31f9b..28fd156b23773ae646a119a1890c1b956bc406e5 100644 GIT binary patch delta 2169 zcmZWqdpwkR7oQpTRZPsd&6puEW+svt$(?->!iQW#5wp49$K6A64Y7~AvYU0OXe2vU zr9ncmUZTxyr*)ZJD#l%5^o~oPx7~gI`hL$jzjJ=)`F%g<6x$crqpZ!jxDgNtKR=`) z=AGlZ?i#Nmm zDvL2%U?O6@JQN`hK)iKjx@g`gOlHN}4#mNlU9pyW17H@@cx7$fGW}+L92P@lnt0cv zM~KLa+>P=`rK2TFFynQx3U=`JlrWamp4MO|l>880p3|;wCR*9;4phrI!8G#=o3Fu= zPl{{W4I_IjEjw5>%U740D+q@NkK2u9o16Ag-A|VwJ07Goy|7hiV%853j4)mJq|Lfl z@UG$e=c&GhSsmF4hvLSQEe32zS3di`vMy4S`7m?UamH!oZIyPX^RZdpA-O(+5lXq- zCWzN&ayDGv?}&8BbAa0?&3;NkT*#kP##B>smbfJ?oZviGc;!i%8W&B_Q$u_eXtqSsPm(U~!9H9y~jrbSxvJ2RqL6PSga(h+8 z^@}DfYn*lNQH&3#L`h~`ue&Z~_*UZ=OnuhF=DN;0=0$mj0YJ^iLcI(ra&2JY>?MVt zXpVL#?5LR=lXorXAK%c^=ltkRT4L%5{;Ed#X`{1+{a0^w<##aO_w=rfExub=@!M%8 zl99o7aO^wPtZBJYc;F{xNtONz8Afn~ThfKvI}vz>79sYyDo*cV zmIK-UDE+$zAMa9$7O1{ex5k}PJV1+|X>-ZzDYc6SQs-)ph&n63CKqg_7UGw`I=2F$25%vYa;Y*&*S37yvDY8m5s!_#*| zhsDD{>}k8mla>VpC{s zlnNk5taEEQJbvS|fB)}cq&On=IJt#B-aR7Gr(sen+w2xMN?&0BnJml$_UrBSU(fzB z-#E%sAZztJzI@Z2i6iKxZ5^Apb)ZbtoP1DtSruv zf=oH3neuEb1IK;*=l;TUU3(%oG{Zz7j-c`dAyJVl_`;k1Wkm78qR7l%CN@0 zL+w*kCktRnfT1j~HLk^-q%&9YAO86+p;g%XCf&8gK~|f3PwdX~05;oJqf{Kjo!T{{+JMJx%hBA00bnmSsMG#zjKn3}3-y$JC zy$_(02bMW0*1ly7eE@nf2cSjf?!L?SXzf0bI(A^`ly`ydsbFt;fkYe$yQ_(>3ffhX zAmrOG2TZ_8?cN2vg+oE7z(+XDH!2#(Az_0;;Gz(QXl)LKAt3+Xju-RUL*|@x;hYUA z@@+;)HmI*CyI0oZdjH}q3<9C>aW?4RVg$ehMVY-AiJQg1V@{qyP9FH*Vr0M;#XW6< z6N)G(Kgd2{SUd{41Zv^;eXblf0!AIMQV#0@e>-3!9QG7k!(&}{e}WNxgc;AN)WY@8 zN_8?2NJLP>aUlCByMsS{>z$=Q|ZTEklr@g%Z delta 2183 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 delta 449 zcmbQMJy)AIz?+#xgn@yBgTXJxY$NXiCJrDS!Mt(Jn$268WEl;U4N{X*(~K>R63voL zOpQ#H6!h(E^n+4!5=%1k^NKSv3ySSf%-GD#@|FW^2zTKU$H_lrHc=&L3-1E@agSStt^*;bl=>{yewOAHVIpyMNZiITzax-ee1tWNr$x zGQF{`(ehQh)VJMl1>FUM-Cwk8PB2MwX0GkI+;&N!+C(WO&uO;StxDx2u3C3>#rdx7 zCh2RI)SYaIR2H#t#XUM{jM8r@1d)=FnfuWRzfk9}q7GD-4GcZ^;Pv>W2 w1~V22nSezmUl+E42l!-Z5krvdWPcGWL;y|{aRLio6R`!;Vxl%+I#kpH0OfC~?*IS* diff --git a/Xceed.Words.NET.Examples/Samples/Section/SectionSample.cs b/Xceed.Words.NET.Examples/Samples/Section/SectionSample.cs index 0ae67b6..b81561a 100644 --- a/Xceed.Words.NET.Examples/Samples/Section/SectionSample.cs +++ b/Xceed.Words.NET.Examples/Samples/Section/SectionSample.cs @@ -1,6 +1,22 @@ /*************************************************************************************** + + DocX – DocX is the community edition of Xceed Words for .NET + + Copyright (C) 2009-2024 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/ + + *************************************************************************************/ + + +/*************************************************************************************** Xceed Words for .NET – Xceed.Words.NET.Examples – Section Sample Application -Copyright (c) 2009-2023 - Xceed Software Inc. +Copyright (c) 2009-2024 - Xceed Software Inc. This application demonstrates how to insert sections when using the API from the Xceed Words for .NET. @@ -40,9 +56,6 @@ static SectionSample() #region Public Methods - /// - /// Create a document and insert Sections(with different footers) into it. - /// public static void InsertSections() { Console.WriteLine( "\tInsertSections()" ); diff --git a/Xceed.Words.NET.Examples/Samples/Shape/ShapeSample.cs b/Xceed.Words.NET.Examples/Samples/Shape/ShapeSample.cs index 60bab42..0714f02 100644 --- a/Xceed.Words.NET.Examples/Samples/Shape/ShapeSample.cs +++ b/Xceed.Words.NET.Examples/Samples/Shape/ShapeSample.cs @@ -1,6 +1,22 @@ /*************************************************************************************** + + DocX – DocX is the community edition of Xceed Words for .NET + + Copyright (C) 2009-2024 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/ + + *************************************************************************************/ + + +/*************************************************************************************** Xceed Words for .NET – Xceed.Words.NET.Examples – Section Sample Application -Copyright (c) 2009-2023 - Xceed Software Inc. +Copyright (c) 2009-2024 - Xceed Software Inc. This application demonstrates how to insert sections when using the API from the Xceed Words for .NET. @@ -41,9 +57,6 @@ static ShapeSample() #region Public Methods - /// - /// Create a document and insert shapes and paragraphs into it. - /// public static void AddShape() { @@ -56,9 +69,6 @@ public static void AddShape() // This option is available when you buy Xceed Words for .NET from https://xceed.com/xceed-words-for-net/. } - /// - /// Create a document and insert wrapping shapes and paragraphs into it. - /// public static void AddShapeWithTextWrapping() { @@ -70,9 +80,6 @@ public static void AddShapeWithTextWrapping() // This option is available when you buy Xceed Words for .NET from https://xceed.com/xceed-words-for-net/. } - /// - /// Create a document and insert a TextBox and paragraphs into it. - /// public static void AddTextBox() { @@ -83,9 +90,6 @@ public static void AddTextBox() // This option is available when you buy Xceed Words for .NET from https://xceed.com/xceed-words-for-net/. } - /// - /// Create a document and insert wrapping textboxes and paragraphs into it. - /// public static void AddTextBoxWithTextWrapping() { diff --git a/Xceed.Words.NET.Examples/Samples/Table/Output/ColumnsWidth.docx b/Xceed.Words.NET.Examples/Samples/Table/Output/ColumnsWidth.docx index c74a871e8f1789009b1f0d68b615354a3f3485c6..d654d338d614fefa629c4c9c5bbdafc102dab109 100644 GIT binary patch delta 517 zcmdm`w?mINz?+#xgn@yBgJE;^(~Z2xm^pxSM1uZ;#hY(4%Q6b2nHw0TC0d%8SSFg9 zBpaDc=3td$1}fRC$(q8+2~z9L-edB1@-#lpdT+nO1_BQ2lg`e&!O7-yb<6C$8)17J z?2SELlH9iizqlDupt7!^Rci_pw^{7D_h&C>*xkE#{r2_31b3c|-`6#65;$-{GQaw| znSuJQm5I9}-xmgGmLFL+U+J{6p4o+^CTlJFmmLl~ddUApQEQDv=&8hvpG(ec&YBqR zbm#Milmn{ulV$yc|Fys9tZKH-e4Er~4bO8XW*(TA!(8p{ z@~tmm%C|7PNsPzVFMIMVF!_Y|-^{PE5gnl^uU1W2!m7D)>)vG%N2YxGcK^E7bMdIC z>$|RqdUZP4g?w3hRR3SnXHJxGi-@24_qzAy{rp9Y;IJ_fWMc+1Y(-4KB9lu*ZQubr zd55SWNOtlYQ7fbn)E9G<2ZbltEJg-~QWgdVAqHfyYI47rB3RAdv__FzObiUs>zU@#^&41vWx=82BxM421$t~X@;gI zsmZC6IauYGfl4-OvZioyg48bFrLpt<!`oi5 z##GO7QQ4Mi?Qs5BlX4-ePT)e3hz&1`>i#@?IobZ+z3soRXR4f+c=TXRLueqAyKVhQKA9a9{ zH+@rRlvJG2>r{8#-|oBWC?OXSKlShC-TWnt;IJ_gWMc+1tVK+~B9n_mZQubr zd7G#qNOtloQ7fbn)D?3Cix!GWGp?E3E2aqMZ4{GcQWu=;C@9Py;LXS+!T^t~$sd3U P4JPx5tFfhuG5`Spf7`VS diff --git a/Xceed.Words.NET.Examples/Samples/Table/Output/CreateTableFromTemplate.docx b/Xceed.Words.NET.Examples/Samples/Table/Output/CreateTableFromTemplate.docx index e64cc71524c1ef8e31b84da409d0e76c84ae35b7..e35be869b7b7a4441c36caf94ddf34804a352e79 100644 GIT binary patch delta 1527 zcmVffXTX8fjOhA?>P9tHBBS?;0<+MieqS|ex~gE`qPFWheKq2~wg+ukz;OC#Nmpz+Wk%xV*0E8d*mVwn*=bQ&UO$)6#_E1>!T#M0=f6jQ# zqMk-)GuOh}k}_K}bwiJT1&mra3_;%r`3n@PDV+6k7@Ez{5`+a{L$l_Has0BuFpdUk zYF(|f4P>4G1S>R+GL*ONB^qEK24|Fch(nV(nupkP6kGvvfVew#iOW|2s<$#23ejPH zFNL^T8zV$|i81NFOoAPvHxao_euEs zqw&7nx=rG;0X)R~G?*SqEPox*&<}`+fLKc$VnR`8W{HPff1~&$*W{dQG>-!?w*Xop zJ`SRpLTKU2+myyKaNZZ?dq$&RgXX>u?ZJOuV+raz0xQjydpdj!8X z*UHZLA1yA)SwUmHFhCZtPQY-8*#fJBFDqq#&KCV}OvPQS7Y2^te`B^%$Q#R^Qu-{m za1#!DKhWdauzpbn6*qp%~t`08bzG$n)w-mok8l2VJtCoS;!wL02rc4 zP}Zsc5gyXrFsVYHYzaVQzth>MgU;0kNd(DK4a8UGKE@QXz4x zoZ;Lm)mGa3HNWUA@b(KT7fDh_b9;T!BN)LoZ`rdbp)AW4e-UZ|qqkl07X!k65sOVj zU!4MN00~9DZ4^deduW4FF~3xp+77$R)l~FJ$}Xu>c9d9g`gpeoGd)`_JK)N{m(2E3 zTDH_}f%3(9gS~UP-^q%U@5YSUkyYZnoZMFEGOEhjg`_+&N#n@LB+Yq8CTTuN|MXq1 zj2YaG$~={1e|ouO`bUI(4$nnpmdY%>+$?>f9Fa59Y1}Ms$JzJZxSq0!ta`t=Kj^#T z0{2GncgfuG5xxG4qSv}j>Gf*8-jWWlI?bE4wl4Ypf|zH*;f3uKGj`GY#gEGQx}>0r zz21>&UVWN3&f|5t$3IUMNnsmR^^HfB(VvHLY6rJo_3+_-A^k!!WWX z@l;RuW?g!{TCdCNYvpNf)LMq5`wO}P-#Jbwd8c}|Z_1}R6?PMt`;aN`lNqW{g~afM1+Q*56VrrW6KBR9qM07J6hE_r@q_;Wv(OIn zBL%KnIEI&#$TCy`&66E7LILxWU^6}eMw6d2O94!i>oY|Gi<2=lJOSpDZZtjtc$2L( dKmm=D?leCEjgu}lK>^K^a5W@ffU007m5@@)VB delta 1530 zcmV8gT#lUlBC57dayuez!d za^zcxP#+J}6%N%;!=Hb;UiK|&MjrOL0uX-KUk2ttbvO_DniiT4_E1>!T$9m|f6jT$ zq@G6SbJxV$k}^xH>xLfx3K%tU7{YpEoH)5bUsSl%c$BE71V^FgT~oLmZmS);z?Xqu>gV1H|2#OI*GJP`#bOQ1A}( z`zgfLS{WhIPn1djWfJU=brX@>f7G+_iWz-l=FX=wu*^*EX^6NH%X7 z7|r*^)@|aK4d5Z_r_S_9qWSBHhJJuY1jJh65EY7RW}0}&^*0NjWSX3Djn;7h^(}yQ zh>wG4r4U-U@;0fl4D9!L`JT}z*r2)ZLwoR_*I0u3j=)NzB_F}z`;?hFe<*-d_RRi+ z?Nf$k1T+HQE8spQ_JAU?LmrwN~-(xD_bNK2W^%I8b%HQ`Z|Kp!KwC0>q%} zt=rbkc(m@k#d8!9zCAL@b*1>p3KO<&#vT8dAhAGXpqh~Tn5l|ZoWKeaaaZ_nCezT1 z^V8vRxNpL>Rzwu-yiQ`lf1Nw7QmI&g4}WzDQJ#bgl{urH@`SwrC>D$9ys(2zG~Ue~ zcfRSllAG2Vz6RPg41EL_n}Wqkow=2YBa>X$*<)n3?E-g~S2E;Q`wge zZ>*J#@dIrxiCIBo{V+f#uui~mh}iBTN zO1LS9+7H%oE!e+E4zSgSD3X-UCmbkxEe*A?wa`-oSi}H%~32dcUj0EDF7Iv zNl@C_42~&@JU=&{e|03mMSr`2JGFJ|ucT${T7QfJQPXEC+&}(4zI*)p+vkVrQz7WI zvQZLoVSpm04LzVuVt__l+^J}<&*+?cMyhNYe8$d#lZyALVC=V@IRLn0WrnW=xayAuhlCn!`lpQHnoIcrY!EBu^lO1s7-%DnD zDJ|RTwm|vfyuseN-S4DD%6Ah+t;j5KUQTYybs1GBXUT%~=QI5zN=`?N@%W?L-3)fSM$g1nb{Z8NQ z7q~Zqzf0zhk7)H@6us7IN~>3E^{zB{)nVSM_3D!EFNk@j9A4PYFk=^8FMd?c?>3~> ztF^iz4gSN1xvcTeyAb6HvBUs9=g!!WXB z9#l{Fy|%P^wN~#)gI68q?OI3D{Uy=;oo$CQ4gQDQTv^;#Y<2krzw$6|*P7?Cx_p{* zrYHD_$l|{GJkV=R`NFnhtM_D8Q+1d(&UFu4p!@Wb^sIHrch~w|y*{cR_;xRyeBfz^ z5StuEe~;5(3PSsqvZvzEh&Zs&?l$5hg%12Sddc@hl)2!ZflA;QLTJY47YoN(0{aUR z+HeZTaSfxYOaqbE;nIU7VzqJGfmhvF=pH$n(2W{@iRLZKl~4~ z%?|S;1v@wpoSKuxGE@Q3lNvKZ0rrz!Gd=-Hlbkb40Z)_YGerT8lP)wo0qK)#G(G`) gld3d80g#jHG(Q25lPfhr0nn3eH6sS^F#rGn0P>&v+yDRo diff --git a/Xceed.Words.NET.Examples/Samples/Table/Output/InsertRowAndImageTable.docx b/Xceed.Words.NET.Examples/Samples/Table/Output/InsertRowAndImageTable.docx index 34050c7dd60333120d783388ef19f3f4fd601413..85b6727c7578786e54be5850e6382b7f336ed440 100644 GIT binary patch delta 1971 zcma)7cU03^7XBp^X-Y{5A}vTUL?I!eNgFAmw2VNI2tr5$>5(EqaDoVE1f>Lo0cH{D z4x&R)1VnHm#Vle13<&4|7K#iC2ep@thV(Q))V?^FiE0m* zh1Id}_yv#Wwi(=H`T zVG~on1!Gx(*R2N}vYSW4!~b;$=|_O-^~c(&{?=Lp>At`(R-8D#^tkwx zGSs!qvFeJ;-iA!_D`I|nQUqN z7^=wht~|9JHlyJx5KkU2%ZkyBlbTf*&*sbKygv|e~FSe#aL=-0ci zcjH{B3}IklfQ}hc#`q05=Zxh|@0VPG+zGYgg$qN(m?(RjASa``kc%#4s`eb~yko zTw0Sg8@6&nYC#^Q_8t#+$&d6WacUykaqu;b$8bub*afC)&>6i7|CYmvEQ3*2etm-K z%iP9C%CE|npr7gk#vbeQ{G7cUj3#%&HL`I{xYX(Caxwq;Owy<2s>M%LeFN8Tv{CP7 z^pz4fqn0O|ZJI($--q*s@jg>}!fLn>9>&X3p-r23;IgURvKU+U>~X}4mN$&kt0){~ z+WJWGYi4D*aKo{crK{YX(GY(V(bS!>XfoZ8_qb;Qo$7Qb&0A)NKkkKr~ z+wAdsh!AUVLj>os;b~byo1`)a*UjTz14S*I!Ri75OnfACV0gk1diJLn#7YO`ce|ZK zwjX>-6SH}klog+SVLTR^zbdV#Y^}07>sZG0PWi3M;1BoRbbQAi2dE=S;TCnFbk2{( zD|w|RtrS$PFbG}$v9?409k&ys!d6FGMpwEVk_WB5VW@T-d1>b6uX80Ozv2Vh+q2F` zseehSrlO7nS|Noc*_5v`3PA_b#&0v)iGqIw>&`c9Rx}4TJ}8rOIZ2&8q+dZ$xD(4X zhqu{X>*U57A5BzgTjs3$bX-uX)Du{kQzg;w1G5bIlKU(lhdA+uHW4F14d|!^Sa`%j zD>5VJpfXC6b?P?Jr80_z06S#bOC!Q%uCL&|8Aw(69=kib8+DF4q#{bet@k(XsCb@Z zCT&Eg>rY%3=rQ|u5@N1?T$A`cgUA%ZTI)M{_7l|5KAQp4xKkA z*lA;{??r!b;`TkdfgbRT3k;f{=t~ z+$8IsWMURfA@exM#>JT{s>&}C;~FRWwE~p}W&y?WpQOYpG}*yg%gug4dz|E3y8WKu zyIWlDmU!}1z&e=XTq|E`?R{s%R z4IuKeVgFId2pTnng!+FPWJHe){#$8;tEnTS@}iHbh>C&yB>_m1jn~$fbkf>7{S$}~ BKw8N|i*_ zF3hD=EwxnXD1)(dn3`7FDn?aJ%Uql@=XUO2_dVx3=R4o`e&73?=Q-zjzSt()X;4Ta zqHq9^lmy5$oR=vH!3YxtfB^*nILL`c!okO0b8av3Fwk1Klc~Fc7D}Y&27A)Z{wQqY zXJ4HDHcpejwlI~y%)@}&*Q^V8M`aF0E!%M#UcWW}ICWF___b?SYPPe37&3j1gO`=; zKU|SWkoL5Adn+^Lc@{rQitM=XUFGWfr_EmsCy4s1RVbPSJ@tM$lvx{h(>}kO0P5vg z97HcXdYX1LFXIl)QLJF|ek03)de~KkOYO+L9Q}=KhZ=;5c5A;%wrPO7Fs3WD4-e_; z?3@l8nEVu{?}=#KP$hN)ta*KYMOBSbWV86wcAUGViv8(&Z|1p&eLni5>L2gYM@GE| z1YD?M1^wd_6OEj?Pf9YuC$Z{vU`qW;lcPK8iH4cZafDiEVo7pjXYjCM+X=F#QIlBWeGv?yi}ye^*&Il*p`C9O+fqE< z1@WN2+>cioqMZaURxS-x=tC?;mpCsIfR(rz)3|i3^qGQ(U8jf*zC`CCnbLyB6tVFK zHEW@c%WK9WUecX@Ys}6v&1cTj=RXr;x`Gp2)wus2c%E|7xdBBNwpeSgm0qW?KL^7u ztT}DgB}<@PNM+H?0a^NNH^QeBLl#^gV{>ahQyT{v{@{ywO!A^c){I3?K0)aj;%YG8 z&!r+VOBZU#ww2Nimo5#h3jL;;EwPC5Qb;;eR%pE3FmxuKIwf}B zBVJADPuPMYdyT-HbDs1?rRoE!0MWrC=HBCNqmHq+HcR|hAGv*N8|BE&k#lw4@s&ec zEE(PmxXswHIeUcgW6!$Pmk`BeQg{5csKGq%ot!xCBC)8o75EaRB~V^nak3234vUUS zbssah{g{5Gm|;6LF)CkV5Rr*H=$+I+=cR0vC>gZ(XI>eNb?nm!f5o;*O`pU%rKR@#t5!0);RxpuOb;Y6dr)wPA5w43&{ zJ+=qT;>560G6xS?vW4=-SB0_3S)=51gnQ=T5d2+&caXZ{^_Cu=uxeUXMhk@~HxXd} zo`*$rWaKG!H2-mymL=7fJLVELq{pvr<$I-Ze_!bwvv_7C(5@4V(wjqlUW_kWHj9^# zV%{!x$z`8no84F8Mden>U=3S!xxo$%^Nj_^!VDH-2_SkqVpx0STja|c_1d}n7=6oi^t+H{x|{-V~)j} z;7!eT

IBno~BD*ng^su!ihwv7aRzA0!UBr_7#;`VauvTQb1c^*yH^slGpK7^wkS z<_M99ue5}rl%RDm&L9k7Kp{b(aNxgTE!r72dY_kuuETe#VvVl=jvRP`Pd6JPy znql(fN)|b0ppwnASW-ASL25hXgmkc#7{17+BFx|96c)bUDH?EY0;~LT@gPxW8O)~ukrXPVP(YmRmVy} z+v~cDj%59hX`O!4IsZ9-ImW}q7k5@H<`=V1(ykr>L#xgUj#-A4A06XYyDm%ovLw3Z zi8j}yu>Pnilcw6N_kFkQNt(9e6PNm^T63|aNvDooF>N&c3^OO&iz$HBh*>C@vH;C_0#qlAqGr+LIx#i2>%eGdU;qHNHNkKI delta 517 zcmZ3ZyGoZgz?+#xgn@yBgTXJxY$LBZGY624(8zwpu-S)MmQf(Zz}(2tz|uIyz{J4B zEX`zcC5s$0P|4<5EGe9vAhlaU^+MiFX6Mta_x3w%Akelx>Fhj~gpyENsDJxXazES*k!xaWkLqtc=&`g26AVU$s<;*@q_wVo_*=<{}rRwy0=!Zo+j!0huO#3#$TdAruDsH(E|Nz<(g%pAdMIGfq;R!Ozn~{N`l!bvohyfYMOlA~Q1gqJb)+lm|iGd-Soq<6R nSqa1R$&O+QU^QYE3Z^VTbDjXz38Sc4Fu6fYjqNHh+8G!COT@8p diff --git a/Xceed.Words.NET.Examples/Samples/Table/Output/ShadingPattern.docx b/Xceed.Words.NET.Examples/Samples/Table/Output/ShadingPattern.docx index b294a7651d885c680471beca4200abe2c9d39f59..d3c5a8f5de9a7654e3e0d34b8dc1cc42822cede9 100644 GIT binary patch delta 476 zcmZ3cw_J}mz?+#xgn@yBgJE;^(~Z2Fm^pxSMD>p5i<^%#%Q6~TrkGh6n^{;|8kv}x zBpW0vDd^kT=m(|dB$j06=M`sU78Ki|n6X)uHHDKCWXRJ~i?lvWZsOCdcg#DiAmF;b z>BjXN$2LCJQkk8%tG9^JhG$!-w7`RHmeJz2LF)rTT&G?xyXZUZ3{Ss#e9fM{@A=k$ zcA0mv{i2j(x6X1F-U!oKaTioy?bfw@Q|>+|#YZ?%B39vL7iSZn;jZdqOgt8+Cq%ZZ zm2UaEx##7J>Sro8C*>k%J~#cG%~roRZPMkN59>R^UJHIWc*tmRXMICt$8%0*RrQzE zJx!a$Ute81OI1p>-|K?%hh<0CKFYo95b6{)`>xMPo#J*o)nAui?cOM)U9{GllVR(- zRhyn|7vYvjuKHUZHT_rA>U&$ZvK`&+8(6q@-0+n4u|R0v4H^AZh~-@ySa>4MDP#Z-`nUg`l*UBUm(EOqy}#Bf`pRqy>MyN( zm|k>${x$2Y5bp^`Zi`QC%E@O$G%7O#7#EfYZ#sQtk-zxg%&)N#oliq=o2jigs|=pn zs`pM)%;4CTzu&j6`#Du?)~zXP)~TlFMsEG(-F@%R(Racq!4VNZ_3!3Y{3VRcz#!SI zD9FYPW@w3+fJG)JirTE!l_8|(B=|mSw;b~q%=d*M2plUV>1gA z!<6L73t8ltfl4+XV%fyS2~zt+Un=6m3xew3A%{*shbxIlrn-rHOHpVTzea zvWdmyg)DN+KqZ?Gv25bv1gX`n_D^^}xt3qE-rMi6fq=vMq_gvG|K_BRrq-FC)EdC&SjP1qE%F?rGoor7cO$#Dc zPtrVDac-(!)*HlgwpDOZQgj*u{*1z9T*Z(+m zcP|Nf?qwV1x^Tw7ON-3wH~wZp3Au>)sed;w6)0f@hmDL78#9=pDry22nH(c#0}t5A z3&adTvXiffSs{g>xVR%&G+JDmX|llN4FV#Qd&GIbLbJuC8Tlq}7gqrDZUK4XlfQ|p KvH6HG0098nF0_9D diff --git a/Xceed.Words.NET.Examples/Samples/Table/TableSample.cs b/Xceed.Words.NET.Examples/Samples/Table/TableSample.cs index 2858d7b..10be261 100644 --- a/Xceed.Words.NET.Examples/Samples/Table/TableSample.cs +++ b/Xceed.Words.NET.Examples/Samples/Table/TableSample.cs @@ -1,6 +1,22 @@ /*************************************************************************************** + + DocX – DocX is the community edition of Xceed Words for .NET + + Copyright (C) 2009-2024 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/ + + *************************************************************************************/ + + +/*************************************************************************************** Xceed Words for .NET – Xceed.Words.NET.Examples – Table Sample Application -Copyright (c) 2009-2023 - Xceed Software Inc. +Copyright (c) 2009-2024 - Xceed Software Inc. This application demonstrates how to create and format a table when using the API from the Xceed Words for .NET. @@ -43,9 +59,6 @@ static TableSample() #region Public Methods - ///

- /// Create a table, insert rows, image and replace text. - /// public static void InsertRowAndImageTable() { Console.WriteLine( "\tInsertRowAndImageTable()" ); @@ -114,9 +127,6 @@ public static void InsertRowAndImageTable() } } - /// - /// Create a table, insert rows and make the table wraps around text. - /// public static void AddTableWithTextWrapping() { @@ -129,9 +139,6 @@ public static void AddTableWithTextWrapping() // This option is available when you buy Xceed Words for .NET from https://xceed.com/xceed-words-for-net/. } - /// - /// Clone a table and modify data in it. - /// public static void CloneTable() { @@ -140,9 +147,6 @@ public static void CloneTable() // This option is available when you buy Xceed Words for .NET from https://xceed.com/xceed-words-for-net/. } - /// - /// Create a table and set the text direction of each cell. - /// public static void TextDirectionTable() { Console.WriteLine( "\tTextDirectionTable()" ); @@ -187,9 +191,6 @@ public static void TextDirectionTable() } } - /// - /// Load a document, gets its table and replace the default row with updated copies of it. - /// public static void CreateRowsFromTemplate() { Console.WriteLine( "\tCreateRowsFromTemplate()" ); @@ -228,11 +229,6 @@ public static void CreateRowsFromTemplate() } } - /// - /// Add a Table in a document where its columns will have a specific width. In addition, - /// the left margin of the row cells will be removed for all rows except the first. - /// Finally, a blank border will be set for the table's top and bottom borders. - /// public static void ColumnsWidth() { Console.WriteLine( "\tColumnsWidth()" ); @@ -289,9 +285,6 @@ public static void ColumnsWidth() } } - /// - /// Add a table and merged some cells. Individual cells can also be removed by shifting their right neighbors to the left. - /// public static void MergeCells() { Console.WriteLine( "\tMergeCells()" ); @@ -337,9 +330,6 @@ public static void MergeCells() } } - /// - /// Get/Set shading pattern to a table or cells. - /// public static void ShadingPattern() { Console.WriteLine( "\tShadingPattern()" ); diff --git a/Xceed.Words.NET.Examples/Samples/TableOfContent/Output/InsertTableOfContent.docx b/Xceed.Words.NET.Examples/Samples/TableOfContent/Output/InsertTableOfContent.docx index 7e95e6027360d324158522e353b5c60e0eee9a91..12f7a6891825d4d7fd59a2d68a5c9d8c14bf5f81 100644 GIT binary patch delta 489 zcmbPgJjIwdz?+#xgn@yBgJE;^(~Z1NtQzwqKmZ78c3ZTFf14emD&Y}D9rOT(#fy};>RY{&AKrKH`R|}QdD^7TDPVSO$1dE=N nkY@Zn`IUqsn8zn6%~&>BOHu*M^9Ay{CTB{jvF#TJhCc%U&B)3V delta 489 zcmbPYJk^*tz?+#xgn@yBgTXJxY$LA|D+iE{&=g~2*&NO)%V?OGY><|kVxE*}nv!N> zXl|*bpl@fRAC#JtSdy8aSDcYqP;7@{#^$AL7FZ<@O{s~z!1R1z#zjgd4Yu7 zWL`nudimqN0hjZ3B}RW`>a+Dz60+Vj*XjJRCgnm_osfkh5gT3>)#cA~`~30SzPtPV zlr0y3ZZ_pj@#JFZ-I8Sx%j|uDU-V7+ZRI|tBYgMyH>(#O`N8%};F-JE-ZzCpb{man zMO?h*t90Z-X^GgU$P$mwCQq-dl`J@|vix+c zfr&%>n&9g>LYWTpLYR-QN@AU+m0sH0^O=cb@9asD%fw>$yzpQB{*aeWsLaGrqti#) zrmF5=KI6E+qi^@G?|K#vl4@)R#DU?@003sfu^0dV diff --git a/Xceed.Words.NET.Examples/Samples/TableOfContent/Output/InsertTableOfContentWithReference.docx b/Xceed.Words.NET.Examples/Samples/TableOfContent/Output/InsertTableOfContentWithReference.docx index df82664c58a7925ddecb44509f2c8a03ec14bdb5..081b08f01b321d44c7c373d5d18d38958c97f2ac 100644 GIT binary patch delta 458 zcmZoNZZhT#@MdNaVPN3kVAx#!bR%yeD+iE{@QFXOWpf*=ETdssnuU2X zQL>Seg1()Neo$&oVo7FxUU5cdL9rc*8Jn-LediPc8N#EL==+X=fgym2fkB30a-W1; z{nkm|euoVN9M&hDoo7)vCn?}^-i-}ws~FRb{FH>OH_0wYPd+$t2b0*U04|*yC6@cm z{TKhNsJ{O$e)&Y($^6ZmO+_O4dUSS`ZHVRdHZkY=w)<_Pn{2TAi+0NmCP~h`wLPD0 zpEFj^Dmih-$1Jqx^W;9wFS7GZ?OyinIPsbHdv-lrjM2@HCYS3w&dp$adGMjp#NPUb z%8um|nKmr`CVN!sNB8Hqma|o*HXPs9);y`>icpttmhrKF7uP&55!Fw$b7;o!SYVTuTo$`A+}* z*xY~qpTf%fZ~Pt~h&$PSFOs!VtzqKTbuV*QC-gmA*mSpS^K!=ITO6_WtkdS*Sg@eG zunyB0GQ;csC(f^e(T{>UOuu{Av)wVe`OxNKeaE>OahEq={_J7) zkMWt}Ja(=Fd@rKAxPHw3e0J+>RjCcr-44dBmztuYb!3sorz+N-`@Sd7CHvZ`{<{3C zdV@f;25w-`s1fV!bn6BE>f8dHp)oeg9AQTXmFxiHM)N z`KMqhBQr2;HWvyDGJ_edVkTgb$$P|Y;6Xo0!Vn}m*+jw$ECve6$z>8wV8PuIwqW|V LgbkRslJo!o2hF;^ diff --git a/Xceed.Words.NET.Examples/Samples/TableOfContent/TableOfContentSample.cs b/Xceed.Words.NET.Examples/Samples/TableOfContent/TableOfContentSample.cs index 579a342..ca84f41 100644 --- a/Xceed.Words.NET.Examples/Samples/TableOfContent/TableOfContentSample.cs +++ b/Xceed.Words.NET.Examples/Samples/TableOfContent/TableOfContentSample.cs @@ -1,6 +1,22 @@ /*************************************************************************************** + + DocX – DocX is the community edition of Xceed Words for .NET + + Copyright (C) 2009-2024 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/ + + *************************************************************************************/ + + +/*************************************************************************************** Xceed Words for .NET – Xceed.Words.NET.Examples – Table of content Sample Application -Copyright (c) 2009-2023 - Xceed Software Inc. +Copyright (c) 2009-2024 - Xceed Software Inc. This application demonstrates how to insert a table of content when using the API from the Xceed Words for .NET. @@ -40,9 +56,6 @@ static TableOfContentSample() #region Public Methods - /// - /// Add a Table of content to a document. - /// public static void InsertTableOfContent() { Console.WriteLine( "\tInsertTableOfContent()" ); @@ -73,9 +86,6 @@ public static void InsertTableOfContent() } } - /// - /// Add a Table of content to a document by inserting it just before a reference paragraph. - /// public static void InsertTableOfContentWithReference() { Console.WriteLine( "\tInsertTableOfContentWithReference()" ); @@ -109,9 +119,6 @@ public static void InsertTableOfContentWithReference() } } - /// - /// Load a document containing a Table of Content, modify the document and update the Table of Content. - /// public static void UpdateTableOfContent() { diff --git a/Xceed.Words.NET.Examples/Xceed.Words.NET.Examples.csproj b/Xceed.Words.NET.Examples/Xceed.Words.NET.Examples.csproj index 2391d0d..23e3efc 100644 --- a/Xceed.Words.NET.Examples/Xceed.Words.NET.Examples.csproj +++ b/Xceed.Words.NET.Examples/Xceed.Words.NET.Examples.csproj @@ -84,6 +84,7 @@ + diff --git a/Xceed.Words.NET.Examples/Xceed.Words.NET5.Examples.csproj b/Xceed.Words.NET.Examples/Xceed.Words.NET5.Examples.csproj index 44f5112..3febde0 100644 --- a/Xceed.Words.NET.Examples/Xceed.Words.NET5.Examples.csproj +++ b/Xceed.Words.NET.Examples/Xceed.Words.NET5.Examples.csproj @@ -8,7 +8,7 @@ Exe net5.0 Xceed.Words.NET.Examples - Xceed.Words.NET5.Examples + Xceed.Words.NET.Examples false false @@ -113,15 +113,18 @@ - + - - ..\Xceed.Document.NET\bin\$(Configuration)\net5.0\Xceed.Document.NET5.dll + + ..\Xceed.Document.NET\bin\$(Configuration)\net5.0\Xceed.Document.NET.dll - - ..\Xceed.Words.NET\bin\$(Configuration)\net5.0\Xceed.Words.NET5.dll + + ..\Xceed.Pdf\bin\$(Configuration)\net5.0\Xceed.Pdf.NET.dll + + + ..\Xceed.Words.NET\bin\$(Configuration)\net5.0\Xceed.Words.NET.dll diff --git a/Xceed.Words.NET/DocX.cs b/Xceed.Words.NET/DocX.cs index 76f1ea6..8140df9 100644 --- a/Xceed.Words.NET/DocX.cs +++ b/Xceed.Words.NET/DocX.cs @@ -2,7 +2,7 @@ DocX – DocX is the community edition of Xceed Words for .NET - Copyright (C) 2009-2023 Xceed Software Inc. + Copyright (C) 2009-2024 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 @@ -29,12 +29,10 @@ COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at #endif using System.Xml.Linq; using Xceed.Document.NET; +using Xceed.Words.Net; namespace Xceed.Words.NET { - /// - /// Represents a DocX document. - /// public class DocX : Xceed.Document.NET.Document { private static bool IsCommercialLicenseRead = false; @@ -61,59 +59,6 @@ internal DocX( Xceed.Document.NET.Document document, XElement xml ) #region Public Methods - /// - /// Creates a document using a Stream. - /// - /// The Stream to create the document from. - /// - /// Returns a Document object which represents the document. - /// - /// Creating a document from a FileStream. - /// - /// // Use a FileStream fs to create a new document. - /// using(FileStream fs = new FileStream(@"C:\Example\Test.docx", FileMode.Create)) - /// { - /// // Load the document using fs - /// using (var document = DocX.Create(fs)) - /// { - /// // Do something with the document here. - /// - /// // Save all changes made to this document. - /// document.Save(); - /// }// Release this document from memory. - /// } - /// - /// - /// - /// Creating a document in a SharePoint site. - /// - /// using(SPSite mySite = new SPSite("http://server/sites/site")) - /// { - /// // Open a connection to the SharePoint site - /// using(SPWeb myWeb = mySite.OpenWeb()) - /// { - /// // Create a MemoryStream ms. - /// using (MemoryStream ms = new MemoryStream()) - /// { - /// // Create a document using ms. - /// using (var document = DocX.Create(ms)) - /// { - /// // Do something with the document here. - /// - /// // Save all changes made to this document. - /// document.Save(); - /// }// Release this document from memory - /// - /// // Add the document to the SharePoint site - /// web.Files.Add("filename", ms.ToArray(), true); - /// } - /// } - /// } - /// - /// - /// - /// - /// public static DocX Create( Stream stream, DocumentTypes documentType = DocumentTypes.Document ) { var docX = new DocX( null, null ) as Xceed.Document.NET.Document; @@ -122,37 +67,6 @@ public static DocX Create( Stream stream, DocumentTypes documentType = DocumentT return docX as DocX; } - /// - /// Creates a document using a fully qualified or relative filename. - /// - /// The fully qualified or relative filename. - /// - /// Returns a Document object which represents the document. - /// - /// - /// // Create a document using a relative filename. - /// using (var document = DocX.Create(@"..\Test.docx")) - /// { - /// // Do something with the document here. - /// - /// // Save all changes made to this document. - /// document.Save(); - /// }// Release this document from memory - /// - /// - /// // Create a document using a relative filename. - /// using (var document = DocX.Create(@"..\Test.docx")) - /// { - /// // Do something with the document here. - /// - /// // Save all changes made to this document. - /// document.Save(); - /// }// Release this document from memory - /// - /// - /// - /// - /// public static DocX Create( string filename, DocumentTypes documentType = DocumentTypes.Document ) { var docX = new DocX( null, null ) as Xceed.Document.NET.Document; @@ -161,94 +75,12 @@ public static DocX Create( string filename, DocumentTypes documentType = Documen return docX as DocX; } - /// - /// Loads a document into a Document object using a Stream. - /// - /// The Stream to load the document from. - /// - /// Returns a Document object which represents the document. - /// - /// - /// Loading a document from a FileStream. - /// - /// // Open a FileStream fs to a document. - /// using (FileStream fs = new FileStream(@"C:\Example\Test.docx", FileMode.Open)) - /// { - /// // Load the document using fs. - /// using (var document = DocX.Load(fs)) - /// { - /// // Do something with the document here. - /// - /// // Save all changes made to the document. - /// document.Save(); - /// }// Release this document from memory. - /// } - /// - /// - /// - /// Loading a document from a SharePoint site. - /// - /// // Get the SharePoint site that you want to access. - /// using (SPSite mySite = new SPSite("http://server/sites/site")) - /// { - /// // Open a connection to the SharePoint site - /// using (SPWeb myWeb = mySite.OpenWeb()) - /// { - /// // Grab a document stored on this site. - /// SPFile file = web.GetFile("Source_Folder_Name/Source_File"); - /// - /// // Document.Load requires a Stream, so open a Stream to this document. - /// Stream str = new MemoryStream(file.OpenBinary()); - /// - /// // Load the file using the Stream str. - /// using (var document = DocX.Load(str)) - /// { - /// // Do something with the document here. - /// - /// // Save all changes made to the document. - /// document.Save(); - /// }// Release this document from memory. - /// } - /// } - /// - /// - /// - /// public static DocX Load( Stream stream ) { var docX = new DocX( null, null ) as Xceed.Document.NET.Document; return Xceed.Document.NET.Document.Load( stream, docX, DocumentTypes.Document ) as DocX; } - /// - /// Loads a document into a Document object using a fully qualified or relative filename. - /// - /// The fully qualified or relative filename. - /// - /// Returns a DocX object which represents the document. - /// - /// - /// - /// // Load a document using its fully qualified filename - /// using (var document = DocX.Load(@"C:\Example\Test.docx")) - /// { - /// // Do something with the document here - /// - /// // Save all changes made to document. - /// document.Save(); - /// }// Release this document from memory. - /// - /// - /// // Load a document using its relative filename. - /// using(var document = DocX.Load(@"..\..\Test.docx")) - /// { - /// // Do something with the document here. - /// - /// // Save all changes made to document. - /// document.Save(); - /// }// Release this document from memory. - /// - /// public static DocX Load( string filename ) { var docX = new DocX( null, null ) as Xceed.Document.NET.Document; @@ -334,30 +166,10 @@ public override void SaveAs( string filename, string password = "" ) base.SaveAs( filename, password ); } - /// - /// Save this document back to the location it was loaded from. - /// - /// - /// - /// // Load a document. - /// using (var document = DocX.Load(@"C:\Example\Test.docx")) - /// { - /// // Add an Image from a file. - /// document.AddImage(@"C:\Example\Image.jpg"); - /// - /// // Save all changes made to this document. - /// document.Save(); - /// }// Release this document from memory. - /// - /// - /// - /// - /// public override void Save( string password = "" ) { + Message.ShowMessage(); + if( this.IsPackageClosed( _package ) ) @@ -452,10 +264,6 @@ public override void Save( string password = "" ) #endregion } - /// - /// Copy the Document into a new Document - /// - /// Returns a copy of a the Document public override Xceed.Document.NET.Document Copy() { return this.InternalCopy(); @@ -508,9 +316,6 @@ protected internal override Xceed.Document.NET.Document InternalCopy( bool close } } - /// - /// Save the headerd and footers - /// protected internal override void SaveHeadersFooters() { foreach( var section in this.Sections ) diff --git a/Xceed.Words.NET/Message.cs b/Xceed.Words.NET/Message.cs new file mode 100644 index 0000000..8db38fd --- /dev/null +++ b/Xceed.Words.NET/Message.cs @@ -0,0 +1,783 @@ +/*************************************************************************************** + + DocX – DocX is the community edition of Xceed Words for .NET + + Copyright (C) 2009-2024 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.Linq; + +namespace Xceed.Words.Net +{ + internal static class Message + { + #region Private Members + + private static bool m_shown; + + #endregion + + #region Private Properties + + private static System.Collections.Generic.IEnumerable Data + { + get + { + yield return 44; + yield return 35; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 44; + yield return 35; + yield return 266; + yield return 200; + yield return 251; + yield return 239; + yield return 224; + yield return 239; + yield return 218; + yield return 179; + yield return 101; + yield return 257; + yield return 317; + yield return 308; + yield return 101; + yield return 302; + yield return 338; + yield return 332; + yield return 341; + yield return 338; + yield return 335; + yield return 308; + yield return 335; + yield return 353; + yield return 101; + yield return 107; + yield return 209; + yield return 338; + yield return 302; + yield return 269; + yield return 107; + yield return 101; + yield return 368; + yield return 338; + yield return 356; + yield return 101; + yield return 296; + yield return 347; + yield return 308; + yield return 101; + yield return 302; + yield return 356; + yield return 347; + yield return 347; + yield return 308; + yield return 335; + yield return 353; + yield return 329; + yield return 368; + yield return 101; + yield return 356; + yield return 350; + yield return 320; + yield return 335; + yield return 314; + yield return 101; + yield return 320; + yield return 350; + yield return 101; + yield return 314; + yield return 338; + yield return 359; + yield return 308; + yield return 347; + yield return 335; + yield return 308; + yield return 305; + yield return 101; + yield return 299; + yield return 368; + yield return 101; + yield return 353; + yield return 317; + yield return 308; + yield return 101; + yield return 269; + yield return 302; + yield return 308; + yield return 308; + yield return 305; + yield return 101; + yield return 206; + yield return 338; + yield return 332; + yield return 332; + yield return 356; + yield return 335; + yield return 320; + yield return 353; + yield return 368; + yield return 101; + yield return 233; + yield return 320; + yield return 302; + yield return 308; + yield return 335; + yield return 350; + yield return 308; + yield return 101; + yield return 200; + yield return 314; + yield return 347; + yield return 308; + yield return 308; + yield return 332; + yield return 308; + yield return 335; + yield return 353; + yield return 44; + yield return 35; + yield return 296; + yield return 335; + yield return 305; + yield return 101; + yield return 341; + yield return 308; + yield return 347; + yield return 332; + yield return 320; + yield return 353; + yield return 350; + yield return 101; + yield return 239; + yield return 242; + yield return 239; + yield return 140; + yield return 302; + yield return 338; + yield return 332; + yield return 332; + yield return 308; + yield return 347; + yield return 302; + yield return 320; + yield return 296; + yield return 329; + yield return 101; + yield return 356; + yield return 350; + yield return 308; + yield return 101; + yield return 338; + yield return 335; + yield return 329; + yield return 368; + yield return 143; + yield return 101; + yield return 203; + yield return 368; + yield return 101; + yield return 302; + yield return 338; + yield return 335; + yield return 353; + yield return 320; + yield return 335; + yield return 356; + yield return 320; + yield return 335; + yield return 314; + yield return 101; + yield return 356; + yield return 350; + yield return 320; + yield return 335; + yield return 314; + yield return 101; + yield return 353; + yield return 317; + yield return 320; + yield return 350; + yield return 101; + yield return 359; + yield return 308; + yield return 347; + yield return 350; + yield return 320; + yield return 338; + yield return 335; + yield return 137; + yield return 101; + yield return 368; + yield return 338; + yield return 356; + yield return 101; + yield return 296; + yield return 347; + yield return 308; + yield return 101; + yield return 302; + yield return 338; + yield return 335; + yield return 311; + yield return 320; + yield return 347; + yield return 332; + yield return 320; + yield return 335; + yield return 314; + yield return 101; + yield return 353; + yield return 317; + yield return 296; + yield return 353; + yield return 101; + yield return 353; + yield return 317; + yield return 320; + yield return 350; + yield return 101; + yield return 302; + yield return 338; + yield return 332; + yield return 341; + yield return 338; + yield return 335; + yield return 308; + yield return 335; + yield return 353; + yield return 44; + yield return 35; + yield return 320; + yield return 350; + yield return 101; + yield return 338; + yield return 335; + yield return 329; + yield return 368; + yield return 101; + yield return 299; + yield return 308; + yield return 320; + yield return 335; + yield return 314; + yield return 101; + yield return 356; + yield return 350; + yield return 308; + yield return 305; + yield return 101; + yield return 311; + yield return 338; + yield return 347; + yield return 101; + yield return 296; + yield return 101; + yield return 335; + yield return 338; + yield return 335; + yield return 140; + yield return 302; + yield return 338; + yield return 332; + yield return 332; + yield return 308; + yield return 347; + yield return 302; + yield return 320; + yield return 296; + yield return 329; + yield return 101; + yield return 341; + yield return 356; + yield return 347; + yield return 341; + yield return 338; + yield return 350; + yield return 308; + yield return 143; + yield return 101; + yield return 224; + yield return 311; + yield return 101; + yield return 368; + yield return 338; + yield return 356; + yield return 101; + yield return 296; + yield return 347; + yield return 308; + yield return 101; + yield return 356; + yield return 350; + yield return 320; + yield return 335; + yield return 314; + yield return 101; + yield return 353; + yield return 317; + yield return 320; + yield return 350; + yield return 101; + yield return 302; + yield return 338; + yield return 332; + yield return 341; + yield return 338; + yield return 335; + yield return 308; + yield return 335; + yield return 353; + yield return 101; + yield return 320; + yield return 335; + yield return 101; + yield return 296; + yield return 101; + yield return 302; + yield return 338; + yield return 332; + yield return 332; + yield return 308; + yield return 347; + yield return 302; + yield return 320; + yield return 296; + yield return 329; + yield return 101; + yield return 296; + yield return 341; + yield return 341; + yield return 329; + yield return 320; + yield return 302; + yield return 296; + yield return 353; + yield return 320; + yield return 338; + yield return 335; + yield return 137; + yield return 44; + yield return 35; + yield return 341; + yield return 329; + yield return 308; + yield return 296; + yield return 350; + yield return 308; + yield return 101; + yield return 302; + yield return 338; + yield return 335; + yield return 353; + yield return 296; + yield return 302; + yield return 353; + yield return 101; + yield return 269; + yield return 302; + yield return 308; + yield return 308; + yield return 305; + yield return 122; + yield return 350; + yield return 101; + yield return 350; + yield return 296; + yield return 329; + yield return 308; + yield return 350; + yield return 101; + yield return 353; + yield return 308; + yield return 296; + yield return 332; + yield return 101; + yield return 299; + yield return 368; + yield return 101; + yield return 308; + yield return 332; + yield return 296; + yield return 320; + yield return 329; + yield return 101; + yield return 296; + yield return 353; + yield return 101; + yield return 350; + yield return 296; + yield return 329; + yield return 308; + yield return 350; + yield return 197; + yield return 365; + yield return 302; + yield return 308; + yield return 308; + yield return 305; + yield return 143; + yield return 302; + yield return 338; + yield return 332; + yield return 101; + yield return 338; + yield return 347; + yield return 101; + yield return 359; + yield return 320; + yield return 350; + yield return 320; + yield return 353; + yield return 44; + yield return 35; + yield return 317; + yield return 353; + yield return 353; + yield return 341; + yield return 350; + yield return 179; + yield return 146; + yield return 146; + yield return 365; + yield return 302; + yield return 308; + yield return 308; + yield return 305; + yield return 143; + yield return 302; + yield return 338; + yield return 332; + yield return 146; + yield return 308; + yield return 335; + yield return 146; + yield return 338; + yield return 356; + yield return 347; + yield return 140; + yield return 341; + yield return 347; + yield return 338; + yield return 305; + yield return 356; + yield return 302; + yield return 353; + yield return 350; + yield return 146; + yield return 341; + yield return 347; + yield return 338; + yield return 305; + yield return 356; + yield return 302; + yield return 353; + yield return 146; + yield return 362; + yield return 338; + yield return 347; + yield return 305; + yield return 350; + yield return 140; + yield return 311; + yield return 338; + yield return 347; + yield return 140; + yield return 335; + yield return 308; + yield return 353; + yield return 101; + yield return 353; + yield return 338; + yield return 101; + yield return 341; + yield return 356; + yield return 347; + yield return 302; + yield return 317; + yield return 296; + yield return 350; + yield return 308; + yield return 101; + yield return 296; + yield return 101; + yield return 350; + yield return 356; + yield return 299; + yield return 350; + yield return 302; + yield return 347; + yield return 320; + yield return 341; + yield return 353; + yield return 320; + yield return 338; + yield return 335; + yield return 101; + yield return 329; + yield return 320; + yield return 302; + yield return 308; + yield return 335; + yield return 350; + yield return 308; + yield return 143; + yield return 44; + yield return 35; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 131; + yield return 44; + yield return 35; + } + } + + #endregion + + #region Internal Methods + + internal static void ShowMessage() + { + if( m_shown ) + return; + + + + + System.Diagnostics.Trace.WriteLine( new string( Message.Data.Select( Message.ConvVal ).ToArray() ) ); + + m_shown = true; + } + + #endregion + + #region Private Methods + + private static char ConvVal( ulong x ) + { + return (char)( (x - 5) / 3 ); + } + + #endregion + } + +} diff --git a/Xceed.Words.NET/Properties/AssemblyInfo.cs b/Xceed.Words.NET/Properties/AssemblyInfo.cs index 209d655..943e934 100644 --- a/Xceed.Words.NET/Properties/AssemblyInfo.cs +++ b/Xceed.Words.NET/Properties/AssemblyInfo.cs @@ -2,7 +2,7 @@ DocX – DocX is the community edition of Xceed Words for .NET - Copyright (C) 2009-2023 Xceed Software Inc. + Copyright (C) 2009-2024 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 @@ -27,7 +27,7 @@ COMMUNITY LICENSE AGREEMENT (for non-commercial use) as published at [assembly: AssemblyCompany( "Xceed Software Inc." )] [assembly: AssemblyProduct( "Xceed Words for .NET" )] -[assembly: AssemblyCopyright( "Copyright (C) Xceed Software Inc. 2009-2023" )] +[assembly: AssemblyCopyright( "Copyright (C) Xceed Software Inc. 2009-2024" )] [assembly: AssemblyCulture("")] diff --git a/Xceed.Words.NET/Xceed.Words.NET.csproj b/Xceed.Words.NET/Xceed.Words.NET.csproj index 8dafac4..58d9161 100644 --- a/Xceed.Words.NET/Xceed.Words.NET.csproj +++ b/Xceed.Words.NET/Xceed.Words.NET.csproj @@ -23,8 +23,6 @@ TRACE;DEBUG;NETFRAMEWORK prompt 4 - - pdbonly @@ -55,6 +53,7 @@ AssemblyVersionInfoCommon.cs + diff --git a/Xceed.Words.NET/Xceed.Words.NET5.csproj b/Xceed.Words.NET/Xceed.Words.NET5.csproj index 555b49a..b7e3f11 100644 --- a/Xceed.Words.NET/Xceed.Words.NET5.csproj +++ b/Xceed.Words.NET/Xceed.Words.NET5.csproj @@ -7,7 +7,7 @@ net5.0 Xceed.Words.NET - Xceed.Words.NET5 + Xceed.Words.NET false false @@ -30,9 +30,12 @@ + + + - Xceed.Document.NET5 + Xceed.Document.NET