【问题标题】:Generating PDF with Static content and image in iPhone在 iPhone 中生成带有静态内容和图像的 PDF
【发布时间】:2012-02-15 06:46:00
【问题描述】:

这里我需要通过其中一个页面中的一些动态内容生成 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();
    }

请帮助我将不同页面中的文本和图像分开

【问题讨论】:

    标签: iphone objective-c pdf-generation


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      要绘制图像时添加一个新页面。这里是更改代码,在此我在绘制图像之前添加了新页面

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-09-24
        • 1970-01-01
        • 2012-01-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多