【问题标题】:Convert Screenshot to PDF in Xcode?在 Xcode 中将屏幕截图转换为 PDF?
【发布时间】:2012-03-02 16:36:15
【问题描述】:

如何将例如在 iPhone 上拍摄的屏幕截图转换为 PDF 文件。截取屏幕截图并将其放入 UIImage 很容易,但让我难倒的是转换。我查看了 Quartz 框架,它是 Xcode 中我知道的唯一支持 PDF 格式的框架,但在那里找不到任何东西来完成这项工作。有什么我缺少的 Xcode 原生的东西吗?如果没有,是否有一个公共框架可以处理这样的转换?

【问题讨论】:

  • 您想要一个只是图像的 PDF 吗?
  • 基本上,是的。这至少是第一步。我基本上想设计一个按钮来捕获当前屏幕,将其转换为 PDF,然后从那里做更多的事情。这只是我不确定的转换本身。
  • 我认为这样做的方法是使用 CGPDFContext.h 中的函数创建一个新的 Core Graphics 上下文,然后在该上下文中渲染图像,然后关闭上下文。但我不知道下一步该做什么,也没有时间搜索更多内容,抱歉。

标签: iphone xcode pdf frameworks image-conversion


【解决方案1】:

我想通了。它涉及将屏幕截图保存为 UIImage,然后使用找到的非常有用的教程 here 让我进行 PDF 转换。事实证明,Core Graphics 类中有一些函数可以处理 PDF 文档的制作。

【讨论】:

  • 您能否提供更新的链接,因为您发布的链接已不存在?
【解决方案2】:

您不会将屏幕截图转换为 pdf。您将创建一个屏幕截图,创建一个 pdf 并将屏幕截图图像插入 pdf 的第一页。

创建图像的未经测试的代码:

nameStr = [NSString stringWithFormat:@"myImage.png"];
fileManager = [NSFileManager defaultManager];
paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
documentsDirectory = [paths objectAtIndex:0];
namePath = [documentsDirectory stringByAppendingString:@"/"];
namePath = [thumbnailPath nameStr];

CGRect contextRect  = CGRectMake(0, 0, 1024, 768);
UIGraphicsBeginImageContext(contextRect.size);  
[self.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

NSData *data = UIImagePNGRepresentation(viewImage);
UIImage *myImage    = [[UIImage alloc] initWithData:data];

将图像添加到 pdf 的未经测试的代码:

pageSize = CGSizeMake(1024, 768);
fileName = @"myFile.pdf";
pdfFileName = [documentsDirectory stringByAppendingPathComponent:fileName];

UIGraphicsBeginPDFContextToFile(pdfFileName, CGRectZero, nil);
UIGraphicsBeginPDFPageWithInfo(CGRectMake(0, 0, pageSize.width, pageSize.height), nil);

[myImage drawInRect:CGRectMake( 0, 0, 1024, 768];
UIGraphicsEndPDFContext();

附言假设 ipad 1024 x 768 以上

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-04-18
    • 1970-01-01
    • 2020-01-23
    • 1970-01-01
    • 2019-12-03
    • 2019-05-19
    • 1970-01-01
    • 2011-07-20
    相关资源
    最近更新 更多