简体   繁体   中英

Generating PDF with Static content and image in iPhone

Here i need to generate the pdf file by some dynamic content in one of the page and the next page contains the image but my code is generating as a single page could you help me

This draw text method is used for generating the dynamic content

 - (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];
    }

This Method is used for drawn the image

 - (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)];
    }

This Method is used for generating the pdf file

 - (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();
    }

pls help me to separate the text and image in different pages

Add a new page when you want to draw image.Here is change the code, in this i have added new page before image is drawn

- (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();
    }

检查所写内容的类型,如果它属于imageView,则启动一个新的pdf页面。

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM