【问题标题】:Generate a PDF (with text & images) from a plist file, can it be done?从 plist 文件生成 PDF(带有文本和图像),可以完成吗?
【发布时间】:2011-05-26 21:35:46
【问题描述】:

背景:

我的应用程序将用户输入的信息保存到 plist 文件中。当拍摄照片或从库中选择照片时,照片也会作为 NSData 保存到 plist 中。

我想获取 plist 文件中包含的信息并生成一个 PDF 文档,包括来自 NSData 的图像。

问题:

我听说有一种从 UIView 生成 PDF 的方法,有没有一个很好的例子,或者无需编写 1000 行基于 C 的代码的简单方法?

是否可以在 Interface Builder 中设计一个视图,然后使用一些魔术代码从该视图生成 PDF,使用 plist 文件中的数据?

【问题讨论】:

    标签: iphone ios pdf uiview quartz-graphics


    【解决方案1】:

    要生成 PDF,您必须实际绘制整个 PDF,将图形和文本放置在每一页的准确位置。 Apple 的 Drawing and Printing Guide 解释了如何去做。

    不幸的是,这并不容易,而且我不知道任何可以从视图生成 PDF 的魔术代码。

    【讨论】:

      【解决方案2】:

      这里有一些“魔法代码”(引用@Matt ;-),它将视图层次结构写入 PDF:

      #import <QuartzCore/CALayer.h>
      
      UIView *displayView = self.view;
      CALayer *layer = displayView.layer;
      CGRect pageRect = displayView.bounds;
      if (UIGraphicsBeginPDFContextToFile(path, pageRect, [self pdfContextDictionary]) == NO) {
        return nil; // error
      }
      
      UIGraphicsBeginPDFPage();
      CGContextRef context = UIGraphicsGetCurrentContext();
      [layer renderInContext:context];
      UIGraphicsEndPDFContext();  
      

      不幸的是,它在屏幕分辨率下这样做, 你可以创建一个大于屏幕的版本,然后它会是一个更好的分辨率,

      对于漂亮、漂亮(但令人痛苦)的 PDF,请参阅上述参考指南

      【讨论】:

      • 保存为 PDF 的 UIView 可见部分的屏幕截图并不是几乎任何人都想要的 PDF。
      猜你喜欢
      • 1970-01-01
      • 2012-01-18
      • 2012-07-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-09
      相关资源
      最近更新 更多