3

我收到一个二进制 pdf 文件,它是 base64Binary 编码的。如何将其转换回 iPhone 上?我可以使用哪些工具包?

谢谢。

4

7 回答 7

4

解决了:

NSData theData = [NSData dataWithData:[GTMBase64 decodeString:theBinary]]; //first transfer it to NSData.

[m_oTestingWeb loadData:theData
               MIMEType:@"application/pdf"
       textEncodingName:@"UTF-8"
                baseURL:nil];                   //using the web view to show it back
于 2011-11-15T08:56:45.823 回答
4

解决方案

NSString *binaryString = [myDict objectForKey:@"key"];
NSData* myData = [NSData dataFromBase64String: binaryString];
NSLog(@" %@",datas);
[self savePDF:myData];

保存PDF是这样的

- (void)savePDF:(NSData *)pdfContent
{
 NSArray *paths = NSSearchPathForDirectoriesInDomains( NSDocumentDirectory, NSUserDomainMask ,YES );
 NSString *documentsDirectory = [paths objectAtIndex:0];

 NSString *finalPath = [documentsDirectory stringByAppendingPathComponent:@"myPdf.pdf"];
 NSLog(@"%@",finalPath);
 NSURL *url = [NSURL fileURLWithPath:finalPath];
 [pdfContent writeToURL:url atomically:YES];

//    [aWebView loadRequest:[NSURLRequest requestWithURL:url]];
}

在此处获取标题

于 2012-02-10T10:33:15.933 回答
1

如果你用“二进制”这个词来表示 NSData,那么你可以按照以下方法。

我认为如果二进制数据已经是 PDF 格式,那么我们可以使用普通NSData方法将writeToFile:atomically其写入文件。

[<NSDataObject> writeToFile:<FilePath> atomically:YES];

然后您可以使用DocInteraction打开并显示 PDF 文件。

希望这对您有所帮助。

于 2011-11-15T08:05:13.990 回答
1

要将二进制(base64 pdf 字符串)转换为 pdf 并显示它,您可以为 Swift 3 执行此操作:

// Here you convert the binary base 64 pdf string to pdf
let pdfData = Data(base64Encoded: theBase64PDFString, options: .ignoreUnknownCharacters)

// here you can display the pdf on a UIWebView
webView.load(pdfData!,
             mimeType: "application/pdf",
             textEncodingName: "UTF-8",
             baseURL: URL(fileURLWithPath: ""))
于 2016-12-01T22:51:46.227 回答
0

要显示 PDF,您只需使用 aUIWebView并将其输入 PDF即可。如果您希望它更复杂一点,请查看Apple 的 ZoomingPDFViewer 示例代码(在另一个问题的答案中找到)。

于 2011-11-15T08:15:12.947 回答
0

访问此站点base64 编码。在这里,您将获得将 base64 数据解码为 NSData 的代码。使用该数据,您可以保存 pdf,使用 UIWebView 或使用 Quartz Core 查看 pdf。

于 2012-02-10T10:57:41.620 回答
0

将二进制文件转换为 PDF 文件

@IBOutlet var pdfView: PDFView!

guard
    var fileURL = (FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)).last,
    let convertedData = Data(base64Encoded: data.base64EncodedData()) // data is the binary pdf 
    else {
    // handle error when getting documents URL
    return
}

fileURL.appendPathComponent("filename.pdf")

do {
    try convertedData.write(to: documentsURL)
} catch {
    // handle write error
}

奖励:在不弃用 UIWebView API 的情况下查看 PDF

let pdfView = PDFView(frame: self.view.bounds)
self.view.addSubview(pdfView)
// Fit content in PDFView.
pdfView.autoScales = true
pdfView.document = PDFDocument(url: fileURL)
                

也许有点晚了,但我希望它至少可以帮助别人。

于 2020-09-09T14:17:39.983 回答