当前位置:网站首页 / C#开发 / 正文

AY xceed docx DEMO 自己笔记6 - 块和保护,转为pdf,Parallel,Chart,Shape

时间:2019年09月25日 | 作者 : aaronyang | 分类 : C#开发 | 浏览: 1095次 | 评论 2

DEMO27 块

代码:

 using (var document = DocX.Create(demooutputroot + @"块.docx"))
            {
                document.InsertParagraph("Inserting sections").FontSize(15d).SpacingAfter(50d).Alignment = Alignment.center;
                document.DifferentOddAndEvenPages = true;
                //块1
                // Set Page parameters for section 1
                document.Sections[0].PageBorders = new Borders(new Border(BorderStyle.Tcbs_double, BorderSize.four, 5, Color.Blue));
                // Set footers for section 1.
                document.Sections[0].AddFooters();
                document.Sections[0].DifferentFirstPage = true;
                var footers = document.Sections[0].Footers;
                footers.First.InsertParagraph("This is the First page footer.");
                footers.Even.InsertParagraph("This is the Even page footer.");
                footers.Odd.InsertParagraph("This is the Odd page footer.");

                // Add paragraphs and page breaks in section 1.
                document.InsertParagraph("FIRST").InsertPageBreakAfterSelf();
                document.InsertParagraph("SECOND").InsertPageBreakAfterSelf();
                document.InsertParagraph("THIRD");

                // Add a section break as a page break to end section 1.
                // The new section properties will be based on last section properties.
                document.InsertSectionPageBreak();

                // Section 2
                // Set Page parameters for section 2
                document.Sections[1].PageBorders = new Borders(new Border(BorderStyle.Tcbs_none, BorderSize.one, 0, Color.Transparent));
                document.Sections[1].PageWidth = 200f;
                document.Sections[1].PageHeight = 300f;
                // Set footers for section 2.
                document.Sections[1].AddFooters();
                document.Sections[1].DifferentFirstPage = true;
                var footers2 = document.Sections[1].Footers;
                footers2.First.InsertParagraph("This is the First page footer of Section 2.");
                footers2.Odd.InsertParagraph("This is the Odd page footer of Section 2.");
                footers2.Even.InsertParagraph("This is the Even page footer of Section 2.");

                // Add paragraphs and page breaks in section 2.
                document.InsertParagraph("FOURTH").InsertPageBreakAfterSelf();
                document.InsertParagraph("FIFTH").InsertPageBreakAfterSelf();
                document.InsertParagraph("SIXTH");

                // Add a section break as a page break to end section 2.
                // The new section properties will be based on last section properties.
                document.InsertSectionPageBreak();

                // Section 3
                // Set Page parameters for section 3
                document.Sections[2].PageWidth = 595f;
                document.Sections[2].PageHeight = 841f;
                document.Sections[2].MarginTop = 300f;
                document.Sections[2].MarginFooter = 120f;
                // Set footers for section 3.
                document.Sections[2].AddFooters();
                document.Sections[2].DifferentFirstPage = true;
                var footers3 = document.Sections[2].Footers;
                footers3.First.InsertParagraph("This is the First page footer of Section 3.");
                footers3.Odd.InsertParagraph("This is the Odd page footer of Section 3.");
                footers3.Even.InsertParagraph("This is the Even page footer of Section 3.");

                // Add paragraphs and page breaks in section 3.
                document.InsertParagraph("SEVENTH").InsertPageBreakAfterSelf();
                document.InsertParagraph("EIGHTH").InsertPageBreakAfterSelf();
                document.InsertParagraph("NINETH");

                // Get the different sections.
                var sections = document.GetSections();

                // Add a paragraph to display the result of sections.
                var p = document.InsertParagraph("This document contains ").Append(sections.Count.ToString()).Append(" Sections.\n");
                p.SpacingBefore(40d);
                // Display the paragraphs count per section from this document.
                for (int i = 0; i < sections.Count; ++i)
                {
                    var section = sections[i];
                    var paragraphs = section.SectionParagraphs;
                    var nonEmptyParagraphs = paragraphs.Where(x => !string.IsNullOrEmpty(x.Text));
                    p.Append("Section ").Append((i + 1).ToString()).Append(" has ").Append(nonEmptyParagraphs.Count().ToString()).Append(" non-empty paragraphs.\n");
                }

                document.Save();


            }
        }

image.png

image.png

