2012-02-15 39 views
0

這裏我需要通過一個頁面中的一些動態內容生成PDF文件,下一頁包含圖像,但我的代碼生成爲一個頁面,你可以幫助我用iPhone中的靜態內容和圖像生成PDF

此畫文本方法用於產生所述動態內容

- (void) drawText 
    { 
     CGContextRef currentContext = UIGraphicsGetCurrentContext(); 
     CGContextSetRGBFillColor(currentContext, 0.0, 0.0, 0.0, 1.0); 

     NSString *textToDraw=[[NSString alloc] initWithString:@""]; 
     for (int i=0; i<[fieldsArr count]; i++) 
     { 
      textToDraw=[textToDraw stringByAppendingFormat:[NSString stringWithFormat:@"%@\t%@\n",[fieldsArr objectAtIndex:i],[valuesArr objectAtIndex:i]]]; 
     } 


     textToDraw=[textToDraw stringByAppendingFormat:@"\n\n\n\n\n\n"]; 
     UIFont *font = [UIFont systemFontOfSize:14.0]; 

     CGSize stringSize = [textToDraw sizeWithFont:font 
            constrainedToSize:CGSizeMake(pageSize.width - 2*kBorderInset-2*kMarginInset, pageSize.height - 2*kBorderInset - 2*kMarginInset) 
             lineBreakMode:UILineBreakModeWordWrap]; 

     CGRect renderingRect = CGRectMake(kBorderInset + kMarginInset, kBorderInset + kMarginInset + 50.0, pageSize.width - 2*kBorderInset - 2*kMarginInset, stringSize.height); 

     [textToDraw drawInRect:renderingRect 
         withFont:font 
       lineBreakMode:UILineBreakModeWordWrap 
        alignment:UITextAlignmentLeft]; 
    } 

此方法被用於繪製的圖像

- (void) drawImage 
    { 
     NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
     NSString *documentsDirectory = [paths objectAtIndex:0];  
     NSString *getImagePath = [documentsDirectory stringByAppendingPathComponent:@"displayImage.jpg"]; 
     UIImage * demoImage = [UIImage imageWithContentsOfFile:getImagePath]; 
     [demoImage drawInRect:CGRectMake((pageSize.width - demoImage.size.width/2)/2, 500, demoImage.size.width/2, demoImage.size.height/2)]; 
    } 

此方法是用於基因評級PDF文件

- (void) generatePdfWithFilePath: (NSString *)thefilePath 
    { 
     UIGraphicsBeginPDFContextToFile(thefilePath, CGRectZero, nil); 

     NSInteger currentPage = 0; 
     BOOL done = NO; 
     do 
     { 
      //Start a new page. 
      UIGraphicsBeginPDFPageWithInfo(CGRectMake(0, 0, pageSize.width, pageSize.height), nil); 

      //Draw a page number at the bottom of each page. 

      //Draw some text for the page. 
      [self drawText]; 

      //Draw an image 
      [self drawImage]; 
      done = YES; 
     } 
     while (!done); 

     // Close the PDF context and write the contents out. 
     UIGraphicsEndPDFContext(); 
    } 

請幫我在

回答

0

不同的頁面文字和圖像分開檢查的內容你正在寫的類型,如果它屬於的ImageView然後開始一個新的PDF頁面。

0

當你想畫image.Here是更改代碼,添加一個新的頁面,在此我添加了新的一頁繪製圖像之前

- (void) generatePdfWithFilePath: (NSString *)thefilePath 
    { 
     UIGraphicsBeginPDFContextToFile(thefilePath, CGRectZero, nil); 

     NSInteger currentPage = 0; 
     BOOL done = NO; 
     do 
     { 
      //Start a new page. 
      UIGraphicsBeginPDFPageWithInfo(CGRectMake(0, 0, pageSize.width, pageSize.height), nil); 

      //Draw a page number at the bottom of each page. 

      //Draw some text for the page. 
      [self drawText]; 

      //Again start a new page to Draw an image 

      UIGraphicsBeginPDFPageWithInfo(CGRectMake(0, 0, pageSize.width, pageSize.height), nil); 


      [self drawImage]; 
      done = YES; 
     } 
     while (!done); 

     // Close the PDF context and write the contents out. 
     UIGraphicsEndPDFContext(); 
    }