如何用CoreText实现图文混排

如何用CoreText实现图文混排
如何用CoreText实现图文混排

如何用CoreText实现图文混排

今天蓝鸥武汉iOS培训小编分享的这篇文章是咱们蓝鸥已毕业学员写的,目前这位学员在一家做娱乐方面的公司上班,做iOS开发,小编还专门看了一下该学员的学习记录,零基础学员平时在校【蓝鸥】表现非常积极,薪资12000,非常棒。好了,说了这么多,下面开始咱们今天的技术分享!

也好久没来写博客了,主要是最近也工作了,手头的事有点多,一时间也就断了,闲下来了我就来补博客了,刚好最近也做了很多东西,放在这里也算给自己做个笔记吧。

CoreText

最近公司做了一个项目,需要用到图文混排技术。于是呢就疯狂地在网上搜刮资料。不过很不幸的是,百度的CoreText资料还是比较少滴,翻来覆去就那几个版本。然而我又上不去谷歌,so,困难重重啊。不过虽然资料少,不够前辈们给的贡献终于还是在我的努力下都被我消化了,然后我也来做个笔记。

CoreText的介绍

Core Text 是基于iOS 3.2+ 和OSX 10.5+ 的一种能够对文本格式和文本布

局进行精细控制的文本引擎。它良好的结合了UIKit 和Core Graphics/Quartz:

UIKit的UILabel允许你通过在 IB 中简单的拖曳添加文本,但你不能改变文本的颜色和其中的单词。

Core Graphics/Quartz几乎允许你做任何系统允许的事情,但你需要为每个字形计算位置,并画在屏幕上。

Core Text 正结合了这两者!你可以完全控制位置、布局、类似文本大小和颜色这样的属性,而 Core Text 将帮你完善其它的东西——类似文本换行、字体呈现等等。

以上就是对CoreText的介绍。

老司机对CoreText实现图文混排的一些理解

老司机认为,图文混排中使用到的CoreText只是CoreText庞大体系中一个对富文本的增强的一部分。我个人想法啊,我读书少,理解的可能不到位,不过你咬我啊。

恩,我又逗逼了一波,说好的大师气质呢,下面开始严肃了啊。

严肃的就是iOS7新推出的类库Textkit,其实是在之前推出的CoreText上的封装,根据苹果的说法,他们开发了两年多才完成,而且他们在开发时候也将表情混排作为一个使用案例进行研究,所以要实现表情混排将会非常容易。

苹果引入TextKit的目的并非要取代已有的CoreText框架,虽然CoreText的主要作用也是用于文字的排版和渲染,但它是一种先进而又处于底层技术,如果我们需要将文本内容直接渲染到图形上下文(Graphics context)时,从性能和易用性来考虑,最佳方案就是使用CoreText。原理的东西学一学总没有坏处。因此,还是有必要去学一学CoreText的。那我们开始学习吧。

富文本

老司机说过,我要讲的只是用来增强富文本的那一部分,那么富文本怎么使用呢。

富文本是什么呢?

富文本格式(RTF)规范是为了便于在应用程序之间轻松转储格式化文本和图形的一种编码方法。现在,用户可以利用特定转换软件,在不同系统如MS-DOS、Windows、OS/2、Macintosh 和Power Macintosh的应用程序之间转移字处理文档。

RTF规范提供一种在不同的输出设备、操作环境和操作系统之间交换文本和图形的一种格式。RTF使用A NSI, PC-8, Macintosh, 或IBM PC字符集控制文档的表示法和格式化,包括屏幕显示和打印

。凭借RTF规范,不同的操作系统和不同的软件程序创建的文档能够在这些操作系统和应用程序之间传递。

将一个格式化的文件转换为RTF文件的软件称为RTF书写器。

RTF书写器用于分离现有文本中的程序控制信息,并且生成一个包含文本和与之相关的RTF组的新文件。

将RTF文件转换成格式化文件的软件则称为RTF阅读器。

简单的说,附带有每一个文字属性的字符串,就是富文本。在iOS中,我们有一个专门的类来处理富文本AttributeString。

富文本的基本使用方法

诶,标题越来越小了,都4个#号了,说明我扯远了啊。不过要想使用CoreText 不会富文本还是不行啊。

来吧。AttributedString也分为NSAttributedString和NSMutableAttributedString两个类,类似于String,我就不赘述了。富文本本

质上没有什么难度,只要给指定的字符串附上指定的属性就好了。下面给出富文本的一些基本方法。

?-initWithString:以NSString初始化一个富文本对象

?-setAttributes:range:为富文本中的一段范围添加一些属性,第一个参数是个NSDictionary字典,第二个参数是NSRange。

?-addAttribute:value:range:添加一个属性

?-addAttributes:range:添加多个属性

?-removeAttribute:range:移除属性额,老司机知道这么说不直观,来来来,上

代码。

NSDictionary * dic = @{NSFontAttributeName:[UIFont

fontWithName:@"Zapfino"

size:20],NSForegroundColorAttributeName:[UIColor

redColor],NSUnderlineStyleAttributeName:@(NSUnderlineStyleSingle)};

NSMutableAttributedString * attributeStr = [[NSMutableAttributedString alloc] initWithString:@"0我是一个富文本,9听说我有很多属性,19I will try。32这里清除属性."];// 设置属性

[attributeStr setAttributes:dic range:NSMakeRange(0,

attributeStr.length)];// 添加属性

[attributeStr addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:30] range:NSMakeRange(9, 10)];

[attributeStr addAttribute:NSForegroundColorAttributeName

value:[UIColor cyanColor] range:NSMakeRange(13, 13)];// 添加多个属

NSDictionary * dicAdd = @{NSBackgroundColorAttributeName:[UIColor yellowColor],NSLigatureAttributeName:@1};

[attributeStr addAttributes:dicAdd range:NSMakeRange(19, 13)];// 移除属性

[attributeStr removeAttribute:NSFontAttributeName

range:NSMakeRange(32, 9)];

UILabel* label = [[UILabel alloc] initWithFrame:CGRectMake(100, 100, 200, 400)];

label.numberOfLines = 0;

label.attributedText = attributeStr;

这里你要注意一下,给label的一定是给他的attributedText属性,你给text 是不行的。是不是用起来很简单,富文本,跟字典没什么区别么。

CoreText绘制富文本

是不是终于进入正题了。其实之所以说那么多,还是为了你看完就能保证会用啊,否则你不会富文本你自己还要查找富文本相关资料。

Come On!

CoreText实现图文混排其实就是在富文本中插入一个空白的图片占位符的富文

本字符串,通过代理设置相关的图片尺寸信息,根据从富文本得到的frame计算图片绘制的frame再绘制图片这么一个过程。

先来整体代码

-(void)drawRect:(CGRect)rect

{

[super drawRect:rect];

CGContextRef context = UIGraphicsGetCurrentContext();

CGContextSetTextMatrix(context, CGAffineTransformIdentity); CGContextTranslateCTM(context, 0, self.bounds.size.height);

CGContextScaleCTM(context, 1.0, -1.0);

NSMutableAttributedString * attributeStr = [[NSMutableAttributedString alloc] initWithString:@"\n这里在测试图文混排,\n我是一个富文本"];

CTRunDelegateCallbacks callBacks;

callBacks.version = kCTRunDelegateVersion1;

callBacks.getAscent = ascentCallBacks;

callBacks.getDescent = descentCallBacks;

callBacks.getWidth = widthCallBacks;

NSDictionary * dicPic = @{@"height":@129,@"width":@400};

CTRunDelegateRef delegate = CTRunDelegateCreate(& callBacks,

(__bridge void *)dicPic);

unichar placeHolder = 0xFFFC;

NSString * placeHolderStr = [NSString

stringWithCharacters:&placeHolder length:1];

NSMutableAttributedString * placeHolderAttrStr = [[NSMutableAttributedString alloc] initWithString:placeHolderStr];

CFAttributedStringSetAttribute((CFMutableAttributedStringRef)placeHol derAttrStr, CFRangeMake(0, 1), kCTRunDelegateAttributeName, delegate);

CFRelease(delegate);

[attributeStr insertAttributedString:placeHolderAttrStr

atIndex:12];

CTFramesetterRef frameSetter = CTFramesetterCreateWithAttributedString((CFAttributedStringRef)attrib uteStr);

CGMutablePathRef path = CGPathCreateMutable();

CGPathAddRect(path, NULL, self.bounds);

NSInteger length = attributeStr.length;

CTFrameRef frame = CTFramesetterCreateFrame(frameSetter, CFRangeMake(0, length), path, NULL);

CTFrameDraw(frame, context);

UIImage * image = [UIImage imageNamed:@"bd_logo1"];

CGRect imgFrm = [self calculateImageRectWithFrame:frame];

CGContextDrawImage(context,imgFrm, image.CGImage);

CFRelease(frame);

CFRelease(path);// CFRelease(frameSetter);

}static CGFloat ascentCallBacks(void * ref)

{

return [(NSNumber *)[(__bridge NSDictionary *)ref valueForKey:@"height"] floatValue];

}static CGFloat descentCallBacks(void * ref)

{

return0;

}static CGFloat widthCallBacks(void * ref)

{

return [(NSNumber *)[(__bridge NSDictionary *)ref valueForKey:@"width"] floatValue];

}

-(CGRect)calculateImageRectWithFrame:(CTFrameRef)frame

{

NSArray * arrLines = (NSArray *)CTFrameGetLines(frame);

NSInteger count = [arrLines count];

CGPoint points[count];

CTFrameGetLineOrigins(frame, CFRangeMake(0, 0), points);

for (int i = 0; i < count; i ++) {

CTLineRef line = (__bridge CTLineRef)arrLines[i];

NSArray * arrGlyphRun = (NSArray *)CTLineGetGlyphRuns(line);

for (int j = 0; j < arrGlyphRun.count; j ++) {

CTRunRef run = (__bridge CTRunRef)arrGlyphRun[j];

NSDictionary * attributes = (NSDictionary

*)CTRunGetAttributes(run); CTRunDelegateRef delegate =

(__bridge CTRunDelegateRef)[attributes

valueForKey:(id)kCTRunDelegateAttributeName];

if (delegate == nil) {

continue;

}

NSDictionary * dic = CTRunDelegateGetRefCon(delegate);

if (![dic isKindOfClass:[NSDictionary class]]) {

continue;

}

CGPoint point = points[i];

CGFloat ascent;

CGFloat descent;

CGRect boundsRun;

boundsRun.size.width = CTRunGetTypographicBounds(run, CFRangeMake(0, 0), &ascent, &descent, NULL);

boundsRun.size.height = ascent + descent;

CGFloat xOffset = CTLineGetOffsetForStringIndex(line, CTRunGetStringRange(run).location, NULL);

boundsRun.origin.x = point.x + xOffset;

boundsRun.origin.y = point.y - descent;

CGPathRef path = CTFrameGetPath(frame);

CGRect colRect = CGPathGetBoundingBox(path);

CGRect imageBounds = CGRectOffset(boundsRun, colRect.origin.x, colRect.origin.y);

return imageBounds;

}

}

return CGRectZero;

}

不瞒你说,我看着代码都烦,也怕,所以放心,老司机会一句一句给你解释的。

分段解析

准备工作

CGContextRef context =

UIGraphicsGetCurrentContext();CGContextSetTextMatrix(context, CGAffineTransformIdentity); CGContextTranslateCTM(context, 0,

self.bounds.size.height);CGContextScaleCTM(context, 1.0, -1.0);

先要来一个背景介绍哈

/*

coreText 起初是为OSX设计的,而OSX得坐标原点是左下角,y轴正方向朝上。iOS中坐标原点是左上角,y轴正方向向下。

若不进行坐标转换,则文字从下开始,还是倒着的

如下图(盗的图,别打我)

*/

系统坐标系

这四句什么意思呢?

首先第一句。

CGContextRef context = UIGraphicsGetCurrentContext();//获取当前绘制上下文

为什么要回去上下文呢?因为我们所有的绘制操作都是在上下文上进行绘制的。

然后剩下的三句。

CGContextSetTextMatrix(context, CGAffineTransformIdentity);//设置字形的变换矩阵为不做图形变换

CGContextTranslateCTM(context, 0, self.bounds.size.height);//平移方法,将画布向上平移一个屏幕高

CGContextScaleCTM(context, 1.0, -1.0);//缩放方法,x轴缩放系数为1,则不变,y轴缩放系数为-1,则相当于以x轴为轴旋转180度

正如之上的背景说的,coreText使用的是系统坐标,然而我们平时所接触的iOS的都是屏幕坐标,所以要将屏幕坐标系转换系统坐标系,这样才能与我们想想的坐标互相对应。事实上呢,这三句是翻转画布的固定写法,这三句你以后会经常看到的。

继续。

图片的代理的设置

/*

事实上,图文混排就是在要插入图片的位置插入一个富文本类型的占位符。通过CTRUNDelegate设置图片

*/

NSMutableAttributedString * attributeStr = [[NSMutableAttributedString alloc] initWithString:@"\n这里在测试图文混排,\n我是一个富文本"];//这句不用我多说吧,最起码得有个富文本啊才能插入不是。

/*

设置一个回调结构体,告诉代理该回调那些方法

*/

CTRunDelegateCallbacks callBacks;//创建一个回调结构体,设置相关参数callBacks.version = kCTRunDelegateVersion1;//设置回调版本,默认这个callBacks.getAscent = ascentCallBacks;//设置图片顶部距离基线的距离callBacks.getDescent = descentCallBacks;//设置图片底部距离基线的距离callBacks.getWidth = widthCallBacks;//设置图片宽度

为什么要设置一个回调结构体呢?因为coreText中大量的调用c的方法。事实上你会发现大部分跟系统底层有关的都需要调c的方法。所以设置代理要按照人家的方法来啊。

看看这几句代码也很好懂,就是注释中写的意思。后三句分别就是说当我需要走这些代理的时候都会走那些代理方法。好吧,扯到这又要补充知识了。这个距离什么东西呢?

字形

对对,这呢就是一个CTRun的尺寸图,什么你问CTRun是啥?还没到那呢,后面会详细介绍。在这你只要知道,一会我们绘制图片的时候实际上实在一个CTRun中绘制这个图片,那么CTRun绘制的坐标系中,他会以origin点作为原点进行绘制。基线为过原点的x轴,ascent即为CTRun顶线距基线的距离,descent即为底线距基线的距离。我们绘制图片应该从原点开始绘制,图片的高度及宽度及CTRun 的高度及宽度,我们通过代理设置CTRun的尺寸间接设置图片的尺寸。

/*

创建一个代理

*/

NSDictionary * dicPic = @{@"height":@129,@"width":@400};//创建一个图片尺寸的字典,初始化代理对象需要

CTRunDelegateRef delegate = CTRunDelegateCreate(& callBacks,

(__bridge void *)dicPic);//创建代理

上面只是设置了回调结构体,然而我们还没有告诉这个代理我们要的图片尺寸。所以这句话就在设置代理的时候绑定了一个返回图片尺寸的字典。事实上此处你可以绑定任意对象。此处你绑定的对象既是回调方法中的参数ref。

好吧就然说到这我就直接把那三个回调方法说了吧,放在一起比较好理解一些。

static CGFloat ascentCallBacks(void * ref){

return [(NSNumber *)[(__bridge NSDictionary *)ref

valueForKey:@"height"] floatValue];

}static CGFloat descentCallBacks(void * ref){

return0;

}static CGFloat widthCallBacks(void * ref){

return [(NSNumber *)[(__bridge NSDictionary *)ref

valueForKey:@"width"] floatValue];

}

上文说过,ref既是创建代理是绑定的对象。所以我们在这里,从字典中分别取出图片的宽和高。

值得注意的是,由于是c的方法,所以也没有什么对象的概念。是一个指针类型的数据。不过oc的对象其实也就是c的结构体。我们可以通过类型转换获得oc中的字典。__bridge既是C的结构体转换成OC对象时需要的一个修饰词。

老司机敲字慢啊,敲到这都两个小时了,容我喝口水。

你们喝过红色的尖叫么?老司机喝了那种烟头泡的水之后精神满满的继续敲字。(那水超难喝,你可以挑战一下)诶,说好的严肃呢?

图片的插入

首先创建一个富文本类型的图片占位符,绑定我们的代理

unichar placeHolder = 0xFFFC;//创建空白字符

NSString * placeHolderStr = [NSString

stringWithCharacters:&placeHolder length:1];//已空白字符生成字符串NSMutableAttributedString * placeHolderAttrStr = [[NSMutableAttributedString alloc] initWithString:placeHolderStr];//用字符串初始化占位符的富文本

CFAttributedStringSetAttribute((CFMutableAttributedStringRef)placeHol derAttrStr, CFRangeMake(0, 1), kCTRunDelegateAttributeName, delegate);//给字符串中的范围中字符串设置代理

CFRelease(delegate);//释放(__bridge进行C与OC数据类型的转换,C 为非ARC,需要手动管理)

这里富文本的知识上文中已经介绍过了。不过老司机猜你有三个疑问。

?这个添加属性的方法怎么是这个样子的?因为这里是添加CTRunDelegate 这种数据类型,要用CoreText专门的方法,不过其实就是形式不同,作用一样的。

?为什么这里富文本类型转换的时候不用_bridge呢?老司机你不是说需要修饰词么?你是不是骗我?(markDown语法冲突我少打一个下划线)真没有,事实上不是所有数据转换的时候都需要__bridge。你要问我怎么区分?那好我告诉你,C中就是传递指针的数据就不用。比如说字符串,数组。原因老司机现在解释不通,等我能组织好语言的。

?为什么还要释放?我是ARC环境啊不好意思,我也是。不过为什么要释放呢?因为你进行了类型转换之后就不属于对象了,也不再归自动引用计数机制管理了,所以你得手动管理咯。

然后将占位符插入到我们的富文本中

[attributeStr insertAttributedString:placeHolderAttrStr atIndex:12];//将占位符插入原富文本

此处我就不赘述了,富文本的知识你只要类比字典就好了。至此,我们已经生成好了我们要的带有图片信息的富文本了,接下来我们只要在画布上绘制出来这个富文本就好了。

绘制

绘制呢,又分成两部分,绘制文本和绘制图片。你问我为什么还分成两个?

因为富文本中你添加的图片只是一个带有图片尺寸的空白占位符啊,你绘制的时候他只会绘制出相应尺寸的空白占位符,所以什么也显示不了啊。那怎么显示图片啊?拿到占位符的坐标,在占位符的地方绘制相应大小的图片就好了。恩,说到这,图文混排的原理已经说完了。

先来绘制文本吧。

绘制文本

CTFramesetterRef frameSetter =

CTFramesetterCreateWithAttributedString((CFAttributedStringRef)attrib uteStr);//一个frame的工厂,负责生成frameCGMutablePathRef path = CGPathCreateMutable();//创建绘制区域CGPathAddRect(path, NULL,

self.bounds);//添加绘制尺寸NSInteger length = attributeStr.length; CTFrameRef frame = CTFramesetterCreateFrame(frameSetter, CFRangeMake(0,length), path, NULL);//工厂根据绘制区域及富文本(可选范围,多次设置)设置frame

CTFrameDraw(frame, context);//根据frame绘制文字

frameSetter是根据富文本生成的一个frame生成的工厂,你可以通过framesetter以及你想要绘制的富文本的范围获取该CTRun的frame。但是你需要注意的是,获取的frame是仅绘制你所需要的那部分富文本的frame。即当前情况下,你绘制范围定为(10,1),那么你得到的尺寸是只绘制(10,1)的尺寸,他应

该从屏幕左上角开始(因为你改变了坐标系),而不是当你绘制全部富文本时他该在的位置。

然后建立一会绘制的尺寸,实际上就是在指定你的绘制范围。接着生成整个富文本绘制所需要的frame。因为范围是全部文本,所以获取的frame即为全部文本的frame(此处老司机希望你一定要搞清楚全部与指定范围获取的frame他们都是从左上角开始的,否则你会进入一个奇怪的误区,稍后会提到的)。最后,根据你获得的frame,绘制全部富文本。

绘制图片

上面你已经绘制出文字,不过没有图片哦,接下来绘制图片。绘制图片用下面这个方法,通用的哦

CGContextDrawImage(context,imgFrm, image.CGImage);//绘制图片

我们可以看到这个方法有三个参数,分别是context,frame,以及image。要什么就给他什么好咯,context和image都好说,context就是当前的上下文,最开始获得那个。image就是你要添加的那个图片,不过是CGImage类型。通过UIImage转出CGImage就好了,我们重点讲一下frame的获取。

frame的获取

记得我之前说的误区么?这里我们要获得Image的frame,你有没有想过我们的frameSetter?

我也想过,不过就像我说的,你单独用frameSetter求出的image的frame 是不正确的,那是只绘制image而得的坐标,所以哪种方法不能用哦,要用下面的方法。

你们一定发现,我获取frame的方法单独写了一个方法,为什么呢?1.将代码分离,方便修改。2.最主要的是这部分代码到哪里都能用,达到复用效果。

NSArray * arrLines = (NSArray *)CTFrameGetLines(frame);//根据frame获取需要绘制的线的数组NSInteger count = [arrLines count];//获取线的数量CGPoint points[count];//建立起点的数组(cgpoint类型为结构体,故用C语言的数组)

CTFrameGetLineOrigins(frame, CFRangeMake(0, 0), points);//获取起点

第一句呢,获取绘制frame中的所有CTLine。CTLine,又不知道了吧,老司机又要无耻的盗图了。

CTFrame组成

上面呢,我们能看到一个CTFrame绘制的原理。

?CTLine 可以看做Core Text绘制中的一行的对象通过它可以获得当前行的line ascent,line descent ,line leading,还可以获得Line下的所有Glyph Runs

?CTRun 或者叫做Glyph Run,是一组共享想相同attributes(属性)的字形的集合体

一个CTFrame有几个CTLine组成,有几行文字就有几行CTLine。一个CTLine 有包含多个CTRun,一个CTRun是所有属性都相同的那部分富文本的绘制单元。所以CTRun是CTFrame的基本绘制单元。接着说我们的代码。为什么我获取的数组需要进行类型转换呢?因为CTFrameGetLines()返回值是CFArrayRef类型的数据。就是一个c的数组类型吧,暂且先这么理解,所以需要转换。

那为什么不用__bridge呢?记得么,我说过,本身就传地址的数据是不用桥接的。就是这样。然后获取数组的元素个数。有什么用呢,因为我们要用到每个CTLine 的原点坐标进行计算。每个CTLine都有自己的origin。所以要生成一个相同元素个数的数组去盛放origin对象。然后用CTFrameGetLineOrigins获取所有原点。到此,我们计算frame的准备工作完成了。才完成准备工作。

计算frame

思路呢,就是遍历我们的frame中的所有CTRun,检查他是不是我们绑定图片的那个,如果是,根据该CTRun所在CTLine的origin以及CTRun在CTLine中的横向偏移量计算出CTRun的原点,加上其尺寸即为该CTRun的尺寸。

跟绕口令是的,不过就是这么个思路。

for (int i = 0; i < count; i ++) {//遍历线的数组

CTLineRef line = (__bridge CTLineRef)arrLines[i];

NSArray * arrGlyphRun = (NSArray *)CTLineGetGlyphRuns(line);//获取GlyphRun数组(GlyphRun:高效的字符绘制方案)

for (int j = 0; j < arrGlyphRun.count; j ++) {//遍历CTRun数组 CTRunRef run = (__bridge CTRunRef)arrGlyphRun[j];//获取CTRun NSDictionary * attributes = (NSDictionary

*)CTRunGetAttributes(run);//获取CTRun的属性

CTRunDelegateRef delegate = (__bridge

CTRunDelegateRef)[attributes

valueForKey:(id)kCTRunDelegateAttributeName];//获取代理

if (delegate == nil) {//非空

continue;

}

NSDictionary * dic = CTRunDelegateGetRefCon(delegate);//判断代理字典

if (![dic isKindOfClass:[NSDictionary class]]) {

continue;

}

CGPoint point = points[i];//获取一个起点

CGFloat ascent;//获取上距

CGFloat descent;//获取下距

CGRect boundsRun;//创建一个frame

boundsRun.size.width = CTRunGetTypographicBounds(run, CFRangeMake(0, 0), &ascent, &descent, NULL);

boundsRun.size.height = ascent + descent;//取得高

CGFloat xOffset = CTLineGetOffsetForStringIndex(line, CTRunGetStringRange(run).location, NULL);//获取x偏移量

boundsRun.origin.x = point.x + xOffset;//point是行起点位置,加上每个字的偏移量得到每个字的x

boundsRun.origin.y = point.y - descent;//计算原点

CGPathRef path = CTFrameGetPath(frame);//获取绘制区域

CGRect colRect = CGPathGetBoundingBox(path);//获取剪裁区域边框

CGRect imageBounds = CGRectOffset(boundsRun, colRect.origin.x, colRect.origin.y);

return imageBounds;

有了上面的思路这里就很好理解了。外层for循环呢,是为了取到所有的CTLine。类型转换什么的我就不多说了,然后通过CTLineGetGlyphRuns获取一个CTLine中的所有CTRun。里层for循环是检查每个CTRun。通过CTRunGetAttributes 拿到该CTRun的所有属性。通过kvc取得属性中的代理属性。接下来判断代理属性是

否为空。因为图片的占位符我们是绑定了代理的,而文字没有。以此区分文字和图片。如果代理不为空,通过CTRunDelegateGetRefCon取得生成代理时绑定的对象。判断类型是否是我们绑定的类型,防止取得我们之前为其他的富文本绑定过代理。如果两条都符合,ok,这就是我们要的那个CTRun。开始计算该CTRun的frame吧。获取

原点和获取宽高被。通过CTRunGetTypographicBounds取得宽,ascent和descent。有了上面的介绍我们应该知道图片的高度就是ascent+descent了吧。接下来获取原点。CTLineGetOffsetForStringIndex获取对应CTRun的X偏移量。取得对应CTLine 的原点的Y,减去图片的下边距才是图片的原点,这点应该很好理解。至此,我们已

经获得了图片的frame了。因为只绑定了一个图片,所以直接return就好了,如果多张图片可以继续遍历返回数组。获取到图片的frame,我们就可以绘制图片了,用上面介绍的方法。

哦,别忘了手动释放你创建的对象哦。

CFRelease(frame);CFRelease(path);CFRelease(frameSetter);

大功告成。

好了,至此你已经完成图片的绘制了。只要在ViewController里面引入你绘制CoreText文本的View正常的初始化添加子视图就可以了。

好吧,这个教程我也是综合了很多资料写出来的。优势是在于我一句一句讲的,几乎每一句都告诉你原理了吧。

计算机基础表格的处理与图文混排

实验四表格的处理与图文混排 一、实验目的: 1.掌握Word 2003中表格的使用。 2.学会在Word 2003实现图文混排的效果。 3.了解图形的绘制与编辑。 4.掌握页面的设置与打印。 二、实验内容、预备知识: (一)建立表格 1. 利用“插入表格”按钮 步骤一:打开文档,把插入点移动到要插入表格的位置。 步骤二:单击“常用”工具栏中的“插入表格”按钮()。 步骤三:按住鼠标左键拖动,选择满足需要的行数和列数,例如图7-1所示创建的是2×3的表格,即2行3列的表格,然后放开鼠标,在插入点出现创建的表格。 图7-1 创建2行3列的表格 2. 利用“插入表格”命令 步骤一:打开文档,把插入点移动到要插入表格的位置。 步骤二:执行“表格”→“插入表格”菜单命令,弹出“插入表格”对话框,如图7-2所示。

图7-2 “插入表格”对话框 步骤三:设置表格的参数。其中“列数”和“行数”两个文本框分别用来设置表格的列数和行数。“自动调整”选项组用来设置表格每列的宽度。 步骤四:单击“确定”按钮,就可以生成所需的表格。 3. 手动绘制表格 步骤一:将光标定位在需要插入表格的位置。 步骤二:执行“表格”→“绘制表格”菜单命令,或者单击常用工具栏上的“表格和边框”按钮(),弹出“表格和边框”工具栏,如图7-3所示。 图7-3“表格和边框”工具栏 步骤三:单击“绘制表格”按钮,鼠标指针变为铅笔的形状,此时就可以开始绘制表格了。 步骤四:单击“擦除”按钮,鼠标指针变成橡皮的形状,在要擦除的线上单击或拖动鼠标左键即可完成擦除操作。 4. 绘制斜线表头 步骤一:执行“表格”→“绘制斜线表头”菜单命令,打开“插入斜线表头”对话框,如图7-4所示。 步骤二:选择表头的样式、字体大小以及标题等,单击“确定”按钮。

Word图文混排 单选题

Word2010图文混排 1.在Word中, 查找操作____。 A.可以无格式或带格式进行,还可以查找一些特殊的非打印字符 B.只能在整个文档范围内进行 C.只能带格式进行,还可以查找一些特殊的非打印字符 D.可以无格式或带格式进行,但不能使用任何通配符进行查找 正确选项:A 2.执行“编辑”组中的“替换”命令,在对话框的“查找内容”框中输入了查找内容,但在“替换为”框内未输入任何内容,此时单击“全部替换”按钮,将。 A.每查到一个,就询问“替换为什么?” B.只做查找不做任何替换 C.所查到的内容全部替换为空格 D.所查到的内容全部删除 正确选项:D 3在Word 2010中为图片设置文字环绕方式时,以下说法正确的是。A.既可以使用Word提供的“四周型环绕”、“紧密型环绕”等文字环绕方式,也可以使用“编辑环绕顶点”功能实现个性化的文字环绕效果 B.当图片被设置为“嵌入型”时,可以使用“编辑环绕顶点”功能 C.只能设置“紧密型环绕”、“上下型环绕”等常规型的文字环绕方式 D.不能设置图片与文字之间的距离 正确选项:A 4.在word中,被编辑文档中的文字有“四号”、“五号”、“16”磅、“18”磅四种,下列关于字号大小的比较中,正确的是_____。 A. “16”磅大于“18”磅 B.字的大小一样,字体不同 C “四号”小于“五号” D. “四号”大于“五号” 正确选项:D 5.在word中,默认情况下,段落格式应用于_____。 A.被选择的文本 B.插入点所在的页面 C.插入点所在的段落 D.整个文档 正确选项:C 6在Word中,进行字体设置操作后,按新设置的字体显示的文字是_____。

图文混排的设计与制作

图文混排的设计与制作 《图文混排的设计与制作(1)》教学设计 龙川维嘉学校曾伟芳 课程内容图文混排的设计与制作(1) 课程学时 40分钟 所属学科信息技术教学对象初中一年级一、课前系统部分 1、课标(或大纲)分析 《信息技术》是我校学生的必修基础课,是一门理论与实践紧密结合的课程,是学生学习计算机的入门课程。要求能够熟练运用WORD完成各种办公任务,在学习中,重点培养学生的动手能力以及理论联系实践的能力,使学生通过本课程的学习后掌握计算机的初步使用 2、教材分析 图文混排的设计与制作(1)是信息技术教程的第二章第四节的内容,本节内容承接了前面几节的内容,在学习任务上有较强的连贯性。本课学习图文混排的方法,是“文字处理”部分内容中的重点,也是难点。学习本课要学会在WORD中插入艺术字、剪贴画和图片;能够对艺术字和剪贴画进行修饰;理解不同环绕方式的设置效果;并且能够运用图文混排的基本方法和技巧。因此,对于这个知识点,我采用任务驱动结合学生的自主学习、小组合作学习将知识点融入到具体的应用实例中,以培养学生应用WORD解决实际问题的能力和提高学生的人文素养为主。 3、学生分析 学习本课之前,学生已经学习了文字的编辑与修饰、段落排版的方法。为培养学生获取信息、应用信息的能力,可作进一步的提高,注重学生的探索性操作。从教材中的教学内容来看,看似比较简单,但是如在教学中让学生单已有的认知水平和

纯为掌握知识而教,会造成学生处理信息的盲目性,在本节课教学中,从学能力状况 生的实际出发,根据学生现有的年龄特征、知识基础、认知水平、兴趣、能力等,设计出有一定趣味的、略有难度的任务,吸引学生主动探索。 1、层次参差不齐 2、部分学生学习主动性差存在的学习问题 3、创新学习能力有待提高 1、自主学习能力、协作能力的培养学习需要和学习行 2、培养学生的创新能力为 4、教学目标 1、学会在WORD中插入艺术字、剪贴画、图片的方法。知识/能力目标 2、能够对艺术字和剪贴画进行修饰,理解不同环绕方式的设置效果。 3、能综合运用艺术字、剪贴画、图片解决实际问题。 1、通过完成制作任务来体会制作图文混排作品的一般流程。 过程与方法 2、尝试归纳和总结操作规律。 3、探求用Word解决实际问题的过程。 1 1、体会在Word中综合文字、图片等的处理效果,促进学生形成良好的审美 观。 情感目标 2、培养学生自主学习及协作学习的意识和能力。 3、使学生对“文字处理”有更深一步的了解,激发学生的求知欲。 信息素养提高学生搜集、整合、分析、运用信息的能力。 5、教学重点与难点

10.图文混排实例(word)

第十节课:图文混排 图文混排 1. 学会调整艺术字. 2.知道调整控制点的作用 3.熟悉艺术字工具栏中工具按钮的功能及使用方法 4、学会图形的组合方法 编辑修改艺术字 讲演辅结合 初二(1、2、3、4、5、6) 2009年6月18日星期五 认知操作 一. 复习提问 艺术字如何插入 二、新授

(首先展示精美的倒“福”字并提问其含义) 提问:在Word中利用所学过的对正文文字的编辑方法能制作出倒“福” 字吗?在Word中倒“福”字是如何编辑出来的? <引导学生分析任务:⑴此作品由哪几部分组成?⑵用什么方法制作倒“福”字?⑶用什么方法制作菱形?⑷如何形成最终作品?这样就自然而然地把大任务分解成了四个子任务:> 任务1 动手操作,插入艺术字“福” 1、启动应用程序从开始菜单程序的子菜单启动Microsoft word2003软件,出现该应用程序的启动画面。 2、在绘图工具栏中点击A,在弹出的对话框中,选择艺术字效果后点确定. 3、然后输入”福”字确定。 4、点击”福”字,周围出现八个控制点,拖动改变大小。 任务2 修改艺术字“福”到满意的倒“福”字效果 5、点艺术字工具栏上的“文字环绕方式”选择浮于文字上方。 6、点击”福”字,按“旋转”控制点,使福字倒立。 7、修改”福”字效果。 任务3 绘制及编辑正菱形 8、点击绘图工具栏->自选图形->基本形状下的菱形,按SHIFT键画出菱形。 9、编辑菱形到满意效果。 任务4 实现最终效果 10、调整正菱形与倒“福”字的位置、叠放次序并组合成一体。 三、提高训练

制作禁止停车标志 四、小结: 一、开机 二、登录 三、启动word 四、制作“福”倒艺术字。 五、保存文件。 六、关机 学生对艺术字兴趣很浓,掌握程度非常高。

WORD图文混排教案

一、课题:《WORD图文混排》 二、教学目标: 知识目标: 掌握插入、编辑图片,设置图文环绕,熟练运用Word软件进行文档版面设计。 能力目标: 1、会应用Word的图文混排制作简单的文档、文章等。 2、培养学生对图文混排作品的评价能力、实践操作能力。 3、培养学生对文章的美观的理解、排版能力。 情感目标: 通过师生的相互交流学习,感受探索的过程,培养学生实践能力和鉴赏能力,进一步激发学生学习Word的兴趣。 三、重难点: 教学重点:掌握插入和编辑图片,实现图文混排。 教学难点:对图片和文字进行格式和布局的排版设计方法。 四、教学方法 演示法、任务驱动法、讲练结合法、分组探究法、展示评价法 五、课时安排 2课时 六、教学准备

软件:WORD2010、教学案例素材,多媒体课件,教学广播软件(极域电子教室) 硬件:多媒体教室(机房)、 七、教学内容的组织与呈现方式 利用多媒体教室展示几幅图文并茂的文档,学生能过鉴赏,评价值得学习的地方,引起学生的学习兴趣,激发学生的求知欲望。再由教师演示并简单讲解插入、编辑图片的方法,为学生的自主学习扫除障碍。然后引导学生自主学习设置文字环绕方式等知识点。最终要求学生利用准备好的素材和网络中的资源,共同合作编排出图文并茂的作品。接着通过展示优秀作品,能过鉴别评价每个学生投票选出优秀的课堂作品,学生有一种成就感,进一步激发全体学生的学习兴趣,调动学生的学习积极性。最后通过总结培养学生审美评价能力和实践操作能力。 八、教学过程 1、导入 (1)通过课件展示三幅作品,引导学生观察。 (2)引导学生进行评价鉴赏。(你认为这三件WORD作品好在什么地方?如果给你做,你能做出来吗?认真学习这节课,老师相信你们都能制作,并且还能做得更好呢。)以美激趣,唤起学生探究的意愿,激发学生创作的欲望。重点运用学生对优秀作品评价和教师语言激励评价。

word图文混排教学实例

word图文混排教学实例 初中信息技术《图文混排》课堂教学实录 案例主题:Word《图文混排》 地点:多媒体计算机教室 时间:45分钟 课型:新授课 [案例描述] 学生学情分析: 我所教授的班级七年级新入学不久的新生,从年龄特点来看,七年级学生好动,好奇,好表现,应采用形象生动,形式多样的教学方法和学生广泛的,积极主动参与的学习方式,去激发学生学习的兴趣.生理上,学生好动,注意力易分散,爱发表见解,希望得到老师的表扬,所以在教学中应抓住学生这一特点,发挥学生的主动积极性.从学生认知特点和已有的认知经验及能力水平出发,教师只有采用任务驱动法,并结合演示法、分层指导法、讨论等教法,通过选取适合七年级学生特点的综合案例,结合实际教学流程,才能使学生真正掌握图文混排的操作技巧。 教学目标: 知识与技能目标: 1、掌握在WORD文档中插入图片、艺术字、文本框的方法和技巧。 2、能够灵活地设置图片、艺术字、文本框设置。 3、学会对页面颜色、和水印的设置。 过程与方法目标: 通过任务驱动、自主探究、合作交流、作品评价培养学生的自学

能力、多渠道解决问题的能力、协作意识、实践操作能力和创新精神。情感态度与价值观目标: 在学习活动中激发学生的学习兴趣,让学生体验到成功的喜悦, 陶冶学生的情操,培养其健康的审美观。 教学重点: 1、插入、设置艺术字、文本框和图片的方法 2、对艺术字、图片、文本框的环绕和样式的设置 教学难点:对艺术字、图片、文本框的环绕和样式的设置教学方法:问题探究式教学、任务驱动式教学 学习方法:小组合作学习法、自主探究学习法 教学准备: 1、多媒体计算机教室教室 2、多媒体教学微课、PPT教学课件、活动素材资源、文字处理 软件 课前准备: 教师通过网络邻居下发教学资源 过程展示: 课前活跃课堂气氛(约1分钟): 师:在讲新课之前,我请同学们欣赏一组照片,在出示照片之前, 大家可以猜一猜照片的内容是什么。 学生表情疑惑,甚至有些同学小学议论。。。 师:出示一组照片(注:我校在2015年9月末举行的秋季运行会照片) 学生看到自己或同学生龙活虎、奋勇争先的情景,心情特别的兴奋。 新授过程:

图文混排的设计与制作

图文混排的设计与制作 ——学做环保宣传海报教学设计 岸中学曾科 一、教材分析 图文混排的设计与制作是《信息技术》七年级上册的第二章第四节的容,是WORD的特色功能,也是排版部分的一个综合容。教材介绍了插入艺术字、图片、文本框、自选图形和设置相应格式的方法并给出了将知识具体应用到生活实践中的例子。因此,我采用任务驱动结合学生的自主学习、协作学习的教学方法,将知识点融入到具体实例中,以培养学生应用WORD解决实际问题的能力和提高学生的人文素养。 二、学情分析 在此之前,学生已经掌握了一定的WORD排版知识,已经能够熟练利用WORD进行文字的编辑与排版,表格的设计与制作。对版面的修饰和美化也有了自己的初步看法,但学生对信息技术比较有兴趣,喜欢自己动手操作,探索的积极性比较高,较适合进行尝试性学习。因此,我设计了一个有一定意义的且略有难度的任务,让学生在图文混排过程中综合运用已学的技能,掌握排版的指导思想、操作要领,较好地吸引学生主动地去探索,并能将之应用于实践。 三、教学目标 1、知识与技能 ①了解“艺术字”工具栏、“图片”工具栏的功能。 ②掌握插入图形对象的方法和技巧。 ③能实现图文混排,编排出图文并茂的海报。 2、过程与方法 ①通过本节学习,培养学生对信息加工处理的能力,让他们举一反三、触类旁通。 ②在自主学习过程中,培养学生主动参与、乐于探索、勤于动手的学习习惯和与他人合作学习的能力。 3、情感态度与价值观 ①培养学生展示自我、表现自我的能力,提高学生的审美素质和设计水平。 ②培养学生独立思考问题、解决问题的能力和团结协作精神。 四、教学重难点 1、教学重点: ①掌握在WORD中插入艺术字、图片的方法。 ②掌握艺术字、图片工具栏的使用方法。 2、教学难点: ①灵活运用对象的“环绕方式”和“叠放次序”的设置来实现图文混排的效果。

图文混排样例

原始图:(红色边框是我加上的,为了标示边界).这张图背景是白色的。 图文混排的三个效果: A :嵌入型 B :四周型 C :紧密型(需要先把图片的背景色变为透明) 9月26日下午,学校召开三十年教(工)龄教职工表彰慰问暨座谈会。副校长邱运华、人事处处长佟庆伟、工会常务副主席于丽萍以及2013年满三十年教(工)龄的教职工50多人出席会议。会议由校工会常务副主席于丽萍主持。 人事处处长佟庆伟宣读了2013年满三十年教(工)龄教职工表彰名单。随后,邱运华副校长、佟庆伟处长、于丽萍常务副主席为受表彰的教职工送上了一份温馨的慰问品。 副校长邱运华在讲话中代表学校党委和行政对满三十年教(工)龄 的教职工致以节日的问候和崇高的敬意,感谢他们为学校改 革发展作出的重要贡献。他说,在座各位老师,在这三十年里,勤勤恳恳、兢兢业业地为学校的发展付 出了辛勤的汗水和美好的青春年华,学校将永远 铭记 老师们为学校发展 作出的积极贡献。随后,他和老师们一起分享了学校这些年蓬勃发的可喜成绩。他说,当前学校正在开展以为民务实清廉为主要内容的党的群众路线教育实践活动,学校党委和行政虚心听取全校方方面面的意见建议,先后召开了各类座谈会12个,梳理了意见建议1300余条,他表示学校将认认真真地对待来自群众的每一条建议,努力作好整改落实工作,给老师们一个满意的答复。 历史学院郗志群、教育学院李新旺、科 教服务中心胡建柱、后勤集团东校区服务中心郅文联等4位教师代表先后发言。他们回顾了30 年的工作历程,和大家分享了30年来的美好回忆,表达了对学校的热爱和感激之情,并表示 要再接再励,为学校新的发展作出更大的贡献。 B A C

表格的基本操作和图文混排

实验五:表格的基本操作和图文混排 一、实验目的 1.熟练熟练掌握表格的建立及内容的输入。 2.熟练掌握对表格的编辑、格式化。 3.熟练对表格数据进行排序、计算等操作。 4.熟练掌握插入图片、图片编辑、格式化的方法。 5.掌握绘制简单的图形和格式化的方法。 6.掌握艺术字体的使用。 7.掌握公式编辑器的使用。 8.掌握文本框的使用 9.掌握图文混排的方法。 二、实验内容 (一)表格的基本操作 1.创建表格 建立如下表所示的4*5表格,并以实验七.doc为文件名保存在硬zz盘的指定文件夹或其他存储介质中。 2.编辑修改 (1)在表格右端插入一列,列标题为“平均分”。 (2)在表格下面增加一行,行标题为“各科最高分”。 (3)将表格第一行的行高调整为最小值0.85cm,将表格前5列的列宽调整为2.5cm。(4)将表格最后一列的列宽缩小为1.8cm。 (5)设置整个表格水平居中,各单元格内容水平居中、垂直居中对齐。 3.表格格式、排序与计算 (1)表格第一行及最后一行的字符格式设置为加粗、倾斜。 (2)设置表格外框线为1.5磅的双红色线,内线为1磅的细蓝色线。 (3)设置表格第一行的下框线及第一列的右框线为0.5磅的双线。

(4)设置表格底纹:第一行的填充色为灰色-15%,最后一行为茶色,最后一列为浅黄。(5)将第一行第一列单元格设置为手工绘制的斜线表头,行标题“科目”及列标题“姓名”为加粗、倾斜、六号字。 (6)在表格最上面增加一行,合并单元格,擦除斜线,然后输入标题“学生成绩”,格式为隶书、二号、居中,将底纹设置为无填充,图案颜色为浅青绿色,图案的样式为 浅色上斜线。计算每个人的平均分(保留一位小数)及各科最高分,并设置加粗、 倾斜、水平右对齐、垂直低端对齐。 (7)将表格的数据按排序依据先是平均分从高到低,然后是高等数学成绩从高到低进行排序。 (8)以“表格”为名将文档保存在你的文件夹中。 (二)图文混排 腊月初八,我国人民有吃腊八粥的习俗。据说腊八粥传自印度。佛教的创始者释迦牟尼本是古印度北部迦毗罗卫国(今尼泊尔境内)净饭王的儿子,他见众生受生老病死等痛苦折磨,又不满当时婆罗门的神权统治,舍弃王位,出家修道。初无收获,后经六年苦行,于腊月八日,在菩提树下悟道成佛。 腊八粥在古时是用红小豆、糯米煮成,后来材料逐渐增多。南宋人周密著《武林旧事》说:“用胡桃、松子、乳蕈、柿蕈、柿栗之类做粥,谓之‘腊八粥’”。至今在我国江南、东北、西北广大地区人民仍保留着吃腊八粥的习俗,广东地区已不多见。所用材料各有不同,多用糯米、红豆、枣子、栗子、花生、白果、莲子、百合等煮成甜粥。也有加入龙眼肉、蜜饯等同煮的。冬季吃一碗热气腾腾的腊八粥,既可口又有营养,确实能增福增寿。 1.艺术字的使用 按样张插入艺术字,并加边框线,艺术字的样式为“艺术字字库”中的第3行第5列,字体为华文行楷,大小为36号;线条颜色为红色,形状为波形1,阴影样式1. 2.插入图片 在第一段正文前插入任意一张图片,高度为2.85厘米,宽度为3.8厘米,版式为紧密型;在正文的第二段插入任意一张图片作为水印,按样张位置摆放;在正文的最后一段插入剪贴画music(如图8-1),缩小到20%,为剪贴画设置“雨后初晴”的填充效果。 3.自选图形 在正文后利用自选图形绘制如样张所示的图形,并将其组合。

word图文混排 教案

图文混排 案例一:贺卡的制作 一、案例:展示已经做好的案例 (素材---贺卡案例---贺卡1、2、3) 二、案例应用背景: 在节日来临的时候送上自己制作的贺卡 用Word制作精美的贺卡和word应用制作技巧 三、制作步骤: 1)新建一个Word文档,打开“页面设置”对话框,将宽度设置为24厘米,高 度设置为18厘米 2)打开“边框和底纹”对话框,在“页面边框”选项卡中选择一种艺术边框, 在单击“选项”按钮,将所有的边距设置为0, 3)打开“绘图”工具栏,选择“矩形”按钮,在页面上画一个矩形,使它的大 小与边框一致;保持举行为选中状态,打开“填充效果”对话框,在“纹理” 选项卡中选择“纸莎草纸”效果,单击“确定”,完成纹理的填充; 4)插入一个艺术字,选取合适的样式和字体,并调整好它的大小和位置 5)再插入两张图片,同样将“环绕方式”设置为“紧密型”,然后调整好它们 的大小和位置 6)插入一个文本框,将它放到合适的位置,输入祝福的话,并设置好字体、大 小和颜色,最后将“填充颜色”和“线条颜色”设置成无,一张精美的贺卡将制作完成了。 四、相关知识点 页面设置、边框的使用、填充纹理、插入艺术字、插入图片、文本框的使用、字体设置:字体、字号、颜色 五、重点操作提示 文件---页面设置 格式---边框和底纹---页面边框 插入---艺术字---图片----文本框 案例二:word图文混排 一、案例:展示已经做好的案例