代码讲解

                document.Sections[0].PageBorders = new Borders(new Border(BorderStyle.Tcbs_double, BorderSize.four, 5, Color.Blue));
                // Set footers for section 1.
                document.Sections[0].AddFooters();
                document.Sections[0].DifferentFirstPage = true;
                var footers = document.Sections[0].Footers;
                footers.First.InsertParagraph("This is the First page footer.");
                footers.Even.InsertParagraph("This is the Even page footer.");
                footers.Odd.InsertParagraph("This is the Odd page footer.");

设置第一块,page的外边框蓝色,双边框,

然后是 页脚的知识。第一页页脚,然后奇数页 偶数页 页脚模板

    document.InsertParagraph("FIRST").InsertPageBreakAfterSelf();
                document.InsertParagraph("SECOND").InsertPageBreakAfterSelf();
                document.InsertParagraph("THIRD");
                 document.InsertSectionPageBreak();

插入一个段落FIRST,然后插入 分页符,

在第二页写SECOND,然后分页符

然后第三页内容写 THIRD,然后分块符(结束这个块)


同理设置 第二块 Page外观

 document.Sections[1].PageBorders = new Borders(new Border(BorderStyle.Tcbs_none, BorderSize.one, 0, Color.Transparent));
                document.Sections[1].PageWidth = 200f;
                document.Sections[1].PageHeight = 300f;
                // Set footers for section 2.
                document.Sections[1].AddFooters();
                document.Sections[1].DifferentFirstPage = true;
                var footers2 = document.Sections[1].Footers;
                footers2.First.InsertParagraph("This is the First page footer of Section 2.");
                footers2.Odd.InsertParagraph("This is the Odd page footer of Section 2.");
                footers2.Even.InsertParagraph("This is the Even page footer of Section 2.");

这都是前面的知识。



 AYUI www.ayjs.net AY 杨洋原创编写,请不要转载谢谢




设置第三块的Page

   document.Sections[2].PageWidth = 595f;
                document.Sections[2].PageHeight = 841f;
                document.Sections[2].MarginTop = 300f;
                document.Sections[2].MarginFooter = 120f;
                // Set footers for section 3.
                document.Sections[2].AddFooters();
                document.Sections[2].DifferentFirstPage = true;
                var footers3 = document.Sections[2].Footers;
                footers3.First.InsertParagraph("This is the First page footer of Section 3.");
                footers3.Odd.InsertParagraph("This is the Odd page footer of Section 3.");
                footers3.Even.InsertParagraph("This is the Even page footer of Section 3.");


其他知识

通过

 var sections = document.GetSections();

可以获得所有的Section

有了Section,可以拿到 SectionParagraphs

可以理解为 Section为 组内的 Page对象



DEMO28 设置页的方向/分块符

代码:

   public void Demo28()
        {
            using (var document = DocX.Create(demooutputroot + @"测试分块符.docx"))
            {
                document.InsertParagraph("Setting Pages Orientation").FontSize(15d).SpacingAfter(50d).Alignment = Alignment.center;

                // Section 1
                // Set Page Orientation to Landscape.
                document.Sections[0].PageLayout.Orientation = Orientation.Landscape;

                // Add paragraphs in section 1.
                document.InsertParagraph("This is the first page in Landscape format.");

                // Add a section break as a page break to end section 1.
                // The new section properties will be based on last section properties.
                document.InsertSectionPageBreak();

                // Section 2
                // Set Page Orientation to Portrait.
                document.Sections[1].PageLayout.Orientation = Orientation.Portrait;

                // Add paragraphs in section 2.
                document.InsertParagraph("This is the second page in Portrait format.");

                // Add a section break as a page break to end section 2.
                // The new section properties will be based on last section properties.
                document.InsertSectionPageBreak();

                // Section 3
                // Set Page Orientation to Landscape.
                document.Sections[2].PageLayout.Orientation = Orientation.Landscape;

                // Add paragraphs in section 3.
                document.InsertParagraph("This is the third page in Landscape format.");

                document.Save();
            }
        }

image.png

代码讲解:

 document.Sections[0].PageLayout.Orientation = Orientation.Landscape;

设置页的方向,水平还是垂直,理解为ipad横着拿,还是竖着拿。


document.InsertSectionPageBreak();

插入一个分块符,等于标记上一个块的结束。



下面代码没啥讲的。



DEMO29 给文档添加密码

设置只读

 document.AddProtection( EditRestrictions.readOnly );

添加带密码的

  document.AddPasswordProtection( EditRestrictions.readOnly, "ayjs" );


添加完以后,打开文件,就不能编辑了

image.png



DEMO30 转换为PDF

  DocX.ConvertToPdf(document, demooutputroot + @"测试分块符.pdf");

image.png

image.png



DEMO31 Parallel

  public static void DoParallelActions()
    {
      Console.WriteLine( "\tDoParallelActions()" );

      var inputDir = new DirectoryInfo( ParallelSample.ParallelSampleResourcesDirectory );
      var inputFiles = inputDir.GetFiles( "*.docx" );

      // Loop through each document and do actions on them.
      Parallel.ForEach( inputFiles, f => Action( f ) );
    }

    private static void Action( FileInfo file )
    {
      // Load the document.
      using( var document = DocX.Load( file.FullName ) )
      {
        // Replace texts in this document.
        document.ReplaceText( "Apples", "Potatoes" );
        document.ReplaceText( "An Apple", "A Potato" );

        // create the new image
        var newImage = document.AddImage( ParallelSample.ParallelSampleResourcesDirectory + @"potato.jpg" );

        // Look in each paragraph and remove its first image to replace it with the new one.
        foreach( var p in document.Paragraphs )
        {
          var oldPicture = p.Pictures.FirstOrDefault();
          if( oldPicture != null )
          {
            oldPicture.Remove();
            p.AppendPicture( newImage.CreatePicture( 112, 112 ) );
          }
        }

        document.SaveAs( ParallelSample.ParallelSampleOutputDirectory + "Output" + file.Name );
        Console.WriteLine( "\tCreated: Output" + file.Name + ".docx\n" );
      }
    }

Docx支持Parallel 多个执行





AY看官方DEMO 还有Chart 和 Shape两个DEMO

这两个我暂时没有用,以后需要再学习把

image.png

我直接粘贴

Chart

/***************************************************************************************
Xceed Words for .NET – Xceed.Words.NET.Examples – Chart Sample Application
Copyright (c) 2009-2019 - Xceed Software Inc.
 
This application demonstrates how to create a chart when using the API 
from the Xceed Words for .NET.
 
This file is part of Xceed Words for .NET. The source code in this file 
is only intended as a supplement to the documentation, and is provided 
"as is", without warranty of any kind, either expressed or implied.
*************************************************************************************/
using System.Collections.Generic;

namespace Xceed.Words.NET.Examples
{
  internal class ChartData
  {
    public string Category
    {
      get;
      set;
    }
    public double Expenses
    {
      get;
      set;
    }

    public static List<ChartData> CreateCanadaExpenses()
    {
      var canada = new List<ChartData>();
      canada.Add( new ChartData() { Category = "Food", Expenses = 100 } );
      canada.Add( new ChartData() { Category = "Housing", Expenses = 120 } );
      canada.Add( new ChartData() { Category = "Transportation", Expenses = 140 } );
      canada.Add( new ChartData() { Category = "Health Care", Expenses = 150 } );
      return canada;
    }

    public static List<ChartData> CreateUSAExpenses()
    {
      var usa = new List<ChartData>();
      usa.Add( new ChartData() { Category = "Food", Expenses = 200 } );
      usa.Add( new ChartData() { Category = "Housing", Expenses = 150 } );
      usa.Add( new ChartData() { Category = "Transportation", Expenses = 110 } );
      usa.Add( new ChartData() { Category = "Health Care", Expenses = 100 } );
      return usa;
    }

    public static List<ChartData> CreateBrazilExpenses()
    {
      var brazil = new List<ChartData>();
      brazil.Add( new ChartData() { Category = "Food", Expenses = 125 } );
      brazil.Add( new ChartData() { Category = "Housing", Expenses = 80 } );
      brazil.Add( new ChartData() { Category = "Transportation", Expenses = 110 } );
      brazil.Add( new ChartData() { Category = "Health Care", Expenses = 60 } );
      return brazil;
    }
  }
}
/***************************************************************************************
Xceed Words for .NET – Xceed.Words.NET.Examples – Chart Sample Application
Copyright (c) 2009-2019 - Xceed Software Inc.
 
This application demonstrates how to create a chart when using the API 
from the Xceed Words for .NET.
 
This file is part of Xceed Words for .NET. The source code in this file 
is only intended as a supplement to the documentation, and is provided 
"as is", without warranty of any kind, either expressed or implied.
*************************************************************************************/
using System;
using System.Collections.Generic;
using System.Drawing;
using System.IO;
using Xceed.Document.NET;

namespace Xceed.Words.NET.Examples
{
  public class ChartSample
  {
    #region Private Members
      
    private const string ChartSampleOutputDirectory = Program.SampleDirectory + @"Chart\Output\";
    private const string ChartSampleResourceDirectory = Program.SampleDirectory + @"Chart\Resources\";

    #endregion

    #region Constructors

    static ChartSample()
    {
      if( !Directory.Exists( ChartSample.ChartSampleOutputDirectory ) )
      {
        Directory.CreateDirectory( ChartSample.ChartSampleOutputDirectory );
      }
    }

    #endregion

    #region Public Methods

    /// <summary>
    /// Add a Bar chart to a document.
    /// </summary>
    public static void BarChart()
    {
      Console.WriteLine( "\tBarChart()" );

      // Creates a document
      using( var document = DocX.Create( ChartSample.ChartSampleOutputDirectory + @"BarChart.docx" ) )
      {
        // Add a title
        document.InsertParagraph( "Bar Chart" ).FontSize( 15d ).SpacingAfter( 50d ).Alignment = Alignment.center;

        // Create a bar chart.
        var c = new BarChart();
        c.AddLegend( ChartLegendPosition.Left, false );
        c.BarDirection = BarDirection.Bar;
        c.BarGrouping = BarGrouping.Standard;
        c.GapWidth = 200;

        // Create the data.
        var canada = ChartData.CreateCanadaExpenses();
        var usa = ChartData.CreateUSAExpenses();
        var brazil = ChartData.CreateBrazilExpenses();

        // Create and add series
        var s1 = new Series( "Brazil" );
        s1.Color = Color.GreenYellow;
        s1.Bind( brazil, "Category", "Expenses" );
        c.AddSeries( s1 );

        var s2 = new Series( "USA" );
        s2.Color = Color.LightBlue;
        s2.Bind( usa, "Category", "Expenses" );
        c.AddSeries( s2 );

        var s3 = new Series( "Canada" );
        s3.Color = Color.Gray;
        s3.Bind( canada, "Category", "Expenses" );
        c.AddSeries( s3 );

        // Insert the chart into the document.
        document.InsertParagraph( "Expenses(M$) for selected categories per country" ).FontSize( 15 ).SpacingAfter( 10d );
        document.InsertChart( c, 350, 550 );

        document.Save();
        Console.WriteLine( "\tCreated: BarChart.docx\n" );
      }
    }

    /// <summary>
    /// Add a Line chart to a document.
    /// </summary>
    public static void LineChart()
    {
      Console.WriteLine( "\tLineChartt()" );

      // Creates a document
      using( var document = DocX.Create( ChartSample.ChartSampleOutputDirectory + @"LineChart.docx" ) )
      {
        // Add a title
        document.InsertParagraph( "Line Chart" ).FontSize( 15d ).SpacingAfter( 50d ).Alignment = Alignment.center;

        // Create a line chart.
        var c = new LineChart();
        c.AddLegend( ChartLegendPosition.Left, false );

        // Create the data.
        var canada = ChartData.CreateCanadaExpenses();
        var usa = ChartData.CreateUSAExpenses();
        var brazil = ChartData.CreateBrazilExpenses();

        // Create and add series
        var s1 = new Series( "Brazil" );
        s1.Bind( brazil, "Category", "Expenses" );
        c.AddSeries( s1 );

        var s2 = new Series( "USA" );
        s2.Bind( usa, "Category", "Expenses" );
        c.AddSeries( s2 );

        var s3 = new Series( "Canada" );
        s3.Bind( canada, "Category", "Expenses" );
        c.AddSeries( s3 );

        // Insert chart into document
        document.InsertParagraph( "Expenses(M$) for selected categories per country" ).FontSize( 15 ).SpacingAfter( 10d );
        document.InsertChart( c );

        document.Save();
        Console.WriteLine( "\tCreated: LineChart.docx\n" );
      }
    }

    /// <summary>
    /// Add a Pie chart to a document.
    /// </summary>
    public static void PieChart()
    {
      Console.WriteLine( "\tPieChart()" );

      // Creates a document
      using( var document = DocX.Create( ChartSample.ChartSampleOutputDirectory + @"PieChart.docx" ) )
      {
        // Add a title
        document.InsertParagraph( "Pie Chart" ).FontSize( 15d ).SpacingAfter( 50d ).Alignment = Alignment.center;

        // Create a pie chart.
        var c = new PieChart();
        c.AddLegend( ChartLegendPosition.Left, false );

        // Create the data.
        var brazil = ChartData.CreateBrazilExpenses();

        // Create and add series
        var s1 = new Series( "Canada" );
        s1.Bind( brazil, "Category", "Expenses" );
        c.AddSeries( s1 );

        // Insert chart into document
        document.InsertParagraph( "Expenses(M$) for selected categories in Canada" ).FontSize( 15 ).SpacingAfter( 10d );
        document.InsertChart( c );

        document.Save();
        Console.WriteLine( "\tCreated: PieChart.docx\n" );
      }
    }

    /// <summary>
    /// Add a 3D bar chart to a document.
    /// </summary>
    /// 
    public static void Chart3D()
    {
      Console.WriteLine( "\tChart3D()" );

      // Creates a document
      using( var document = DocX.Create( ChartSample.ChartSampleOutputDirectory + @"3DChart.docx" ) )
      {
        // Add a title
        document.InsertParagraph( "3D Chart" ).FontSize( 15d ).SpacingAfter( 50d ).Alignment = Alignment.center;

        // Create a 3D Bar chart.
        var c = new BarChart();
        c.View3D = true;

        // Create the data.
        var brazil = ChartData.CreateBrazilExpenses();

        // Create and add series
        var s1 = new Series( "Brazil" );
        s1.Color = Color.GreenYellow;
        s1.Bind( brazil, "Category", "Expenses" );
        c.AddSeries( s1 );

        // Insert chart into document
        document.InsertParagraph( "Expenses(M$) for selected categories in Brazil" ).FontSize( 15 ).SpacingAfter( 10d );
        document.InsertChart( c );

        document.Save();
        Console.WriteLine( "\tCreated: 3DChart.docx\n" );
      }
    }

    public static void ModifyChartData()
    {
#if !OPEN_SOURCE
      Console.WriteLine( "\tModifyChartData()" );

      // Loads a document.
       using( var document = DocX.Load( ChartSample.ChartSampleResourceDirectory + @"Report.docx" ) )
      {
        foreach( var p in document.Paragraphs )
        {
          // Gets the paragraph's charts.
          var charts = p.Charts;
          if( charts.Count > 0 )
          {
            // Gets the first chart's first serie's values.
            var numbers = charts[ 0 ].Series[ 0 ].Values;
            // Modify the third value from 2 to 6.
            numbers[ 2 ] = "6";
            // Add a new value.
            numbers.Add( "3" );
            // Update the first chart's first serie's values with the new one.
            charts[ 0 ].Series[ 0 ].Values = numbers;

            // Gets the first chart's first serie's categories.
            var categories = charts[ 0 ].Series[ 0 ].Categories;
            // Modify the second category from Canada to Russia.
            categories[ 1 ] = "Russia";
            // Add a new category.
            categories.Add( "Italia" );
            // Update the first chart's first serie's categories with the new one.
            charts[ 0 ].Series[ 0 ].Categories = categories;

            // Modify first chart's first serie's color from Blue to Gold.
            charts[ 0 ].Series[ 0 ].Color = Color.Gold;

            // Add a new Series
            var s1 = new Series( "Airplanes" );
            s1.Color = Color.Red;
            s1.Categories = categories;
            s1.Values = new List<double>() { 2, 5, 2, 3, 4 };
            charts[ 0 ].AddSeries( s1 );

            // Remove the legend.
            charts[ 0 ].RemoveLegend();

            // Make the chart a 3D chart.
            charts[ 0 ].View3D = true;

            // Save the changes in the first chart.
            charts[ 0 ].Save();
          }
        } 

        document.SaveAs( ChartSample.ChartSampleOutputDirectory + @"ModifyChartData.docx" );
        Console.WriteLine( "\tCreated: ModifyChartData.docx\n" );
      }
#else
      // This option is available when you buy Xceed Words for .NET from https://xceed.com/xceed-words-for-net/.
#endif
    }
    #endregion
  }
}




SHAPE

/***************************************************************************************
Xceed Words for .NET – Xceed.Words.NET.Examples – Section Sample Application
Copyright (c) 2009-2019 - Xceed Software Inc.
 
This application demonstrates how to insert sections when using the API 
from the Xceed Words for .NET.
 
This file is part of Xceed Words for .NET. The source code in this file 
is only intended as a supplement to the documentation, and is provided 
"as is", without warranty of any kind, either expressed or implied.
*************************************************************************************/

using System;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.IO;
using Xceed.Document.NET;
using System.Linq;

namespace Xceed.Words.NET.Examples
{
  public class ShapeSample
  {
    #region Private Members

    private const string ShapeSampleOutputDirectory = Program.SampleDirectory + @"Shape\Output\";

    #endregion

    #region Constructors

    static ShapeSample()
    {
      if( !Directory.Exists( ShapeSample.ShapeSampleOutputDirectory ) )
      {
        Directory.CreateDirectory( ShapeSample.ShapeSampleOutputDirectory );
      }
    }

    #endregion

