2017-02-22 211 views
0

我将每个PPT幻灯片转换为图像并从它们创建PDF。图像使用原始尺寸正确创建。现在创建PDF,我使用下面的代码。使用原始尺寸的图像创建A4尺寸纸张的PDF

CGSize paperSize = CGSizeMake(595.2,841.8); 

    NSString *strPath = [[documentsPaths objectAtIndex:0] stringByAppendingPathComponent:[NSString stringWithFormat:@"slide%i.png", i]]; 
    NSData *imgData = [[NSData alloc] initWithContentsOfURL:[NSURL fileURLWithPath:strPath]]; 

    UIImage *image = [[UIImage alloc] initWithData:imgData]; 
    CGRect rect = CGRectMake(0, 0,paperSize.width ,paperSize.height); 
UIGraphicsBeginPDFPageWithInfo(rect, nil); 
       [image drawInRect:rect]; 

UIGraphicsEndPDFContext(); 

它究竟是用纸张尺寸绘制图像而不是原始尺寸。我想在A4尺寸的纸张上绘制原始尺寸的图像。任何帮助将不胜感激。

+1

您通过复印纸尺寸图像绘制检查这一行[图片drawInRect:RECT]所以通过原来的大小,当抽签PDF –

+0

因此,它创建的PDF与图像的大小。 –

+1

@kirtimali:你说得对。通过A4大小直到工作。非常感谢。加一。在回答中发布我的工作代码。 –

回答

0

Kriti的建议为我工作。下面是工作代码:

UIGraphicsBeginPDFContextToData(pdfFile, CGRectMake(0, 0, kPaperSizeA4.width, kPaperSizeA4.height), nil); 

NSString *strPath = [[[appDelegate getDocumentDirectory] stringByAppendingPathComponent:@"EPC"] stringByAppendingPathComponent:[NSString stringWithFormat:@"slide%i.png", i]];   

NSData *imgData = [[NSData alloc] initWithContentsOfURL:[NSURL fileURLWithPath:strPath]]; 

image = [[UIImage alloc] initWithData:imgData]; 
    rect = CGRectMake((paperSize.width - image.size.width)/2, (paperSize.height - image.size.height)/2 ,image.size.width ,image.size.height); 

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

[image drawInRect:rect]; 


UIGraphicsEndPDFContext();