将UIImage转换为PDF文件

时间:2010-03-15 05:45:27

标签: iphone

我试图在PDF文件中保存UIImage。 我怎样才能做到这一点?我将如何保存并成像为pdf文件然后导出该pdf文件? 请为我面临的问题提出解决方案。

谢谢。

4 个答案:

答案 0 :(得分:15)

你好,我发现这个有效, 希望能帮助到你!

-(void)createPDFfromUIView:(UIView*)aView saveToDocumentsWithFileName:(NSString*)aFilename
    {
        // Creates a mutable data object for updating with binary data, like a byte array
        NSMutableData *pdfData = [NSMutableData data];

        // Points the pdf converter to the mutable data object and to the UIView to be converted
        UIGraphicsBeginPDFContextToData(pdfData, aView.bounds, nil);
        UIGraphicsBeginPDFPage();

        // draws rect to the view and thus this is captured by UIGraphicsBeginPDFContextToData
        [aView.layer renderInContext:UIGraphicsGetCurrentContext()];

        // remove PDF rendering context
        UIGraphicsEndPDFContext();

        // Retrieves the document directories from the iOS device
        NSArray* documentDirectories = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask,YES);

        NSString* documentDirectory = [documentDirectories objectAtIndex:0];
        NSString* documentDirectoryFilename = [documentDirectory stringByAppendingPathComponent:aFilename];

        // instructs the mutable data object to write its context to a file on disk
        [pdfData writeToFile:documentDirectoryFilename atomically:YES];
        NSLog(@"documentDirectoryFileName: %@",documentDirectoryFilename);
    }

答案 1 :(得分:3)

我的理解是你创建了一个CGPDFContext,将你的UIImage绘制到它中,并将其保存到文件中。但是,我自己并没有这样做。

答案 2 :(得分:0)

我也得到了一个空白的pdf。但现在工作了。尝试更改:

//[aView drawRect:aView.bounds]; // <- This

[aView.layer renderInContext:UIGraphicsGetCurrentContext()]; // <- To This

答案 3 :(得分:-1)

您可以使用以下命令启动pdf图形上下文,然后将图像绘制到其中:

[UIImage drawInRect: someRect];

您可以查看文档,它们可以很好地解释生成pdf。 pdf生成here有一个很好的教程。