    #region Public Methods

    /// <summary>
    /// Create a document and insert shapes and paragraphs into it.
    /// </summary>
    public static void AddShape()
    {
#if !OPEN_SOURCE
      Console.WriteLine( "\tAddShape()" );

      // Create a document.
      using( var document = DocX.Create( ShapeSample.ShapeSampleOutputDirectory + @"AddShape.docx" ) )
      {
        // Add a title
        document.InsertParagraph( "Inserting shapes" ).FontSize( 15d ).SpacingAfter( 50d ).Alignment = Alignment.center;

        // Adding first shape.
        var shape = document.AddShape( 50, 50 );

        // Create a paragraph and insert the shape at its 16th character.
        var p = document.InsertParagraph( "Here is a simple default rectangle positioned on the 16th character of this paragraph." );
        p.InsertShape( shape, 16 );
        p.SpacingAfter( 30 );

        // adding second shape.
        var shape2 = document.AddShape( 100, 0 );
        shape2.FillColor = Color.Orange;
        shape2.Height = 175;
        shape2.OutlineColor = Color.Black;
        shape2.OutlineWidth = 4f;
        shape2.OutlineDash = DashStyle.Dot;

        // Create a paragraph and append the shape to it.
        var p2 = document.InsertParagraph( "Here is another rectangle appended to this paragraph: " );
        p2.AppendShape( shape2 );

        // Modify OutlineColor from shape in second paragraph.
        p2.Shapes.First().OutlineColor = Color.Red;

        document.Save();
        Console.WriteLine( "\tCreated: AddShape.docx\n" );
      }
#else
      // This option is available when you buy Xceed Words for .NET from https://xceed.com/xceed-words-for-net/.
#endif
    }

    /// <summary>
    /// Create a document and insert wrapping shapes and paragraphs into it.
    /// </summary>
    public static void AddShapeWithTextWrapping()
    {
#if !OPEN_SOURCE
      Console.WriteLine( "\tAddShapeWithTextWrapping()" );

      // Create a document.
      using( var document = DocX.Create( ShapeSample.ShapeSampleOutputDirectory + @"AddShapeWithTextWrapping.docx" ) )
      {
        // Add a title
        document.InsertParagraph( "Add shapes with Text Wrapping" ).FontSize( 15d ).SpacingAfter( 50d ).Alignment = Alignment.center;

        // Add a shape and set its wrapping as Square.
        var shape = document.AddShape( 45, 45, Color.LightGray );
        shape.WrappingStyle = PictureWrappingStyle.WrapSquare;
        shape.WrapText = PictureWrapText.bothSides;
        // Set horizontal alignment with Alignment centered on the page.
        shape.HorizontalAlignment = WrappingHorizontalAlignment.CenteredRelativeToPage;
        // Set vertical alignment with an offset from top of paragraph.
        shape.VerticalOffsetAlignmentFrom = WrappingVerticalOffsetAlignmentFrom.Paragraph;
        shape.VerticalOffset = 20d;
        // Set a buffer on left and right of shape where no text will be drawn.
        shape.DistanceFromTextLeft = 5d;
        shape.DistanceFromTextRight = 5d;

        // Create a paragraph and append the shape to it.
        var p = document.InsertParagraph( "With its easy to use API, Xceed Words for .NET lets your application create new Microsoft Word .docx or PDF documents, or modify existing .docx documents. It gives you complete control over all content in a Word document, and lets you add or remove all commonly used element types, such as paragraphs, bulleted or numbered lists, images, tables, charts, headers and footers, sections, bookmarks, and more. Create PDF documents using the same API for creating Word documents." );
        p.Alignment = Alignment.both;
        p.AppendShape( shape );
        p.SpacingAfter( 50 );

        // Add another shape and set its wrapping as Top Bottom.
        var shape2 = document.AddShape( 250, 25, Color.DarkBlue, Color.LightBlue, 3f );
        shape2.WrappingStyle = PictureWrappingStyle.WrapTopAndBottom;
        // Set horizontal alignment with Alignement centered on the page.
        shape2.HorizontalAlignment = WrappingHorizontalAlignment.CenteredRelativeToPage;
        // Set vertical alignment with an offset from top of page.
        shape2.VerticalOffsetAlignmentFrom = WrappingVerticalOffsetAlignmentFrom.Page;
        shape2.VerticalOffset = 320d;

        // Create a paragraph and append the shape to it.
        var p2 = document.InsertParagraph( "Xceed Words for .NET lets you create company reports that you first design with the familiar and rich editing capabilities of Microsoft Word instead of with a reporting tool’s custom editor. Use the designed document as a created template that you will programmatically customize before sending each report out.  You can also use Xceed Words for .NET to programmatically create invoices, add data to documents, perform mail merge functionality, and more. Based on our popular CodePlex project, known as DocX, it has benefited from 7 years of widespread use and has been downloaded over 250,000 times there and on NuGet. The large user base has resulted in abundant comments, requests and bug reports which are used to improve the library. You also get complete control over the document’s properties, including margins, page size, line spacing, page numbering, text direction and alignment, indentation, and more. You can also quickly and easily set or modify any text’s formatting, fonts and font sizes, colors, boldness, underline, italics, strikethrough, highlighting, and more. Search and replace text, add or remove password protection, join documents, copy documents, or apply templates – everything your application may need to do. It even supports modifying many Word files in parallel for greater speed." );
        p2.FontSize( 8d );
        p2.Alignment = Alignment.both;
        p2.AppendShape( shape2 );
        p2.SpacingAfter( 30 );

        document.Save();
        Console.WriteLine( "\tCreated: AddShapeWithTextWrapping.docx\n" );
      }
#else
      // This option is available when you buy Xceed Words for .NET from https://xceed.com/xceed-words-for-net/.
#endif
    }

    /// <summary>
    /// Create a document and insert a TextBox and paragraphs into it.
    /// </summary>
    public static void AddTextBox()
    {
#if !OPEN_SOURCE
      Console.WriteLine( "\tAddTextBox()" );

      // Create a document.
      using( var document = DocX.Create( ShapeSample.ShapeSampleOutputDirectory + @"AddTextBox.docx" ) )
      {
        // Add a title
        document.InsertParagraph( "Add TextBox" ).FontSize( 15d ).SpacingAfter( 50d ).Alignment = Alignment.center;

        // Create a TextBox with text formatting.
        var textBox = document.AddTextBox( 100, 100, "My TextBox", new Formatting() { FontColor = Color.Green } );
        textBox.TextVerticalAlignment = VerticalAlignment.Bottom;
        textBox.TextMarginBottom = 5d;
        textBox.TextMarginTop = 5d;
        textBox.TextMarginLeft = 5d;
        textBox.TextMarginRight = 5d;

        // Create a paragraph and insert the textBox at its 16th character.
        var p = document.InsertParagraph( "Here is a simple TextBox positioned on the 16th character of this paragraph." );
        p.InsertShape( textBox, 16 );
        p.SpacingAfter( 30 );

        // Add a bold paragraph to the TextBox.
        document.TextBoxes[ 0 ].InsertParagraph( "My New Paragraph" ).Bold();

        document.Save();
        Console.WriteLine( "\tCreated: AddTextBox.docx\n" );
      }
#else
      // This option is available when you buy Xceed Words for .NET from https://xceed.com/xceed-words-for-net/.
#endif
    }

