转自: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文件 -转的更多相关文章

  1. PDFBox创建并打印PDF文件, 以及缩放问题的处理.

    PDFBox带了一些很方便的API, 可以直接创建 读取 编辑 打印PDF文件. 创建PDF文件 public static byte[] createHelloPDF() { ByteArrayOu ...

  2. ios创建bundle的图片资源文件(转)

    在ios开发中为了方便管理资源文件,可以使用bundle的方式来进行管理,比如kkgridview里就是把所需的图片文件全部放在一个bundle来管理的 . 切记目前iOS中只允许使用bundle管理 ...

  3. ios创建的sqlite数据库文件如何从ios模拟器中导出

    为了验证数据库的结构,有的时候需要使用一些管理工具来直接查看sqlite数据库的内容,在windows下有sqlite3的专用工具下载,而在ios下也可以使用火狐浏览器的插件sqlitemanager ...

  4. ios 创建自己的.a文件

    1:首先创建个 静态工程(Cocoa Touch Static Library); 方法名字,一定要暴露在.h文件中, 2:分别在模拟器环境和真机环境下 Analyze (shift+command+ ...

  5. iOS开发:读取pdf文件

    方法一:使用QLPreviewController #pragma mark  浏览存在沙盒的文件 -(void)quickLook { QLPreviewController *QLPreviewV ...

  6. 怎么用OCR图文识别软件在MS Office中创建PDF文件

    ABBYY PDF Transformer+是一款可创建.编辑及将PDF文件转换为其他可编辑格式的OCR图文识别软件,不仅可以从纸质文档.图像文件和任何其他流行格式创建PDF文件(相关文章请参考如何从 ...

  7. PDF文件的加载及展示

    项目需要显示PDF文件,于是遍寻了网络,发现的方法以下几种: 1.使用UIWebView加载,没啥说的,根据文件路径,网络或者本地皆可,创建一个NSURLRequest,然后用webView加载就可以 ...

  8. 使用iTextSharp修改PDF文件(一)

    这个iTextSharp确实是个好东西,可以创建.读取PDF格式的文档,虽然我的需求比较简单,但我首先还是基本上.完整地看完了它的相关文档,不喜欢英文的同志,可以搜索一篇<用C#制作PDF文件全 ...

  9. 使用pdfFactory为PDF文件设定查看选项

    一般情况下,大部分PDF文件都会按照默认的查看设置,以100%的尺寸显示第一页的内容.但在一些特殊情况下,PDF文件的创建者会设定其他的文件查看尺寸,或设定打开页为第N页,来达到引起阅读者关注的目的. ...

随机推荐

  1. SQL2012 尝试读取或写入受保护的内存。这通常指示其它内存已损坏

    今天打开SQL2012,突然就连接不了数据库.一開始还以为是某个server崩溃了.结果试了好几个.都还是如此,弹出提演示样例如以下: 尝试读取或写入受保护的内存.这通常仅仅是其它内存已损坏.(Sys ...

  2. 性能监控 -- 中间件性能监控【Weblogic控制台】

    通过WebLogic管理控制台可以实时获取各性能指标,通过控制台,可以对weblogic的性能及运行状况,发布的应用.资源等进行监视 1. 进入Weblogic管理控制台,单击服务器,选择一台需监控的 ...

  3. FancyCoverFlow

    https://github.com/davidschreiber/FancyCoverFlow

  4. 李洪强iOS开发之函数式 编程初窥

    函数式 编程初窥   最近在学习Erlang和Python.Erlang是完全的函数式编程语言,Python语言是面向对象的语言,但是它的语法引入了大量的函数式编程思想.越研究越觉得函数式的编程思路可 ...

  5. malloc内存分配

    网上总结到的信息: (1) 静态分派:是在栈上分配,是由用户自己申请,是由操作系统自己释放的 动态分配:是由编译器分配,操作系统没有提供这样的机制,所以自己申请,必须自己删除! (2)你也要明确.栈的 ...

  6. asp.net MVC 中呈现指定区域下的分部视图

    Html.RenderAction() 可以呈现分部视图. asp.net MVC就是有这种好处,可以将多个子视图无缝合成到一个视图上再输出,那么开发的时候,能够进行模块化开发.看上去同属一个页面上的 ...

  7. 2016/2/24 css画三角形 border的上右下左的调整 以及内区域的无限变小 边界透明

    网页因为 CSS 而呈现千变万化的风格.这一看似简单的样式语言在使用中非常灵活,只要你发挥创意就能实现很多比人想象不到的效果.特别是随着 CSS3 的广泛使用,更多新奇的 CSS 作品涌现出来. 今天 ...

  8. python中一切皆是对象,对象都是在堆上存放的,一切都是指针

    1 由于对象都是在堆上存放的,所以,返回值可以任意返回. 这样看来,闭包里面的外部函数的内部变量也是对象,所以,当返回的内部函数被调用时,这个外部函数的变量就没有被释放. 这样看来,返回时,不需要考虑 ...

  9. 使用ADO.NET对SQL Server数据库进行訪问

    在上一篇博客中我们给大家简介了一下VB.NET语言的一些情况,至于理论知识的学习我们能够利用VB的知识体系为基础.再将面向对象程序设计语言的知识进行融合便可进行编程实战. 假设我们须要訪问一个企业关系 ...

  10. execute ps1 with pwsh.exe

    pwsh -file C:\Users\clu\source\repos\Edenred\LISA_5.0.0.0\LISA.ControlPanel\LISA.ControlPanel\bin\Re ...