图文混排案例 二、案例应用背景: 对文章进行高级排版 三、制作步骤: 7)新建一个Word文档,打开“页面设置”对话框,将宽度设置为24厘米,高 度设置为18厘米 8)打开“边框和底纹”对话框,在“页面边框”选项卡中选择一种艺术边框, 在单击“选项”按钮,将所有的边距设置为0, 9)打开“绘图”工具栏,选择“矩形”按钮,在页面上画一个矩形,使它的大 小与边框一致;保持举行为选中状态,打开“填充效果”对话框,在“纹理” 选项卡中选择“纸莎草纸”效果,单击“确定”,完成纹理的填充; 10)插入一个艺术字,选取合适的样式和字体,并调整好它的大小和位置 11)再插入两张图片,同样将“环绕方式”设置为“紧密型”,然后调整好它们 的大小和位置 12)插入一个文本框,将它放到合适的位置,输入祝福的话,并设置好字体、大 小和颜色,最后将“填充颜色”和“线条颜色”设置成无,一张精美的贺卡将制作完成了。 四、相关知识点 页面设置、边框的使用、填充纹理、插入艺术字、插入图片、文本框的使用、字体设置:字体、字号、颜色 五、重点操作提示 文件---页面设置 格式---边框和底纹---页面边框 插入---艺术字---图片----文本框

