0

今、私はこのコードを使用しています。Pdf は生成されていますが、画像が表示されません。

-(void)imagePickerController:(UIImagePickerController *)pickerdidFinishPickingMediaWithInfo:(NSDictionary *)info
{
    NSLog(@"%@",info);    
    //selectedImage =  [info objectForKey:UIImagePickerControllerOriginalImage];        
    UIImage *image=[info objectForKey:UIImagePickerControllerOriginalImage];        
    NSLog(@" selected image is - %@",image);
    imageStr=[NSString stringWithFormat:@"%@",image]; 
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *documentsDirectory = [paths objectAtIndex:0]; 
    NSString *localFilePath=[documentsDirectory stringByAppendingPathComponent:@"images.pdf"];
    NSLog(@"file path is %@",localFilePath);
    [self pdfGenerate:localFilePath];
    UIGraphicsEndPDFContext();
    [imagePicker dismissViewControllerAnimated:YES completion:nil];
}

-(void)pdfGenerate:(NSString *)filepath
{
    UIGraphicsBeginPDFContextToFile(filepath, CGRectZero, nil);
    UIGraphicsBeginPDFPageWithInfo(CGRectMake(0, 0, 300, 300), nil);
    [self convertImageToPdf];
}

-(void)convertImageToPdf
{
    CGRect imagerect=CGRectMake(0, 0, 300, 300);
    NSLog(@"image  is %@",imageStr);
    UIImage *image=[UIImage imageNamed:imageStr];
    [image drawInRect:imagerect];
}
4

1 に答える 1

0

選択した画像を NSString オブジェクトに保存していますimageStr (imageStr=[NSString stringWithFormat:@"%@",image];)

したがって、convertImageToPdfメソッド内で画像を作成する場合 (UIImage *image=[UIImage imageNamed:imageStr];)、画像オブジェクトはnil. そのため、pdfは空白です。

代わりに、ピッカーから選択した画像への UIImage 参照を持つことができます。内部でその参照を使用しconvertImageToPdfて描画します。

コードを更新します。

中身didFinishPickingMediaWithInfo

pickedImage=[info objectForKey:UIImagePickerControllerOriginalImage];        

中身convertImageToPdf

CGRect imagerect=CGRectMake(0, 0, 300, 300);
[pickedImage drawInRect:imagerect];

pickedImageタイプ UIImage のオブジェクトです。

于 2013-09-05T06:35:22.757 に答える