.NET版文档管理利器Aspose.Words 7月更新已至,看看有没有解决你的疑难!

七月已至,.NET版Aspose.Words也为大家带来了7月的新版本!Aspose.Words for .Net是一种高级Word文档处理API,用于执行各种文档管理和操作任务。API支持生成,修改,转换,呈现和打印文档,而无需在跨平台应用程序中直接使用Microsoft Word。点击下载

主要特点如下:

  • 添加了新节点以处理多节结构化文档标签。
  • 添加了一个新的公共属性MailMerge.RetainFirstSectionStart。
  • RevisionOptions类扩展了新的属性。
  • 改进了SmartArt冷渲染的性能。

.NET版文档管理利器Aspose.Words 7月更新已至,看看有没有解决你的疑难!

具体更新内容

key 概述 类别
WORDSNET-9500 国际字符(泰米尔语)不能正确地从MHTML转换为PDF 新功能
WORDSNET-7150 SDT控件在打开/保存过程中丢失 新功能
WORDSNET-9501 国际字符(泰卢固语)未正确从MHTML转换为PDF 新功能
WORDSNET-5713 包含分节符的StructuredDocumentTag在加载时丢失 新功能
WORDSNET-20589 PDF到DOCX-脚注 新功能
WORDSNET-20480 提供属性以在邮件合并期间启用“严格MS Word行为合规性” 新功能
WORDSNET-9908 通过分节符保留RichText内容控件 新功能
WORDSNET-6773 设置AllowBreakAcrossPages = False时截断大于页面大小的行内容 增强功能
WORDSNET-20415 通过轨道更改将DOCX转换为PDF时保持修订条 增强功能
WORDSNET-18609 一行移至PDF的上一页 增强功能

公共API更改

①添加了新的公共属性MailMerge.RetainFirstSectionStart

/// <summary>

/// Gets or sets a value indicating whether the <see cref="PageSetup.SectionStart"/> of the first document section and its copies for subsequent data source rows

/// are retained during mail merge or updated according to MS Word behaviour.

/// </summary>

/// <remarks>

/// The default value is <b>true</b>.

/// </remarks>

public bool RetainFirstSectionStart { get ; set ; }

用例:

Document document = new Document(path);
document.MailMerge.RetainFirstSectionStart = false;
document.MailMerge.Execute(dataSource);

②在RevisionOptions中添加了公共属性MeasurementUnit

 

/// <summary>

/// Allows to specify the measurement unit for revision comments.

/// Default value for this property is <see cref="MeasurementUnits.Centimeters"/>

/// </summary>

public MeasurementUnits MeasurementUnit

另外,添加了新的公共枚举:

/// <summary>

/// Specifies a the unit of measurement.

/// </summary>

public enum MeasurementUnits

{

     /// <summary>

         /// Inches.

         /// </summary>

         Inches = 0,

   

         /// <summary>

         /// Centimeters.

         /// </summary>

         Centimeters = 1,

   

         /// <summary>

         /// Millimeters.

         /// </summary>

         Millimeters = 2,

   

         /// <summary>

         /// Points.

         /// </summary>

         Points = 3,

   

         /// <summary>

         /// Picas (commonly used in traditional typewriter font spacing).

         /// </summary>

     Picas = 4

}

 

用例:

Document doc = new Document(myDir +"Input.docx");
  
doc.LayoutOptions.RevisionOptions.MeasurementUnit = MeasurementUnits.Inches;
doc.LayoutOptions.RevisionOptions.ShowInBalloons = ShowInBalloons.FormatAndDelete;
doc.LayoutOptions.ShowComments = true;
  
doc.Save(myDir +"Output.pdf");

③在RevisionOptions中添加了公共属性RevisionBarsPosition

/// <summary>

/// Gets or sets rendering position of revision bars.

/// Default value is <see cref="HorizontalAlignment.Outside"/>.

/// </summary>

/// <remarks>Values of <see cref="HorizontalAlignment.Center"/> and <see cref="HorizontalAlignment.Inside"/>

/// are not allowed and will cause <see cref="ArgumentOutOfRangeException"/>.</remarks>

用例:

Document doc = new Document(myDir +"Input.docx");
  
//Renders revision bars on the right side of a page.
doc.LayoutOptions.RevisionOptions.RevisionBarsPosition = HorizontalAlignment.Right;
doc.Save(myDir +"Output.pdf");

④添加了两个新节点来处理多节的结构化文档标签

public class StructuredDocumentTagRangeStart : Node

{

     /// <summary>

     /// Gets the type of this node.

     /// </summary>

     public NodeType NodeType { get ; }

   

     /// <summary>

     /// Gets the level at which this <b>SDT range start</b> occurs in the document tree.

     /// </summary>

     public MarkupLevel Level { get ; }

   

     /// <summary>

     /// Gets type of this <b>Structured document tag</b>.

     /// </summary>

     public SdtType SdtType { get ; }

   

     /// <summary>

     /// <para>Specifies a unique read-only persistent numerical Id for this <b>SDT</b>.</para>

     /// </summary>

     public int Id { get ; }

   

     /// <summary>

     /// When set to true, this property will prohibit a user from deleting this <b>SDT</b>.

     /// </summary>

     public bool LockContentControl { get ; }

   

     /// <summary>

     /// When set to true, this property will prohibit a user from editing the contents of this <b>SDT</b>.

     /// </summary>

     public bool LockContents { get ; }

   

     /// <summary>

     /// Specifies whether the content of this <b>SDT</b> shall be interpreted to contain placeholder text

     /// (as opposed to regular text contents within the SDT).

     /// </summary>

     public bool IsShowingPlaceholderText { get ; }

   

     /// <summary>

     /// Specifies a tag associated with the current SDT node.

     /// </summary>

     public string Tag { get ; }

   

     /// <summary>

     /// Specifies the friendly name associated with this <b>SDT</b>.

     /// </summary>

     public string Title { get ; }

   

     /// <summary>

     /// Specifies end of range if the StructuredDocumentTag is a ranged structured document tag.

     /// </summary>

     public StructuredDocumentTagRangeEnd RangeEnd { get ; }

}

   

public class StructuredDocumentTagRangeEnd : Node

{

     /// <summary>

     /// Gets the type of this node.

     /// </summary>

     public NodeType NodeType { get ; }

   

     /// <summary>

     /// Specifies a unique read-only persistent numerical Id for this structured document tag node.

     /// Corresponding range start node has the same Id.

     /// </summary>

     public int Id { get ; }

}

用例:

Document doc = new Document("document containing multi-section SDT");
Listtags =
                doc.GetChildNodes(NodeType.StructuredDocumentTagRangeStart, true).ToList();
  
foreach(StructuredDocumentTagRangeStart tag in tags)
    Console.WriteLine(tag.Title);