【问题标题】:View PDF file converted to BLOB image in UIImage or UIScroller在 UIImage 或 UIScroller 中查看转换为 BLOB 图像的 PDF 文件
【发布时间】: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 图像。我哪里出错了。 我必须使用任何其他属性,否则这是不可能的。

【问题讨论】:

    标签: ios objective-c ipad


    【解决方案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 如果您将其保存到磁盘
    • 好吧,我为什么要这样做,因为我只在 stackoverflow 上阅读它应该是可能的,因为最终它是一个 BLOB 文件。但没有提及其他内容。如果这根本不可能,请给我打电话给我 UIWebView 示例。到目前为止,我正在尝试获取任何此类控制的示例。或任何我可以用于我的 TASk 的控件。
    • 好吧,我为什么要这样做,因为我只在 stackoverflow 上阅读它应该是可能的,因为最终它是一个 BLOB 文件。但没有提及其他内容。如果这根本不可能,请给我打电话给我 UIWebView 示例。到目前为止,我正在尝试获取任何此类控制的示例。或我可以用于我的 TASk 的任何控件。 self.webView 我必须像其他控制器一样声明和初始化 ....only 或我需要添加的任何特定平台...我的 BLOB 图像我作为字符串保存在 NEMutableArray 中。我必须保存其他地方吗。
    • 抱歉,回答时间长,我有很多工作要做。如何将某种类型的文件加载到 UIWebView 中,您可以查看 [这里][1]。关于保存到其他地方 - 我认为你应该这样做,因为我不知道如何在不保存的情况下加载它。你可以使用 NSTemporaryDirectory [1]:developer.apple.com/library/ios/qa/qa1630/_index.html
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-31
    • 2015-10-16
    • 2016-10-30
    相关资源
    最近更新 更多