    /// <summary>
    /// Create a document and insert wrapping textboxes and paragraphs into it.
    /// </summary>
    public static void AddTextBoxWithTextWrapping()
    {
#if !OPEN_SOURCE
      Console.WriteLine( "\tAddTextBoxWithTextWrapping()" );

      // Create a document.
      using( var document = DocX.Create( ShapeSample.ShapeSampleOutputDirectory + @"AddTextBoxWithTextWrapping.docx" ) )
      {
        // Add a title
        document.InsertParagraph( "Add TextBoxes with Text Wrapping" ).FontSize( 15d ).SpacingAfter( 50d ).Alignment = Alignment.center;

        // Add a textBox and set its wrapping as Square.
        var textBox = document.AddTextBox( 45, 45, "My TextBox", new Formatting() { FontColor = Color.Yellow }, Color.Blue, Color.LightBlue );
        textBox.WrappingStyle = PictureWrappingStyle.WrapSquare;
        textBox.WrapText = PictureWrapText.bothSides;
        // Set horizontal alignment with alignment relative to the right of the margin.
        textBox.HorizontalAlignment = WrappingHorizontalAlignment.RightRelativeToMargin;
        // Set vertical alignment with an offset from top of paragraph.
        textBox.VerticalOffsetAlignmentFrom = WrappingVerticalOffsetAlignmentFrom.Paragraph;
        textBox.VerticalOffset = 20d;
        // Set a buffer on left and right of textBox where no text will be drawn.
        textBox.DistanceFromTextLeft = 5d;
        textBox.DistanceFromTextRight = 5d;
        // Set the text properties
        textBox.TextVerticalAlignment = VerticalAlignment.Bottom;
        textBox.TextMarginBottom = 5d;
        textBox.TextMarginTop = 5d;
        textBox.TextMarginLeft = 5d;
        textBox.TextMarginRight = 5d;
        textBox.IsTextWrap = false;

        // Create a paragraph and append the textbox to it.
        var p = document.InsertParagraph( "With its easy to use API, Xceed Words for .NET lets your application create new Microsoft Word .docx or PDF documents, or modify existing .docx documents. It gives you complete control over all content in a Word document, and lets you add or remove all commonly used element types, such as paragraphs, bulleted or numbered lists, images, tables, charts, headers and footers, sections, bookmarks, and more. Create PDF documents using the same API for creating Word documents." );
        p.Alignment = Alignment.both;
        p.AppendShape( textBox );
        p.SpacingAfter( 50 );

        // Add a shape with text and set its wrapping as Top Bottom.
        var shape = document.AddShape( 200, 30, Color.Orange, Color.Brown, 1.5f );
        shape.WrappingStyle = PictureWrappingStyle.WrapTopAndBottom;
        // Set horizontal alignment with Alignment centered on the page.
        shape.HorizontalAlignment = WrappingHorizontalAlignment.CenteredRelativeToPage;
        // Set vertical alignment with an offset from top of page.
        shape.VerticalOffsetAlignmentFrom = WrappingVerticalOffsetAlignmentFrom.Page;
        shape.VerticalOffset = 320d;
        // Add text in shape
        shape.InsertParagraph( "Text in shape" ).Color( Color.Red ).Alignment = Alignment.center;

        // Create a paragraph and append the shape to it.
        var p2 = document.InsertParagraph( "Xceed Words for .NET lets you create company reports that you first design with the familiar and rich editing capabilities of Microsoft Word instead of with a reporting tool’s custom editor. Use the designed document as a created template that you will programmatically customize before sending each report out.  You can also use Xceed Words for .NET to programmatically create invoices, add data to documents, perform mail merge functionality, and more. Based on our popular CodePlex project, known as DocX, it has benefited from 7 years of widespread use and has been downloaded over 250,000 times there and on NuGet. The large user base has resulted in abundant comments, requests and bug reports which are used to improve the library. You also get complete control over the document’s properties, including margins, page size, line spacing, page numbering, text direction and alignment, indentation, and more. You can also quickly and easily set or modify any text’s formatting, fonts and font sizes, colors, boldness, underline, italics, strikethrough, highlighting, and more. Search and replace text, add or remove password protection, join documents, copy documents, or apply templates – everything your application may need to do. It even supports modifying many Word files in parallel for greater speed." );
        p2.FontSize( 8d );
        p2.Alignment = Alignment.both;
        p2.AppendShape( shape );
        p2.SpacingAfter( 30 );

        document.Save();
        Console.WriteLine( "\tCreated: AddTextBoxWithTextWrapping.docx\n" );
      }
#else
      // This option is available when you buy Xceed Words for .NET from https://xceed.com/xceed-words-for-net/.
#endif
    }

    #endregion
  }
}


 AYUI       www.ayjs.net      AY         杨洋原创编写,请不要转载谢谢


www.ayjs.net 六安杨洋(AY)拓展


推荐您阅读更多有关于“word导出,”的文章

猜你喜欢

已有2位网友发表了看法:

1#访客  2020-10-10 13:38:46 回复该评论

能得到总页数吗

2#访客  2020-10-10 13:38:01 回复该评论

用这个开源库能得到总页数吗

发表评论

必填

选填

选填

必填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

  查看权限

合肥科大智能常年招聘.NET,Java,Web前端,有想找想换工作的私聊我AY唯一QQ:875556003和AY交流

抖音号:wpfui,可以看到我的很多作品效果

AYUI8社区版Github地址:前往获取

作者:杨洋(AaronYang简称AY,安徽六安人)目前是个人,还没公司AY唯一QQ:875556003和AY交流

高中学历,2015年1月17日开始,兴趣学习研究WPF,目前工作繁忙,不接任何活

声明:AYUI7个人与商用免费,源码可购买。部分DEMO不免费.AY主要靠卖技术服务挣钱

不是从我处购买的ayui7源码,我不提供任何技术服务,如果你举报从哪里买的,我可以帮你转正为我的客户,并送demo

查看捐赠

AYUI7.X MVC教程 更新如下:

第一课 第二课 程序加密教程

vs2015 企业版密钥HM6NR-QXX7C-DFW2Y-8B82K-WTYJV

vs2017 企业版密钥NJVYC-BMHX2-G77MM-4XJMR-6Q8QF

标签列表