TextFragment

TextFragment class

表示 Pdf 文本的片段。

public class TextFragment : BaseParagraph

构造函数

姓名 描述
TextFragment() 初始化TextFragment对象.
TextFragment(string) 创建TextFragment对象单TextSegment里面的对象。 指定段内的文本字符串。
TextFragment(TabStops) 初始化TextFragment具有预定义的对象TabStops位置.
TextFragment(string, TabStops) 创建TextFragment对象单TextSegment内部和预定义的对象TabStops位置.

特性

姓名 描述
BaselinePosition { get; set; } 获取文本的文本位置,用TextFragmentobject. Position 结构的 YIndent 表示文本片段的基线坐标。
EndNote { get; set; } 获取或设置段落尾注。(仅用于 pdf 生成)
FootNote { get; set; } 获取或设置段落脚注。(仅用于 pdf 生成)
Form { get; } 获取包含 TextFragment 的表单对象
override HorizontalAlignment { get; set; } 获取或设置文本片段的水平对齐方式。
override Hyperlink { set; } 设置片段超链接
IsFirstParagraphInColumn { get; set; } 获取或设置一个布尔值,指示此段落是否将在下一列。 默认为 false。(用于 pdf 生成)
IsInLineParagraph { get; set; } 获取或设置段落是内联的。 默认为 false。(用于 pdf 生成)
IsInNewPage { get; set; } 获取或设置一个 bool 值,强制此段落在新页面生成。 默认为 false。(用于 pdf 生成)
IsKeptWithNext { get; set; } 获取或设置一个布尔值,指示当前段落是否与下一个段落保持在同一页面中。 默认为 false。(用于 pdf 生成)
Margin { get; set; } 获取或设置段落的外边距(用于生成 pdf)
Page { get; } 获取包含 TextFragment 的页面
Position { get; set; } 获取或设置文本的文本位置,用TextFragment对象.
Rectangle { get; } 获取 TextFragment 的矩形
ReplaceOptions { get; } 获取文本替换选项。选项定义片段文本替换为更短/更长时的行为。
Segments { get; set; } 获取当前文本段TextFragment.
Text { get; set; } 获取或设置String文本对象TextFragment对象代表.
TextState { get; } 获取或设置文本的文本状态TextFragment对象代表.
override VerticalAlignment { get; set; } 获取或设置文本片段的垂直对齐方式。
WrapLinesCount { get; set; } 获取或设置此段落的换行数(仅用于 pdf 生成)
ZIndex { get; set; } 获取或设置一个 int 值,指示图形的 Z 顺序。 ZIndex 较大的图将放置在 ZIndex 较小的图上。 ZIndex 可以是负数。带有负数 ZIndex 的图形将被放置在页面中的文本后面。

方法

姓名 描述
override Clone() 克隆片段。
virtual CloneWithSegments() 克隆所有片段的片段。
IsolateTextSegments(int, int) 获取TextSegment(s) 代表指定部分TextFragment文本.

评论

简而言之,TextFragment对象包含列表TextSegmentobjects. 详细信息: pdf 文档中的文本Pdf由两个基本对象表示:TextFragmentTextSegment 它们之间的差异主要取决于上下文。 让我们考虑以下场景。用户搜索文本“hello world”以对其进行操作,更改其属性,查看等。 物理上pdf文本的表示非常复杂。 文本“hello world”可能由几个物理上独立的文本段组成。 Aspose.Pdf文本模型基本上建立了TextFragmentobject 在物理上提供单一逻辑操作集TextSegment代表用户查询的对象集。 在文本搜索场景中,TextFragment是逻辑“hello world”文本表示, 和TextSegment对象集合表示构造“hello world”文本对象的所有物理段。 所以,TextFragment接近逻辑文本表示。 和TextSegment接近物理文本表示。 显然每个TextSegment对象可能有它自己的字体、颜色、定位属性。 TextFragment提供简单的方法来更改文本的属性:设置字体、设置字体大小、设置字体颜色等。 同时TextSegment对象是可访问的,用户可以使用TextSegment对象独立。 请注意,更改 TextFragment 属性可能会更改内部Segments集合,因为 TextFragment 是一个聚合对象 并且它可能会重新排列内部段或将它们合并为单个段。 如果您的要求是离开Segments集合不变,请单独更改内部段。

Document doc = new Document(docFile);
TextFragmentAbsorber absorber = new TextFragmentAbsorber("hello world");
doc.Pages[1].Accept(absorber);

例子

该示例演示如何在第一个 PDF 文档页面上查找文本并替换文本及其字体。

// 打开文档
Document doc = new Document(@"D:\Tests\input.pdf");

// 查找将用于更改文档文本字体的字体
Aspose.Pdf.Txt.Font font = FontRepository.FindFont("Arial");

// 创建 TextFragmentAbsorber 对象以查找所有“hello world”文本出现
TextFragmentAbsorber absorber = new TextFragmentAbsorber("hello world");

// 接受第一页的吸收器
doc.Pages[1].Accept(absorber);

// 更改第一个文本出现的文本和字体
absorber.TextFragments[1].Text = "hi world";
absorber.TextFragments[1].TextState.Font = font;

// 保存文档
doc.Save(@"D:\Tests\output.pdf");  

也可以看看