ios 创建和绘画pdf文件 -转
转自:http://blog.csdn.net/ant1239/article/details/7761676
本方法为项目中画pdf的一个方法,画pdf,一共分为几步,1,获取地址,有两种获取地址方法,这是其中一种,2,关联上下文后开始绘画pdf,开始新的一页后必须用cgcontentbeginpage方法开始新的一页,从新设置坐标,等属性。3,释放。pdf就是个画布,我们是往上面画东西,而不是写东西,还有就是pdf用的坐标系是数学坐标,左下角为原点,而不是编程里常用的左上角为为坐标原点~一下是源码,重复的东西有点多,懒得整理了~关键的就那么几句~
-(void)MyPDFContextCreate{ //获取路径 NSArray *paths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);坐标 NSString *saveDirectory=[paths objectAtIndex:]; NSString *saveFileName=@"myPDF.pdf"; NSString *newFilePath=[saveDirectory stringByAppendingPathComponent:saveFileName]; const char *filename=[newFilePath UTF8String]; //设置页面大小 CGRect pageRect=CGRectMake(, , , ); //关联上下文的对象 CGContextRef pdfContext; CFStringRef path; CFURLRef url; path=CFStringCreateWithCString(NULL, filename, kCFStringEncodingUTF8); url=CFURLCreateWithFileSystemPath(NULL, path, kCFURLPOSIXPathStyle, ); CFRelease(path); pdfContext=CGPDFContextCreateWithURL(url, &pageRect, nil); CFRelease(url); //开始画pdf NSString *temtext=[[NSString alloc]init]; const char *text=(char *)[temtext UTF8String]; int width; int height; // 画推荐信 NSNumber *en=[self.fatherobject valueForKey:@"enabel"]; if(en.boolValue){ height=; //开始画pdf,开始新的一页 CGContextBeginPage(pdfContext, &pageRect); //设置字体,字体大小等 CGContextSelectFont(pdfContext, "Helvetica", , kCGEncodingMacRoman); CGContextSetTextDrawingMode(pdfContext, kCGTextFill); CGContextSetRGBFillColor(pdfContext, , , , ); //画姓名 if(self.firstname!=nil||self.lastname!=nil){ if(self.firstname==nil){ self.firstname=@""; } if(self.lastname==nil){ self.lastname=@""; } temtext=[NSString stringWithFormat:@"%@ %@",self.firstname,self.lastname]; } width=[self getfontwidth:temtext fontsize:]; text=(char*)[temtext UTF8String]; CGContextSetFontSize(pdfContext, ); //关键方法,在指定位置画上text文字,文字必须为char类型 CGContextShowTextAtPoint(pdfContext, (-width)/, height, text, strlen(text)); height=height-; if((self.street!=nil&&![self.street isEqualToString:@""])|| (self.apt!=nil&&![self.apt isEqualToString:@""])|| (self.city!=nil&&![self.city isEqualToString:@""])|| (self.state!=nil&&![self.state isEqualToString:@""])|| (self.zip!=nil&&![self.zip isEqualToString:@""])){ if(self.street==nil){ self.street=@""; } if(self.apt==nil){ self.street=@""; } if(self.city==nil){ self.city=@""; } if(self.state==nil){ self.state=@""; } if(self.zip==nil){ self.zip=@""; } temtext=[NSString stringWithFormat:@"%@,%@,%@,%@,%@",self.street,self.apt,self.city,self.state,self.zip]; text=(char *)[temtext UTF8String]; width=[self getfontwidth:temtext fontsize:]; CGContextSetFontSize(pdfContext, ); CGContextShowTextAtPoint(pdfContext, (-width)/, height, text, strlen(text)); height=height-; } if(self.phone==nil){ self.phone=@""; } if(self.fax==nil){ self.fax=@""; } if(self.Email==nil){ self.Email=@""; } if(self.website==nil){ self.website=@""; } if(![self.phone isEqualToString:@""]|| ![self.fax isEqualToString:@""]|| ![self.Email isEqualToString:@""]|| ![self.website isEqualToString:@""]){ temtext=[NSString stringWithFormat:@"Phone:%@, Fax:%@, Email:%@, Website:%@",self.phone,self.fax,self.Email,self.website]; text=(char *)[temtext UTF8String]; width=[self getfontwidth:temtext fontsize:]; CGContextSetFontSize(pdfContext, ); CGContextShowTextAtPoint(pdfContext, (-width)/, height, text, strlen(text)); height=height-; } //划线 CGContextMoveToPoint(pdfContext, , height); CGContextAddLineToPoint(pdfContext, -, height); CGContextStrokePath(pdfContext); height=height-; //画cotterletter内容 NSManagedObject *myobject=[DataController getcontactinfo:self.fatherid]; NSString *myapt=[myobject valueForKey:@"apt"]; NSString *mycity=[myobject valueForKey:@"city"]; NSString *mycompanyname=[myobject valueForKey:@"companyname"]; NSString *myfirstname=[myobject valueForKey:@"firstname"]; NSString *mylastname=[myobject valueForKey:@"lastname"]; NSString *myposition=[myobject valueForKey:@"postion"]; NSString *mystate=[myobject valueForKey:@"state"]; NSString *mystreet=[myobject valueForKey:@"street"]; NSString *mytitle=[myobject valueForKey:@"title"]; NSString *myzip=[myobject valueForKey:@"zip"]; NSDate *mydate=[myobject valueForKey:@"date"]; if(mydate!=nil){ NSDateFormatter *myformatter=[[NSDateFormatter alloc]init]; [myformatter setDateFormat:@"MMMM, yyyy"]; temtext=[NSString stringWithFormat:@"%@",[myformatter stringFromDate:mydate]]; [myformatter release]; text=(char *)[temtext UTF8String]; CGContextSetFontSize(pdfContext, ); CGContextShowTextAtPoint(pdfContext, , height, text, strlen(text)); height=height-; } if((mytitle!=nil&&![mytitle isEqualToString:@""])|| (myfirstname!=nil&&![myfirstname isEqualToString:@""])|| (mylastname!=nil&&![mylastname isEqualToString:@""])){ temtext=[NSString stringWithFormat:@"%@ %@ %@",mytitle,myfirstname,mylastname]; height=[self plaintextatwith: width: text:temtext height:height fontsize: context:pdfContext]; height=height-; } if(myposition!=nil&&![myposition isEqualToString:@""]){ temtext=[NSString stringWithFormat:@"%@",myposition]; height=[self plaintextatwith: width: text:temtext height:height fontsize: context:pdfContext]; height=height-; } if(mycompanyname!=nil&&![mycompanyname isEqualToString:@""]){ temtext=[NSString stringWithFormat:@"%@",mycompanyname]; height=[self plaintextatwith: width: text:temtext height:height fontsize: context:pdfContext]; height=height-; } if((![myapt isEqualToString:@""]&&myapt!=nil)|| (![mystreet isEqualToString:@""]&&mystreet!=nil)){ temtext=[NSString stringWithFormat:@"%@.,%@",myapt,mystreet]; height=[self plaintextatwith: width: text:temtext height:height fontsize: context:pdfContext]; height=height-; } if((mycity!=nil&&![mycity isEqualToString:@""])|| (mystate!=nil&&![mystate isEqualToString:@""])|| (myzip!=nil&&![myzip isEqualToString:@""])){ temtext=[NSString stringWithFormat:@"%@,%@,%@",mycity,mystate,myzip]; height=[self plaintextatwith: width: text:temtext height:height fontsize: context:pdfContext]; height=height-; } if((mytitle!=nil&&![mytitle isEqualToString:@""])|| (mylastname!=nil&&![mylastname isEqualToString:@""])){ height=height-; temtext=[NSString stringWithFormat:@"Dear %@.%@",mytitle,mylastname]; height=[self plaintextatwith: width: text:temtext height:height fontsize: context:pdfContext]; height=height-; } if(self.coverletter!=nil&&![self.coverletter isEqualToString:@""]){ temtext=[NSString stringWithFormat:@"%@",self.coverletter]; height=[self plaintextatwith: width: text:temtext height:height fontsize: context:pdfContext]; } //结束 CGContextEndPage(pdfContext); } if(YES){ //开始画resume内容 CGContextBeginPage(pdfContext, &pageRect); CGContextSelectFont(pdfContext, "Helvetica", , kCGEncodingMacRoman); CGContextSetTextDrawingMode(pdfContext, kCGTextFill); CGContextSetRGBFillColor(pdfContext, , , , ); //显示first和lastname if(self.firstname!=nil||self.lastname!=nil){ if(self.firstname==nil) self.firstname=@""; if(self.lastname==nil) self.lastname=@""; temtext=[NSString stringWithFormat:@"%@ %@",self.firstname,self.lastname]; width=[self getfontwidth:temtext fontsize:]; height=; text=(char*)[temtext UTF8String]; CGContextShowTextAtPoint(pdfContext, (-width)/, height, text, strlen(text)); } //显示street等basicinfo信息 //street,apt if((self.street!=nil &&![self.street isEqualToString:@""])||(self.apt!=nil&&![self.apt isEqualToString:@""])){ if(self.street==nil){ self.street=@""; } if(self.apt==nil){ self.apt=@""; } height=[self getfontheight:temtext fontsize: height:height]; CGContextSelectFont(pdfContext, "Helvetica", , kCGEncodingMacRoman); temtext=[NSString stringWithFormat:@"%@,%@",self.street,self.apt]; width=[self getfontwidth:temtext fontsize:]; text=(char *)[temtext UTF8String]; CGContextShowTextAtPoint(pdfContext, (-width)/, height, text,strlen(text)); } //city,state zip if((self.city!=nil&&![self.city isEqualToString:@""])|| (self.state!=nil&&![self.state isEqualToString:@""])|| (self.zip!=nil&&![self.state isEqualToString:@""])){ if(self.city==nil){ self.city=@""; } if(self.state==nil){ self.state=@""; } if(self.zip==nil){ self.zip=@""; } height=[self getfontheight:temtext fontsize: height:height]; CGContextSelectFont(pdfContext, "Helvetica", ,kCGEncodingMacRoman ); temtext=[NSString stringWithFormat:@"%@,%@,%@",self.city,self.state,self.zip]; width=[self getfontwidth:temtext fontsize:]; text=(char *)[temtext UTF8String]; CGContextShowTextAtPoint(pdfContext, (-width)/, height, text, strlen(text)); } //phone if(self.phone!=nil&&![self.phone isEqualToString:@""]){ height=[self getfontheight:temtext fontsize: height:height]; CGContextSelectFont(pdfContext, "Helvetica", ,kCGEncodingMacRoman ); temtext=[NSString stringWithFormat:@"Phone: %@",self.phone]; width=[self getfontwidth:temtext fontsize:]; text=(char *)[temtext UTF8String]; CGContextShowTextAtPoint(pdfContext, (-width)/, height, text, strlen(text)); } //fax if(self.fax!=nil&&![self.fax isEqualToString:@""]){ height=[self getfontheight:temtext fontsize: height:height]; CGContextSelectFont(pdfContext, "Helvetica", ,kCGEncodingMacRoman ); temtext=[NSString stringWithFormat:@"Fax: %@",self.fax]; width=[self getfontwidth:temtext fontsize:]; text=(char *)[temtext UTF8String]; CGContextShowTextAtPoint(pdfContext, (-width)/, height, text, strlen(text)); } //Email if(self.Email!=nil&&![self.Email isEqualToString:@""]){ height=[self getfontheight:temtext fontsize: height:height]; temtext=[NSString stringWithFormat:@"Email: %@",self.Email]; width=[self getfontwidth:temtext fontsize:]; text=(char *)[temtext UTF8String]; CGContextShowTextAtPoint(pdfContext, (-width)/, height, text, strlen(text)); } //website if(self.website!=nil&&![self.website isEqualToString:@""]){ height=[self getfontheight:temtext fontsize: height:height]; temtext=[NSString stringWithFormat:@"Website: %@",self.website]; width=[self getfontwidth:temtext fontsize:]; text=(char *)[temtext UTF8String]; CGContextShowTextAtPoint(pdfContext, (-width)/, height, text, strlen(text)); } //Objective if(self.objective!=nil&&![self.objective isEqualToString:@""]){ //画线 height=[self getfontheight:temtext fontsize: height:height]; CGContextMoveToPoint(pdfContext, , height); CGContextAddLineToPoint(pdfContext, -, height); CGContextStrokePath(pdfContext); height=height-; text=(char *)[@"Objective" UTF8String]; CGContextSetFontSize(pdfContext, ); CGContextShowTextAtPoint(pdfContext, , height, text, strlen(text)); // CGContextSetFontSize(pdfContext, 10); height=height+; temtext=[NSString stringWithFormat:@"%@",self.objective]; height=[self plaintextatwith: width: text:temtext height:height fontsize: context:pdfContext]; } //5个可以排序的 for (int i=;i<;i++){ if([OrderData getskillnumber]==i){ //skill if(self.skills!=nil&&[self.skills count]!=){ // skill划线 height=[self getfontheight:temtext fontsize: height:height]; CGContextMoveToPoint(pdfContext, , height); CGContextAddLineToPoint(pdfContext, -, height); CGContextStrokePath(pdfContext); height=height-; text=(char *)[@"Skills" UTF8String]; CGContextSetFontSize(pdfContext, ); CGContextShowTextAtPoint(pdfContext, , height, text, strlen(text)); //skill内容 //height=height+13; for(int i=;i<[self.skills count];i++){ NSManagedObject *object=[self.skills objectAtIndex:i]; temtext=[NSString stringWithFormat:@"* %@",[object valueForKey:@"skill"]]; height=[self plaintextatwith: width: text:temtext height:height fontsize: context:pdfContext]; // height=height-13; } } }else if([OrderData getothernumber]==i){ //other if(self.others!=nil&&[self.others count]!=){ // other划线 height=[self getfontheight:temtext fontsize: height:height]; CGContextMoveToPoint(pdfContext, , height); CGContextAddLineToPoint(pdfContext, -, height); CGContextStrokePath(pdfContext); height=height-; text=(char *)[@"Others" UTF8String]; CGContextSetFontSize(pdfContext, ); CGContextShowTextAtPoint(pdfContext, , height, text, strlen(text)); //other内容 for(int i=;i<[self.others count];i++){ NSManagedObject *object=[self.others objectAtIndex:i]; temtext=[NSString stringWithFormat:@"* %@",[object valueForKey:@"other"]]; height=[self plaintextatwith: width: text:temtext height:height fontsize: context:pdfContext]; // height=height-13; } } }else if([OrderData getexperiencenumber]==i){ //experience if(self.experience!=nil&&[self.experience count]!=){ //排序 NSSortDescriptor *descriptor=[NSSortDescriptor sortDescriptorWithKey:@"start" ascending:NO]; [self.experience setArray:[self.experience sortedArrayUsingDescriptors:[NSArray arrayWithObjects:descriptor, nil]]]; // other划线 height=[self getfontheight:temtext fontsize: height:height]; CGContextMoveToPoint(pdfContext, , height); CGContextAddLineToPoint(pdfContext, -, height); CGContextStrokePath(pdfContext); height=height-; text=(char *)[@"Experience" UTF8String]; CGContextSetFontSize(pdfContext, ); CGContextShowTextAtPoint(pdfContext, , height, text, strlen(text)); //experience内容 for(int i=;i<[self.experience count];i++){ NSManagedObject *object=[self.experience objectAtIndex:i]; NSString *position=[object valueForKey:@"position"]; NSString *companyname=[object valueForKey:@"companyname"]; NSString *location=[object valueForKey:@"location"]; NSDate *startdate=[object valueForKey:@"start"]; NSDate *enddate=[object valueForKey:@"end"]; NSString *thisid=[object valueForKey:@"thisid"]; temtext=[NSString stringWithFormat:@"%@",position]; height=[self plaintextatwith: width: text:temtext height:height fontsize: context:pdfContext]; height=height-; temtext=[NSString stringWithFormat:@"%@, %@",companyname,location]; height=[self plaintextatwith: width: text:temtext height:height fontsize: context:pdfContext]; height=height-; NSDateFormatter *timeformatter=[[NSDateFormatter alloc]init]; [timeformatter setDateFormat:@"MMMM, yyyy"]; NSNumber *number=(NSNumber*)[object valueForKey:@"currentjob"]; if(!number.boolValue){ temtext=[NSString stringWithFormat:@"%@ ~ %@",[timeformatter stringFromDate:startdate],[timeformatter stringFromDate:enddate]]; }else{ temtext=[NSString stringWithFormat:@"%@ ~ Present",[timeformatter stringFromDate:startdate]]; } [timeformatter release]; height=[self plaintextatwith: width: text:temtext height:height fontsize: context:pdfContext]; NSMutableArray *responsibility=[DataController getresponsibility:thisid]; NSLog(@"responsibility cout:%d \n responsibility context:%@",[responsibility count],responsibility); for(int j=;j<[responsibility count];j++){ NSManagedObject *object=[responsibility objectAtIndex:j]; NSString *respon=[object valueForKey:@"responsibility"]; temtext=[NSString stringWithFormat:@"* %@",respon]; height=[self plaintextatwith: width: text:temtext height:height fontsize: context:pdfContext]; height=height-; NSLog(@"J=%d",j); } height=height-; } } }else if([OrderData geteducationnumber]==i){ //Education if(self.education!=nil&&[self.education count]!=){ //排序 NSSortDescriptor *descriptor=[NSSortDescriptor sortDescriptorWithKey:@"starttime" ascending:NO]; [self.education setArray:[self.education sortedArrayUsingDescriptors:[NSArray arrayWithObjects:descriptor, nil]]]; // other划线 height=[self getfontheight:temtext fontsize: height:height]; CGContextMoveToPoint(pdfContext, , height); CGContextAddLineToPoint(pdfContext, -, height); CGContextStrokePath(pdfContext); height=height-; text=(char *)[@"Education" UTF8String]; CGContextSetFontSize(pdfContext, ); CGContextShowTextAtPoint(pdfContext, , height, text, strlen(text)); //内容 for(int i=;i<[self.education count];i++){ NSManagedObject *object=[self.education objectAtIndex:i]; NSString *schoolname=[object valueForKey:@"school"]; NSDate *startdate=[object valueForKey:@"starttime"]; NSDate *enddate=[object valueForKey:@"endtime"]; NSString *comment=[object valueForKey:@"comment"]; NSString *major=[object valueForKey:@"major"]; //height=height-13; temtext=[NSString stringWithFormat:@"%@",schoolname]; height=[self plaintextatwith: width: text:temtext height:height fontsize: context:pdfContext]; height=height-; NSDateFormatter *timeformatter=[[NSDateFormatter alloc]init]; [timeformatter setDateFormat:@"MMMM, yyyy"]; temtext=[NSString stringWithFormat:@"%@ ~ %@",[timeformatter stringFromDate:startdate],[timeformatter stringFromDate:enddate]]; [timeformatter release]; height=[self plaintextatwith: width: text:temtext height:height fontsize: context:pdfContext]; height=height-; temtext=[NSString stringWithFormat:@"%@",major]; height=[self plaintextatwith: width: text:temtext height:height fontsize: context:pdfContext]; height=height-; temtext=[NSString stringWithFormat:@"%@",comment]; height=[self plaintextatwith: width: text:temtext height:height fontsize: context:pdfContext]; } } }else if([OrderData getawardnumber]==i){ //award if(self.awards!=nil&&[self.awards count]!=){ //排序 NSSortDescriptor *descriptor=[NSSortDescriptor sortDescriptorWithKey:@"awarddate" ascending:NO]; [self.awards setArray:[self.awards sortedArrayUsingDescriptors:[NSArray arrayWithObjects:descriptor, nil]]]; // other划线 height=[self getfontheight:temtext fontsize: height:height]; CGContextMoveToPoint(pdfContext, , height); CGContextAddLineToPoint(pdfContext, -, height); CGContextStrokePath(pdfContext); height=height-; text=(char *)[@"Awards" UTF8String]; CGContextSetFontSize(pdfContext, ); CGContextShowTextAtPoint(pdfContext, , height, text, strlen(text)); //award内容 for(int i=;i<[self.awards count];i++){ NSManagedObject *object=[self.awards objectAtIndex:i]; NSString *comment=[object valueForKey:@"comment"]; NSString *name=[object valueForKey:@"name"]; NSDate *awarddate=[object valueForKey:@"awarddate"]; temtext=[NSString stringWithFormat:@"%@",name]; height= [self plaintextatwith: width: text:temtext height:height fontsize: context:pdfContext]; height=height-; NSDateFormatter *timeformatter=[[NSDateFormatter alloc]init]; [timeformatter setDateFormat:@"MMMM, dd, yyyy"]; temtext=[NSString stringWithFormat:@"%@",[timeformatter stringFromDate:awarddate]]; [timeformatter release]; height=[self plaintextatwith: width: text:temtext height:height fontsize: context:pdfContext]; height=height-; temtext=[NSString stringWithFormat:@"%@",comment]; height=[self plaintextatwith: width: text:temtext height:height fontsize: context:pdfContext]; height=height-; } } } } CGContextEndPage(pdfContext); } CGContextRelease(pdfContext); }
ios 创建和绘画pdf文件 -转的更多相关文章
- PDFBox创建并打印PDF文件, 以及缩放问题的处理.
PDFBox带了一些很方便的API, 可以直接创建 读取 编辑 打印PDF文件. 创建PDF文件 public static byte[] createHelloPDF() { ByteArrayOu ...
- ios创建bundle的图片资源文件(转)
在ios开发中为了方便管理资源文件,可以使用bundle的方式来进行管理,比如kkgridview里就是把所需的图片文件全部放在一个bundle来管理的 . 切记目前iOS中只允许使用bundle管理 ...
- ios创建的sqlite数据库文件如何从ios模拟器中导出
为了验证数据库的结构,有的时候需要使用一些管理工具来直接查看sqlite数据库的内容,在windows下有sqlite3的专用工具下载,而在ios下也可以使用火狐浏览器的插件sqlitemanager ...
- ios 创建自己的.a文件
1:首先创建个 静态工程(Cocoa Touch Static Library); 方法名字,一定要暴露在.h文件中, 2:分别在模拟器环境和真机环境下 Analyze (shift+command+ ...
- iOS开发:读取pdf文件
方法一:使用QLPreviewController #pragma mark 浏览存在沙盒的文件 -(void)quickLook { QLPreviewController *QLPreviewV ...
- 怎么用OCR图文识别软件在MS Office中创建PDF文件
ABBYY PDF Transformer+是一款可创建.编辑及将PDF文件转换为其他可编辑格式的OCR图文识别软件,不仅可以从纸质文档.图像文件和任何其他流行格式创建PDF文件(相关文章请参考如何从 ...
- PDF文件的加载及展示
项目需要显示PDF文件,于是遍寻了网络,发现的方法以下几种: 1.使用UIWebView加载,没啥说的,根据文件路径,网络或者本地皆可,创建一个NSURLRequest,然后用webView加载就可以 ...
- 使用iTextSharp修改PDF文件(一)
这个iTextSharp确实是个好东西,可以创建.读取PDF格式的文档,虽然我的需求比较简单,但我首先还是基本上.完整地看完了它的相关文档,不喜欢英文的同志,可以搜索一篇<用C#制作PDF文件全 ...
- 使用pdfFactory为PDF文件设定查看选项
一般情况下,大部分PDF文件都会按照默认的查看设置,以100%的尺寸显示第一页的内容.但在一些特殊情况下,PDF文件的创建者会设定其他的文件查看尺寸,或设定打开页为第N页,来达到引起阅读者关注的目的. ...
随机推荐
- HadoopMapReduce运行机制
1.map方法读取一个文件的一行记录进行分析, 输入:LongWritable(当前读取的文件位置), Text(内容) 2.map将读取到的信息进行分类,输入Context (键值对) ;作为 ...
- 点滴记录——Ubuntu 14.04中Chrome浏览器标题栏出现中文乱码
今天不知道在系统里装的哪个软件与Chrome浏览器所用的字体向冲突了,导致标题栏显示的中文都变成了乱码,其次收藏栏中的中文也变成了乱码.导致原有的收藏内容都无法辨认了.在网上搜索了一下,也有人遇到了相 ...
- FMDB中常用SQL使用
大家工作中,最常用到的无非是 增.删.查.改... 在SQL中对应的语句为:INSERT DELETE SELECT UPDATE 首先,你可以使用一款叫做“sqlite database brows ...
- 偶遇HiWork,请不要擦肩而过
非常多朋友可能都不了解HiWork,在这里介绍一下. HiWork是基于云存储的团队即时沟通协作平台,主要针对于中小团队及中小企业的即时沟通,让团队沟通更顺畅.在HiWork平台可即时得知所使用第三方 ...
- C++中各大有名的科学计算库
在 C++中,库的地位是非常高的.C++之父 Bjarne Stroustrup先生多次表示了设计库来扩充功能要好过设计更多的语法的言论.现实中,C++的库门类繁多,解决 的问题也是极其广泛,库从轻量 ...
- ps -ef | grep
ps -ef | grep java 查看所有关于java的进程 root 17540 1 0 2009 ? 01:42:27 /usr/java/jdk1.5. ...
- VA市场高烧已退,逐渐降温
本周市场国产VA报价在175元/公斤左右,较上周滑落.因前期停报的厂家均已报价,个别国产厂家报价较低,各厂家间报价价差较大,彰显不同态度.国内厂家供应依然偏紧,但较前期已缓解.中小饲料企业库存偏低,近 ...
- Lightoj 1025 - The Specials Menu
区间dp /* *********************************************** Author :guanjun Created Time :2016/6/30 23:2 ...
- 浅谈Linux Kernel 中循环链表的实现
前阵子在弄缓存的时候,我们需要将qemu对于磁盘镜像文件写请求串成一个链表,最终将这个链表里面的写请求全部刷回到镜像文件里面,那么我们便需要一个强健,可靠的链表的接口,于是我们仿照Linux 2.4. ...
- Iphone 启动图的尺寸
APP图标设置 - 取Images.xcassets中的AppIcon, 图标尺寸 29pt * 2x => 58 * 5829pt * 3x => 87 * 8740pt * 2x =& ...