实验三word 2003表格和图文混排

实验三 Word 2003表格和图文混排 [实验类型] 设计实验 [目的要求] 1.掌握表格的制作方法。 2.掌握图文混排的操作。 [内容提要] 1.表格的制作: 简单表格的制作、编辑表格、格式化表格、表格内容输入、表格内容格式化。 2.图文混合排版: 插入页眉页脚、插入艺术字、图片、文本框以及相应了格式设置,分栏、首字下沉等特殊格式的设置。 [设计要求] 1.Word表格操作 (1)创建如下表格,并设置表格格式,具体要求如下表所示。 调整各行高、列宽至理想宽度。 对“午休”设置字符间距为加宽12磅。 除斜表头单元格外,所有单元格居中对齐;表格第一行、列

宽设置为:黑体、粗体、四号、蓝色字体。其他单元格内容 设置为:宋体、小四号、黑色字、居中。 设置网格和边框:内部框线为1.5磅单线绿色,外框线为1.5 磅双绿色。 将表格中最后一行设为鲜绿色底纹。 (2)请设置如下的登记表 按样文所示插入或删除空行;合并或拆分表格中相应的单元 格。 设置文本格式和对齐方式,调整列宽、行高;为表格设置相 应的边框线。 2.Word图文混排操作 (1)请输入样表中的文字,按下图所示进行设置: 标题设置为艺术字,式样为艺术库中的第1行3列,字体为宋 体、字号为24、加粗;版式:四周型。 正文设置:宋体、小四号、左对齐、蓝色、首行缩进0.83厘 米、段前段后距分别为6磅和3磅、1.5倍行距。 (2)在文档中插入一张剪贴画,要求:文字四周型环绕、水平居中;

设置0.75磅线型,图片高度和宽度分别为4.5厘米、3.5厘米,效果如图4.3所示。 (3)在文档底部插入如下横排文本框和竖排文本框,并输入文字,效果如图4.3所示。 (4)在文档底部绘制如下图形,效果如图4.3所示,并将其组合成一张图片。 (5)将编辑后的内容以“学号+姓名“为文件名保存在F:\File\Word文件夹中,效果如下图4.3所示。

WORD图文混排素材

1 方便是校园无线网状网的主题 1.1安装方便 安装无线网状网路由器不需要复杂的网络规划、施工规划,不需要开凿大量的线缆渠道,不需要完全依赖各种各样的线缆,不需要额外增加有线路由器、交换机等设备,不需要大量的人员进行安装,不需要漫长的安装和调试时间。 1.2使用方便 无线网状网是自配置、 自管理、自愈合的。因此使用起来非常方 便。由于现在的无线网状网主流技术都兼 容802.11a/bg 标准,因此若无特别要求,用 户终端一般不需要做任何修改。只需要接通 电源,然后就可 以开始使用。并且,整个无线网状网只要有 一个路由器连接到互联网上,其他的所有路由器均可通过多跳传输将覆盖下用户全部连到互联网上。 1.3调整方便 当校园网络的应用发生变化,或者需要增减网络规模时,校方均可随时随地随需增加或减少无线网状网路由器,即可完成网络的调整。甚至,校方还可需要的情况下,将整个校园无线网状网的全部或者部分 ?方便? ?经济? ?迫切需求? ?技术日趋成熟” 无线校园网络

在短期内,完全搬到另一处使用。 2经济是校园无线网状网的使命 经济性是无线网状网与其他方式相比的一大特点。这也是为什么现在美国等国家的城市、学校都比较青睐无线网状网的原因。校园无线网状网的经济性主要体现在: 2.1建设成本经济 由于极大地减少了对有线的依赖,并且无需很大规划、施工和额外设备等开销,无线网状网的建设成本非常低廉。这点已经得到著名杂志《福布斯》的肯定。 2.2.运行成本经济 因为整个网络是自治,不需要很多资源用于管理该网络,极大地节约了网络的管理成本,也就为学校节约了开支。 2.3应用规模经济 无线网状网是高度灵活的,不仅本身可以被用于多种用途,而且也可以做到动态的覆盖,可动态适应用户数量和应用种类的变化,并且能够以最优的规划去分配网络资源。这就在避免网络资源被浪费的同时,极大地提高了无线网络的性能。 3高校对无线网络具有迫切需求 目前笔记本电脑已普遍进入高校校园,给师生们带来很多便利,但电脑并没有发挥最大价值,笔记本电脑虽然可以移动,但是网络接口却不会跟着移动,而目前一台电脑最大的价值就在于它可以连接网络,从而实现信息的交流与共享。因此高校对无线网络具有迫切的需求,

Word图文混排

Word图文混排 1.实训目的 (1)掌握Word中图形的插入及设置对象格式。 (2)掌握Word中文档中的图文混排方法。 (3)掌握艺术字的使用。 (4)掌握文本框的使用。 (5)掌握利用绘图工具栏绘制简单图形。 2.实训要求 (1)插入与编辑图片。 (2)图文混排。 (3)插入和编辑艺术字。 (4)在Word文档中插入和使用文本框。 (5)绘制简单图形。 3.实训步骤 (1)新建Word文档,输入以下文字。 (2)插入艺术字标题 执行“插入/图片/艺术字”命令,弹出“艺术字库”对话框,选择所需样式,单击“确定”按钮; 在“编辑艺术字文字”对话框中输入文字“济南的冬天—老舍”,并设置字体为隶书、字号18,加粗。如图11-9所示;

