在 UIImage 或 UIScroller 中查看转换为 BLOB 图像的 PDF 文件

Posted

技术标签:

【中文标题】在 UIImage 或 UIScroller 中查看转换为 BLOB 图像的 PDF 文件【英文标题】:View PDF file converted to BLOB image in UIImage or UIScroller 【发布时间】:2013-10-22 07:32:42 【问题描述】:

我的应用程序要求是查看从 IPAD 上传的文档。 我正在以 BLOB 图像的形式从数据库导入文档并将其传递给 IPAD,并使用下面的代码我可以查看图像。

NSString *strImage; // String has BLOB image from DB

NSData *imageData = [self dataFromBase64EncodedString:strImage];

UIImage *image = [UIImage imageWithData:imageData];

UIImageView *m_oImageViewer = [[UIImageView alloc]init];

m_oImageViewer.image = image;
m_oImageViewer.frame=CGRectMake((self.view.frame.size.width/2)- 250,60,500,500);
[self.view addSubview:m_oImageViewer];


-(NSData *)dataFromBase64EncodedString:(NSString *)string
if (string.length > 0) 

     NSString *data64URLString = [NSString stringWithFormat:@"data:;base64,%@", string];
    NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:data64URLString]];
    return data;

return nil;

如果 PDF 文件转换为 BLOB,为什么我得到的图像为零,因为我可以看到 BLOB 很常见,所以为什么即使在转换为 BLOB 之后我也只能看到 .png 文件而不是 PDF 文件。 我阅读了 UIImage 的支持文档,它没有提供 PDF 文件,但我提供的是 BLOB 图像。我哪里出错了。 我必须使用任何其他属性,否则这是不可能的。

【问题讨论】:

【参考方案1】:

PDF 不是图像格式,它类似于包含文本、字体、矢量和光栅图像等的容器,因此您无法将其转换为 UIImage,但 UIWebView 可以显示 pdf(以及许多其他格式)。我认为,您应该将 pdf BLOB 保存到临时文件夹,然后在 UIWebView 中显示它,例如:

    [pdfData writeToFile:tempFilePath atomically:YES];
    NSURL *url = [NSURL fileURLWithPath:tempFilePath];
    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    [self.webView  loadRequest:request];

【讨论】:

好的,但是我的 PDF 文件正在存储过程中转换为 BLOB 图像,这并不意味着它会给出一种我可以在 iPAD 中解码的特定格式。因为 .png 也是 BLOB,PDF 文件也是 BLOB。 我想从 NSData 到 UIImage 的转换意味着 png 文件(或 jpeg)只加载到 NSData 没有任何其他编码,所以 pdf 文件以相同的方式加载,它可以被读取为pdf 如果您将其保存到磁盘 好吧,我为什么要这样做,因为我只在 *** 上阅读它应该是可能的,因为最终它是一个 BLOB 文件。但没有提及其他内容。如果这根本不可能,请给我打电话给我 UIWebView 示例。到目前为止,我正在尝试获取任何此类控制的示例。或任何我可以用于我的 TASk 的控件。 好吧,我为什么要这样做,因为我只在 *** 上阅读它应该是可能的,因为最终它是一个 BLOB 文件。但没有提及其他内容。如果这根本不可能,请给我打电话给我 UIWebView 示例。到目前为止,我正在尝试获取任何此类控制的示例。或我可以用于我的 TASk 的任何控件。 self.webView 我必须像其他控制器一样声明和初始化 ....only 或我需要添加的任何特定平台...我的 BLOB 图像我作为字符串保存在 NEMutableArray 中。我必须保存其他地方吗。 抱歉,回答时间长,我有很多工作要做。如何将某种类型的文件加载到 UIWebView 中,您可以查看 [这里][1]。关于保存到其他地方 - 我认为你应该这样做,因为我不知道如何在不保存的情况下加载它。你可以使用 NSTemporaryDirectory [1]:developer.apple.com/library/ios/qa/qa1630/_index.html

以上是关于在 UIImage 或 UIScroller 中查看转换为 BLOB 图像的 PDF 文件的主要内容,如果未能解决你的问题,请参考以下文章

[转]mysql 从一个表中查数据并插入另一个表实现方法

如何在滚动视图中使 UIImage 低于 UILabel 或 UITextView

使用普通的 CALayer 显示图像或 UIImage

UIImage 或 UIImageView 带有分页和点击缩放

如何保存 UIImage 或 UIImageView 的状态?

在 AspectFit 之后获取 UIImage 的维度或 CGRect