• PDF阅读的实现


    实现pdf文件的阅读。

    使用自定义的UIView,继承自UIView,
    1、项目中新建一个类,命名为PdfView。

    #import <Foundation/Foundation.h>

    @interface PdfView : UIView { 
        
    CGPDFDocumentRef pdf;
        
    int pIndex;
    }

    @propertyint pIndex;
    -(void)drawInContext:(CGContextRef)context;//进行绘制PDF
    -(
    void)initPDF:(NSInteger)pageIndex;//初始化PDF
    -(
    NSInteger) getNumberOfPages;//得到当前PDF的全部页数

    @end
     
     
     

    #import "PdfView.h"

    @implementation PdfView 

    @synthesize pIndex;


    - (id)initWithFrame:(CGRect)frame
    {
        
    self = [superinitWithFrame:frame];
        if (self) {
           
        }
        return self;
    }

     
    //初始化,可以直接默认开始的页码。
    - (
    void)initPDF:(NSInteger)pageIndex {

        
    if(self != nil
        { 
            
    CFURLRef pdfURL = CFBundleCopyResourceURL(CFBundleGetMainBundle(), CFSTR("test1.pdf"), NULLNULL);
            
    pdf = CGPDFDocumentCreateWithURL((CFURLRef)pdfURL);
            
    pIndex = pageIndex;
            
    CFRelease(pdfURL);
        }
    }

    -(
    NSInteger) getNumberOfPages {
        
    returnCGPDFDocumentGetNumberOfPages(pdf);
    }

    -(void)drawInContext:(CGContextRef)context 

        // PDF page drawing expects a Lower-Left coordinate system, so we flip the coordinate system 
        // before we start drawing. 
        CGContextTranslateCTM(context, 0.0self.bounds.size.height); 
        CGContextScaleCTM(context, 1.0, -1.0); 
        
        // Grab the first PDF page 
        CGPDFPageRef page = CGPDFDocumentGetPage(pdfpIndex); 
        
        // We’re about to modify the context CTM to draw the PDF page where we want it, so save the graphics state in case we want to do more drawing 
        CGContextSaveGState(context); 
        // CGPDFPageGetDrawingTransform provides an easy way to get the transform for a PDF page. It will scale down to fit, including any 
        // base rotations necessary to display the PDF page correctly. 
        CGAffineTransform pdfTransform = CGPDFPageGetDrawingTransform(page, kCGPDFCropBoxself.bounds0true); 
        // And apply the transform. 
        CGContextConcatCTM(context, pdfTransform); 
        // Finally, we draw the page and restore the graphics state for further manipulations! 
        CGContextDrawPDFPage(context, page); 
        CGContextRestoreGState(context); 
    }

    - (void)drawRect:(CGRect)rect { 
        [selfdrawInContext:UIGraphicsGetCurrentContext()]; 
    }

    @end
     
    2、在使用PDF的地方,导入这个类,然后

       PdfView *pdfView = [[PdfViewalloc]initWithFrame:self.view.frame];
        [pdfView initPDF:1];

        [self.viewaddSubview:pdfView];
    这样就可以看到第一页了,如果要实现翻页。就自己实现哈。
  • 相关阅读:
    随机数、无重复、冒泡排序
    今天是星期几
    Button
    2012/8/5为应用指定多个配置文件
    2012/8/4解决JSP显示中文乱码
    2012/8/4 struts2学习笔记
    2012/8/4Action中result的各种转发类型
    2012/8/4为Action属性注入值
    2012/8/3SVN小入门
    2012/8/3 Extjs使用TabPanel时需要注意的问题
  • 原文地址:https://www.cnblogs.com/wuxiufang/p/3422782.html
Copyright © 2020-2023  润新知