• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Khan's Notebook GCC/GNU/Linux Delphi/Window Java/Anywhere

            路漫漫,長修遠,我們不能沒有錢
            隨筆 - 173, 文章 - 0, 評論 - 257, 引用 - 0
            數據加載中……

            IOS 繪制PDF


             1 -(void)createPdf:(UIImage *)img andText:(NSString *)text{
             2     NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
             3     NSString *saveDirectory = [paths objectAtIndex:0];
             4     NSString *saveFileName = @"myPDF.pdf";
             5     NSString *newFilePath = [saveDirectory stringByAppendingPathComponent:saveFileName];
             6     const char *filename = [newFilePath UTF8String];
             7     CGRect pageRect = CGRectMake(0, 0, 612, 792);
             8     // This code block sets up our PDF Context so that we can draw to it
             9     
            10     
            11     CGContextRef pdfContext;
            12     CFStringRef path;
            13     CFURLRef url;
            14     CFMutableDictionaryRef myDictionary = NULL;
            15     // Create a CFString from the filename we provide to this method when we call it
            16     path = CFStringCreateWithCString (NULL, filename, kCFStringEncodingUTF8);
            17     // Create a CFURL using the CFString we just defined
            18     url = CFURLCreateWithFileSystemPath (NULL, path, kCFURLPOSIXPathStyle, 0);
            19     CFRelease (path);
            20     // This dictionary contains extra options mostly for ‘signing’ the PDF
            21     myDictionary = CFDictionaryCreateMutable(NULL, 0, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks);
            22     CFDictionarySetValue(myDictionary, kCGPDFContextTitle, CFSTR("My PDF File"));
            23     CFDictionarySetValue(myDictionary, kCGPDFContextCreator, CFSTR("My Name"));
            24     // Create our PDF Context with the CFURL, the CGRect we provide, and the above defined dictionary
            25     pdfContext = CGPDFContextCreateWithURL (url, &pageRect, myDictionary);
            26     // Cleanup our mess
            27     CFRelease(myDictionary);
            28     CFRelease(url);
            29 
            30     // Done creating our PDF Context, now it’s time to draw to it
            31     // Starts our first page
            32     CGContextBeginPage (pdfContext, &pageRect);
            33     
            34     UIImage* myUIImage = img;
            35     CGImageRef pageImage = [myUIImage CGImage];
            36     CGContextDrawImage(pdfContext, CGRectMake(0,0,([myUIImage size].width) , ([myUIImage size].height)), pageImage); //繪制圖片
            37     // Draws a black rectangle around the page inset by 50 on all sides
            38 //    CGContextStrokeRect(pdfContext, CGRectMake(50, 50, pageRect.size.width - 100, pageRect.size.height - 100));
            39     
            40     // Adding some text on top of the image we just added
            41 //    CGContextSelectFont (pdfContext, "Helvetica", 30, kCGEncodingMacRoman);
            42     CGContextSetTextDrawingMode (pdfContext, kCGTextFill);
            43     CGContextSetRGBFillColor (pdfContext, 0, 0, 0, 1);
            44 
            45     
            46 
            47     UIGraphicsPushContext(pdfContext);  //將需要繪制的層push
            48     CGContextTranslateCTM(pdfContext, 0, 792);  //轉換Y軸坐標,  底層坐標與cocoa 組件不同 Y軸相反
            49     CGContextScaleCTM(pdfContext, 1, -1);
            50     
            51 //    CGContextShowTextAtPoint (pdfContext, 260, 390, [text UTF8String], strlen([text UTF8String])); //漢字不正常
            52 
            53     [text drawAtPoint:CGPointMake(80, 80) withFont:[UIFont systemFontOfSize:18]];  //繪制漢字
            54 
            55 //    UIFont *font = [UIFont systemFontOfSize:15 ]; //自定義字體
            56 //    CGContextSetFillColorWithColor(pdfContext, [UIColor blackColor].CGColor); //顏色
            57 //    [text drawAtPoint:CGPointMake(260,390) forWidth:50 withFont:font minFontSize:8 actualFontSize:NULL lineBreakMode:UILineBreakModeTailTruncation baselineAdjustment:UIBaselineAdjustmentAlignCenters];
            58     
            59     UIGraphicsPopContext(); 
            60     
            61     
            62     CGContextStrokePath(pdfContext);
            63     
            64     // End text
            65     // We are done drawing to this page, let’s end it
            66     // We could add as many pages as we wanted using CGContextBeginPage/CGContextEndPage
            67     CGContextEndPage (pdfContext);
            68     // We are done with our context now, so we release it
            69     CGContextRelease (pdfContext);
            70 }


            1 - (void)viewDidLoad
            2 {
            3     [super viewDidLoad];
            4     // Do any additional setup after loading the view, typically from a nib.
            5     
            6     //調用方法
            7     [self createPdf:[UIImage imageNamed:@"aa"] andText:@"漢字"];
            8  
            9 }


            沒注釋掉的代碼 每一行都有其意義. 注意步驟, 仔細閱讀注釋

            posted on 2013-03-18 23:10 Khan 閱讀(3653) 評論(0)  編輯 收藏 引用 所屬分類: GCC/G++跨平臺開發

            国产一久久香蕉国产线看观看 | 婷婷久久综合| 亚洲精品NV久久久久久久久久| 狠狠色噜噜色狠狠狠综合久久| 久久综合久久自在自线精品自 | 久久Av无码精品人妻系列| MM131亚洲国产美女久久| 欧洲性大片xxxxx久久久| 亚洲成色WWW久久网站| 久久精品这里热有精品| 精品久久久久久久久免费影院| 国产精品一久久香蕉国产线看| 亚洲午夜福利精品久久| 97精品国产97久久久久久免费| 国内精品久久久久国产盗摄| 久久人人爽人人爽人人AV东京热| 久久se这里只有精品| 波多野结衣中文字幕久久 | 国产精品久久久久AV福利动漫| 久久99国产精品成人欧美| 久久久久亚洲av无码专区喷水| 中文精品99久久国产| 国产—久久香蕉国产线看观看| 国产成人久久激情91| 亚洲精品乱码久久久久久按摩 | 久久精品国产亚洲AV无码娇色| 亚洲精品无码久久不卡| 久久91这里精品国产2020| 国内精品久久久久影院免费| 久久久无码一区二区三区 | 久久久久国产日韩精品网站| 久久亚洲AV成人无码电影| 亚洲va久久久噜噜噜久久天堂| 亚洲一区精品伊人久久伊人| 久久天天躁狠狠躁夜夜av浪潮| 国产福利电影一区二区三区久久久久成人精品综合 | 大香网伊人久久综合网2020| 久久国产精品久久精品国产| 91精品国产高清91久久久久久| 久久精品国产99久久久| 69SEX久久精品国产麻豆|