图11-9 插入艺术字 单击选择该艺术字标题后,将鼠标指针指向其周围控制点后(形状变为双向箭头),拖动调整大小。 (3)插入剪贴画 将插入点定位于第一段开始,执行“插入”—“图片”—“剪贴画”命令。在“剪贴画”任务窗格中选择图片; 双击该剪贴画后,在“设置图片格式”对话框中选择“大小”选项卡,锁定纵横比后,将高度与宽度均缩小为原来的50%; 在“版式”选项卡中将环绕方式改为“紧密型”; 单击“确定”按钮,返回Word文档。 (4)插入自选图形。 单击“绘图”工具栏上的“自选图形”按钮,从“标注”中选择“云形标注”项。鼠标指针变成十字形状,拖动画出云形标注; 在标注内输入“你的感受如何?”,设置字体大小及字体,并通过“绘图”工具栏上的“填充颜色”按钮填充为浅黄色,调整为“紧密型”,将其移至合适位置。 (5)使用文本框制作水印。 执行“格式”—“文本框”—“竖排”命令,鼠标指针变为十字形状,拖出文本框; 在文本框中输入文字“文学艺术欣赏”,调整大小并将其移至合适位置; 执行“格式/文本框”命令,在“设置文本框格式”对话框中选择“线条和颜色”选项卡,将线条颜色设置为“无线条颜色”,填充色中设置为“无填充色”,隐藏文本框边框; 在“版式”选项卡中将环绕方式设置为“衬于文字下方”,从而实现水印效果。最终如

图文混排的设计与制作

《图文混排的设计与制作(1)》教学设计

2、培养学生自主学习及协作学习的意识和能力。 3、使学生对“文字处理”有更深一步的了解,激发学生的求知欲。 信息素养提高学生搜集、整合、分析、运用信息的能力。 5、教学重点与难点 重点1、在Word中插入艺术字、剪贴画、图片的方法。 2、环绕方式的设置方法。 难点设置合适的环绕方式,能综合运用图片、艺术字、剪贴画解决实际问题。 6、教学方法 任务驱动、分层教学、自主学习、小组合作学习 7、教学手段 本课米用任务驱动、自主探究、协作学习的教学模式,在教学的各个阶段注意设计不同层次和难度的“任务”,环环相扣,层层递进,循序渐进,逐步深化,教师适当启发,正确引导学生,学生运用旧知识去解决新问题,让学生在掌握知识与技能的冋时,增强成就感,培养了学生的学习兴趣,掌握科学的学习方法,提高自主学习能力,培养学生利用信息技术进行学习的能力、探索创新的精神以及协作的意识。 8、教学用具 (1)教学资源的设计 问题及问题情境的设计 问题描述问题情境简述设计意图 问题1 :情景创设激动人心的“校园小歌手”评选活动很快就要开始了,我 们能不能和电脑制作一份介绍本班小歌手的宣传海报? 弓1入的内容承接了上节的 内容,使学生的学习具有连 贯性 难度:低 问题2:我们班的“小歌星”宣传海报示例大家想不想、能不能做出如此漂亮的图文并茂的海报呢? 以美激趣,唤起学生探究的 意愿,激发学生创作的欲望 难度:中 问题3:宣传海报设计请你设计一份宣传海报。以现实生活中的实际任务来“驱动”学生,使之更有兴趣 难度:高 学习的设计 资源类型资源内容简要描述资源来源 教学课件网站资料范例海报评价量表教学课件是教师上课时用的,内容包含了学习方面的重点 和难点,帮助学生进行自主学习 网站的资料主要是为了给学生一个示范,让学生能够自主 的去找出更多相关的内容以作为学习上的参考及创作的素 材。 1、教师提供 2、学生自主在网络上收集

好看的WORD图文混排

好看的WORD图文混排 本节需学生掌握在文档中插入艺术字的方法、在文档中插入图片或图像等对象的方法及图文混排的技巧、在文档中使用文本框的方法等知识。 一、知识点 一)插入艺术字 1、插入艺术字 1)单击“绘图”工具栏上的“插入艺术字”按钮。 2)单击所需的艺术字图形对象类型,然后单击“确定”按钮。 3)在“编辑‘艺术字’文字”对话框中,键入要设置为“艺术字”格式的文字,选择所需的其他选项,单击“确定”按钮。 4)用“绘图”工具栏和“插入艺术字”工具栏上的按钮,可以增加或改变文字的效果。单击具有“艺术字”效果的文字,“艺术字”工具栏就会出现。 2、设置艺术字格式 3、调整艺术字位置 二)插入图片 1、插入图片 1)插入“剪辑库”中的图片 ·单击要插入剪贴画或图片的位置。 ·单击“绘图”工具栏中的“插入剪贴画”按钮,然后单击“图片”选项卡。 ·单击所需类别。 ·单击所需图片,然后单击所出现菜单中的“插入剪辑”。 ·使用完“剪辑库”之后,请单击“剪辑库”标题栏上的“关闭”按钮。 2)插入来自另一文件的图片 ·单击要插入剪贴画或图片的位置。 ·在“插入”菜单中,指向“图片”子菜单,然后单击“来自文件”命令。 ·找到要插入的图片。 ·双击需要插入的图片。 ·当图像出现在文档中时,可对其进行所需更改。 ·可以使用“图片”工具栏上的工具来进行更改,例如裁剪图片和调整图片的亮度、对比度与色彩。 2、图片格式设置 1)调整图片位置和尺寸 2)图片在文档中的层次位置 3)使用“设置图片格式”对话框改变图片的位置和文字环绕方式 4)使用“设置图片格式”对话框改变图片的大小 5)使用“设置图片格式”对话框改变图片的颜色和线条 三)插入文本框,并输入文字 1、单击“绘图”工具栏上的“文本框”按钮。 2、在文档中需要插入文本框的位置单击鼠标或进行拖动。 可以使用“绘图”工具栏上的选项来增强文本框的效果,如更改其填充颜色,操作方法与处理其他任何图形对象没有区别。 四)为文档制作水印:“水印”是指在一些重要文档的背景设置的一些隐约的文字或图案。 1、在文档中设置水印 若要在每页中显示水印,其设置方法如下:

word图文混排-优质教案《制作自我介绍》.doc

指导思想与理论依据 新课程理念下的课堂是师生共同学习、共同发展的场所,是以学科知识为载体,在师生、生生之间的相互活动和交流中,重在培养学生自我探索信息的意识,在学生经历知识形成的过程中,获得知识、技能、情感、态度、价值观的体验。本节课中在任务案例中,教师通过设置情境、引导思考、自主分析制作、展示交流等形式,与学生形成良好的互动氛围,促进学生形成自主探究的意识,培养学生分析问题解决问题的能力,提高学生的实际应用的能力。 教学背景分析 教学内容:本课是初中版信息技术第4册第3章文字处理的第4节,本课分2课时,本课为第1课时。主要学习自选图形和文本框等基础知识和技能,学会设计和制作自我介绍文档。 学生情况:通过本章前面几节课的学习,学生认识了word文字处理软件,能进行简单的文字编辑,会设计制作表格,能够插入图片进行图文混排。 教学方式:本节课的教学采用教师引导下的学生自主探究的学习方式,以实践操作任务为主线,以学生的自主活动为基础,力求发挥学生的主体地位和教师的主导作用,培养学生的主体意识和问题意识。 教学手段:使用多媒体、网络教室的广播等功能,完成教学中的教师引导、学生展示及教学反馈等教学环节。 技术准备:硬件:电子教室; 软件:学案、样例文档、自学帮助文件 教学目标(内容框架) 知识与技能: 1、学会设置背景颜色以及绘制自选图形和文本框。 2、学会使用控制点调整自选图形和文本框,会使用工具选项卡设置自选图形和文本框的形状填充、形状轮廓和效果等。 3、学会自选图形的组合。 过程与方法: 通过制作《自我介绍》文档,恰当利用自选图形、文本框等本课所学,布局美化文档。 情感态度价值观: 通过自选图形和文本框的探究和自学活动,提升自主学习精神与探索实践意识。 教 学 阶 段 教师活动学生活动设置意图 情 境 设 置 在班级文化建设的展板中看到同学们的自我介绍,都是根据统一的模板填充内容,如果想让你的自己介绍 更加美观独具个性,可以在页面上绘制插图和图案,但是有的同学可能和老师一样并没有美术基础,对于绘画不擅长。但是我可以借助Word中有一些功能来帮助我美化和布局文档。观看听讲 结合生活学习实际, 设置情境,引出课题 温 故 知 新 下面请看老师的《史努比的自我介绍》样例:对比观察:初步观察样例 初步感受样例,激发 学习兴趣

06文字软件应用之制作Word表格及图文混排(教案)

柳州市第一职业技术学校2010--2011学年上学期教学教案 科目:《计算机应用基础》授课班级:10物流1、2,10电商6 任课教师:滕景表教案使用时间:第4 周第3、4 节

