块
的块类旨在以类流的方式排列添加到其中的元素。它可用于测量,绘图,分割FixedContentElements.
添加和修改内容
最常见的用法块就是画出流畅的内容。类似于FixedContentEditor,一个块可以包含图像、图形或文本。同一个Block实例只能被绘制一次。
插入文本
插入TextFragments是用其中一个重载实现的Insert ()方法。示例1通过向方法传递字符串来显示简单的插入。
例1:插入文本
Block Block = new Block();block.InsertText(“文本”);
示例2演示如何插入具有特定字体族的文本。
例2:插入Arial字体的文本
块。InsertText(new FontFamily("Arial"), "Text");
例3:插入样式文本
块。InsertText(新的FontFamily(“Arial”),FontStyles。斜体,FontWeights。大胆,“文本”);
当“\r”和“\n”字符被插入到PDF文档中时,它们没有“转到下一行”的通常含义,并且您不能简单地插入包含这些字符的文本以生成多行文本。相反,应该插入换行符。
插入换行符
插入换行符会导致下一个元素从新行开始。操作是通过InsertLineBreak ()方法,如示例4.
例4:断行
block.InsertLineBreak ();
插入图片
块提供以下插入图像的方法:
- block.InsertImage (imageSource);
- block.InsertImage(流);
- 块。InsertImage (imageSource、大小);
- 块。InsertImage(流、大小);
- 块。InsertImage(imageSource, width, height);
- 块。InsertImage(流,宽度,高度);
有关图片库上下文中图像的信息可在ImageSource而且图像文章。
插入几何图形
几何图形允许您在文档中描述2D形状。可以使用以下方法插入不同的几何图形。
- 块。InsertCircle(中心、半径);
- 块。InsertEllipse(中心,radiusX, radiusY);
- 块。InsertLine(point1卷帘窗);
- 块。InsertPath(几何);
- 块。InsertRectangle(矩形);
插入Form-XObject元素
Form(也称为Form- xobject)是一个可以包含PDF内容并且可以在文档中剪切的对象。Block类公开InsertForm ()方法,该方法允许您在文档中插入FormSource对象。
例5:插入一个表单
block.InsertForm (simpleForm);
有关如何创建表单的详细信息,请检查形式而且FormSource文章。
改变当前样式
的块类的一些属性和方法会影响它的呈现方式:
SpacingBefore:表示之前的间距。
SpacingAfter:表示之后的空格。
LineSpacing:线与线之间的间距。
LineSpacingType:指定如何解释行间距。
FirstLineIndent:第一行的缩进。
LeftIndent:左缩进。
RightIndent:正确的缩进。
写成BackgroundColor:背景色。
HorizontalAlignment:内容的水平对齐。
VerticalAlignment:内容的垂直对齐。
子弹:应呈现为的元素块的列表项目。
IndentAfterBullet:项目符号元素后的缩进大小。
TextProperties而且GraphicProperties:负责文本和图形属性。有关更多信息,请参阅文本和图形属性篇文章。
SaveTextProperties ():保存TextProperties。它返回一个IDisposable对象,当dispose调用该对象时RestoreTextProperties ()并且可以在using语句中使用。
RestoreTextProperties ():将TextProperties恢复到以前的状态。
SaveGraphicProperties ():保存GraphicProperties。它返回一个IDisposable对象,当dispose调用该对象时RestoreTextProperties ()并且可以在using语句中使用。
RestoreGraphicProperties ():将图形属性恢复到之前的状态。
SaveProperties ():保存文本和图形属性。它返回一个IDisposable对象,当dispose调用该对象时RestoreTextProperties ()并且可以在using语句中使用。
RestoreProperties ():恢复文本和图形属性。
SetBullet(List List, int listLevel):此方法帮助您轻松地设置项目符号相关的属性,这些属性涉及某些List类实例的编号和格式。关于列表的更多信息,您可以在这篇文章.
明确的():清除块中的所有元素。
绘制块
控件可以将块绘制到内容画()方法。该方法接受参数a矩形,指定所需的大小和相对于元素编辑器的位置。
例5:绘制块
矩形boundingRect =新的矩形(新的点(0,0),新的大小(200,300));块。画(fixedContentEditor boundingRect);
每个方块只能画一次。否则,将抛出异常。
测量块尺寸
方法的一个重载可以实现对块的测量测量()方法。调用不带参数的方法将返回块中元素所需的大小,并设置块的大小DesiredSize财产。当您想要确定Block的大小时,此方法非常方便。当您想要换行文本或页面空间有限时,请确保将可用大小传递给该方法。
调用接受可用大小的重载来测量该特定大小的块。此外,设置DesiredSize属性,它设置PendingElements属性,该元素的集合不能满足可用大小。
例7创建一个文本为“Hello RadPdfProcessing!”的Block并测量它。
例7:度量块
Block Block = new Block();块。InsertText(“你好RadPdfProcessing !”);Size = block.Measure();
分割块
的Split ()方法返回一个具有相同属性的新Block。根据最后一次度量调用的结果,生成的块包含所有不适合当前块的未决元素。
中的代码示例8把一个街区一分为二。第一个包含文本“Hello”,第二个包含“RadPdfProcessing!”。
例8:分割块
Block helloBlock = new Block();helloBlock.InsertText(“Hello”);大小helloSize = helloBlock.Measure();Block Block = new Block();块。InsertText(“你好RadPdfProcessing !”);Size = block.Measure(helloSize);Block secondBlock = Block . split ();