№ 1:新课导入 回顾上个课题的内容,并提出本课题的目标: 1. 创建并编辑表格 2. 设置表格格式 3. 在文档中插入并编辑图片、艺术字、剪贴画和图表等对象 4. 使用文本框 5. 实现基本的图、文、表混混排版 № 2:内容详细讲解 制作Word表格 创建和编辑表格: 1.单击菜单栏“表格”——“插入”——“表格”,弹出“插入表格”对话框,设置列数为11,行数为9,如下图所示: 单击确定,即可完成表格的创建。 2.编辑表格包括合并、拆分单元格,选择对齐方式,拆分表格等操作。 1)合并单元格:在新建的表格中合并前三列的第一、二行单元格:选择所

要合并的单元格,右键选择“合并单元格”: 按照以上方法,合并其他需要合并的单元格,效果如下图: 2)插入或删除单元格、行或列:将光标移动到要删除的行,右键“删除单元格”,弹出如下图所示的“删除单元格”对话框,如果要删除行,则选择“删除整行”,然后按“确定”即可。

3)拆分单元格:单击要进行拆分的单元格,右键选择“拆分单元格”,弹出如下对话框,进行设置即可: 格式化表格: 1.设置行高、列宽: 选择第一、第二行,右键选择“表格属性”,在弹出的“表格属性”对话框中,选择“行高”选择卡,点击“指定高度”,输入高度值:

2.绘制斜线表头: 单击第一个单元格,单击菜单栏中的“表格”——“绘制斜线表头”,弹出“插入斜线表头”对话框,设置表头样式为“样式三”,并输入行标题和列标题: 3.输入表格的内容并设置内容的格式 4.设置边框和底纹 重点:表格属性的调出——单击要设置的单元格,右键选择“表格属性”,弹出表格属性对话框,表格的样式、单元格的样式、边框和底纹等等都是在“表格属性”对话框中进行的。 图文混合排版 1.插入艺术字 单击插入的位置,单击菜单栏中的“插入”——“图片”——“艺术字”,在弹出的对话框中设置艺术字的样式即可:

实验二 Word2010的图文混排

实验二Word2010的图文混排 一、实验目的 (1)掌握图形的插入及格式的修改。 (2)掌握艺术字的插入和编辑方法。 (3)掌握文本框的插入。 (4)掌握多个对象的层次、组合、对齐等格式的设置。 二、实验内容 (1)打开“伦敦奥运会.docx”文档,首行居中输入华文隶书、二号字体“2012年伦敦奥运会”作为标题。 (2)插入“2012伦敦奥运会会徽.jpg”图片,图片位置为四周文字环绕,垂直对齐方式:相对于行顶端对齐,水平对齐方式:右对齐。 (3)插入剪贴画:在剪贴画任务窗格中搜索文字“运动”,如图3-8所示。单击需要的剪贴画插入到文档的末尾处。 (4)插入艺术字:插入艺术字“拥抱四方朋友”字样,艺术字效果为“填充-红色,强调文字颜色2”。为艺术字添加效果:发光—红色,8PT发光,强调文字颜色2;转换—山形;设置艺术字字体为方正舒体,然后调整艺术字大小及位置。如图3-9所示。 (5)将此文档以文件名“实验二.docx”保存。 图3-8 搜索剪贴画图3-9 实验二效果

三、实验步骤 (1)打开“伦敦奥运会.docx”文档,首行居中输入华文隶书、二号字体“2012年伦敦奥运会”作为标题。 操作步骤: ①双击“伦敦奥运会.docx”文档图标,打开该文档。 ②光标定位第一个字符前,回车换行,产生一个空行,输入标题。 ③选中标题文本,在“开始”选项卡的“字体”组中设置字形、字号。 (2)插入“2012伦敦奥运会会徽.jpg”图片,图片位置为四周文字环绕,垂直对齐方式:相对于行顶端对齐,水平对齐方式:右对齐。 操作步骤: ①光标定位在文字末尾,在“插入”选项卡中的“插图”组中,选择“图片”按钮,打开“插入图片”对话框,选择“2012伦敦奥运会会徽.jpg”,点击“插入”按钮。 ②选中刚插入的图片,在“图片工具/格式”选项卡中的“排列”组中,点击“位置”按钮下拉列表中的“其他布局选项”,打开“布局”对话框,在“位置”和“文字环绕”选项卡中设置环绕方式和对齐方式。 ③将该图片用鼠标拖动到图3-9所示的位置。 (3)插入剪贴画:在剪贴画任务窗格中搜索文字“运动”,如图3-8所示。单击需要的剪贴画插入到文档的末尾处。 操作步骤: ①光标定位在文字末尾,在“插入”选项卡中的“插图”组中,选择“剪贴画”按钮,打开“剪贴画搜索”窗格,在搜索文字中输入“运动”,点击“搜索”按钮,单击合适的剪贴画即可插入到光标所在位置。 ②选中该剪贴画,剪贴画四周会出现8个控制点,鼠标指针放在控制点上,按下左键拖动可以改变剪贴画大小,剪贴画默认是嵌入式的环绕方式,选中剪贴画,在“图片工具/格式”选项卡中的“排列”组中,点击“位置”按钮下拉列表中的“其他布局选项”,打开“布局”对话框,可以修改环绕方式和对齐方式。 (4)插入艺术字:插入艺术字“拥抱四方朋友”字样,艺术字效果为“填充-红色,强调文字颜色2”。为艺术字添加效果:发光—红色,8PT发光,强调文字颜色2;转换—山形;设置艺术字字体为方正舒体,然后调整艺术字大小及位置。如图3-10所示。

word图文混排样张

一株小小的野百合 ...,演绎出一段美丽而又令人感动的故事。这就是台湾作家 林清玄的散文《心田上的百合花开》。一个小小的“心灵”,为了心中那个美好的愿望,竟是如此的执著和坚韧。它,的确不是 一株野草。 偏僻遥远的山谷、高数千尺的断崖,预示了野百 .. 合.追求美好愿望的道路必然艰难曲折。恶劣的生长环境,并没有消磨它作为花——一棵百合的天性,虽然它刚诞生时长得跟其他野草一模一样。但一个坚定的念头在它的心中悄悄萌生:我要开花,我要以花作证。为此,它“努力地吸收水分和阳光,深深地扎根,直直地挺着胸膛”——与自然环境顽强地抗争。 如果说与生长环境的抗争,只是野百合 ...为实现美好心愿迈出的第一步的话, 那么,野草的讥讽嘲笑、蜂蝶的鄙夷才是野百合 ...是 ...面对的更严酷的考验。野百合 执著的,野百合 ...更是智慧的。面对野草的嘲讽讥笑、蜂蝶的鄙夷劝 导,野百合 ...坚定的信念始终没有动摇:“不管有没有人欣赏,不管你们怎么看我,我都要开花!” 不事张扬的野百合 ...,用自己的行动默默抗争,独行其道,终成“正果”:“它终于开花了,它那灵性的洁白和秀挺的风姿,成为断崖上最美 丽的颜色。”这花是信念的结晶,是心血的凝聚。野百 ..合.终于实现了自己的价值。正因为这美丽来之不易,所以当百合谷成为人们的“圣地”之时,每一 朵野百合 ...都能谨记第一朵百合的教导:“全心全意默默地开花,以花来证明自己的存在。” 在林清玄看来,人生的美分为三个层次:第一个层次是欲望、物质带来的美;第二个层次是文化、艺术、文明带来的美的满足。第三个层次是灵性、精神的美, 这是最高境界的美。他信奉“尽心就是完美”,而野百合 ...就是这样一个因“尽心”而近乎“完美”的形象,真正实现了“灵性、精神的美”。

大学信息技术基础——实验5 WORD图文混排、表格制作

实验5 WORD图文混排、表格 制作 1.5 实验目的 1. 掌握在WORD文档中建立表格 2. 掌握对表格的编辑与修饰 3. 掌握在WORD文档中插入并编辑图片(剪贴画、图形文 件、艺术字) 4. 掌握在WORD文档中绘制简单图形 1.5 操作练习 1. 制作如下所示的表格(从文档的第三行开始输入表格),保存 为软盘上的课表.doc文档,文字为楷体,小四 星期一星期二星期三星期四星期五 1高数泛读文学高数泛读 2精读口语马哲口语日语 3听力日语计算机听力计算机 4体育精读军事理论体育军事理论 5马哲法律马哲 6上机班会上机 2. 对表格进行如下操作: 在最后插入一行,在第一个单元格输入1,将第九行的第2列至第6列的内容拷贝过来 将第一行的高度指定为1.5厘米,在第一个单元格内绘制斜线表头,输入课程\日期,将第一行的第2列至第6列的字改为宋体,五号,设置底纹为灰度-15%

合并第二行的所有单元格,输入上午;合并第七行的所有单元格,输入下午 将第二行及第七行的高度指定为1厘米 将所有单元格中的文字对齐方式设为水平居中及垂直居中 将表格的外边框设为1.5磅的粗细 3. 在表格前插入艺术字作为标题,文本为“课表”,格式自选。 4. 在标题的右边插入剪贴画,调整其大小,设其版式为四周型。 5. 插入图片文件c:\windows\clouds.bmp,将其高度改为 6.8cm,宽度 改为15cm,改变其版式并移动图片,使其作为课表的背景图 片。 6. 绘制自选图形中的太阳形状,将其填充为红色,复制五个相同的 图形,组合为一个对象,移动到课表的后面。 7. 将对象取消组合,删除其中的一个图形,将余下的图形重新组 合。

相关文档
最新文档