我收到一个二进制pdf文件,它是base64Binary,如何在iPhone上将其转换回来?我可以使用哪些工具包?谢谢。
答案 0 :(得分: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]];
}
获取标题here.
答案 1 :(得分:3)
解决:
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
答案 2 :(得分:1)
如果你的意思是“二进制”这个词,那么你可以按照以下方法。
我认为如果二进制数据已经是PDF格式,那么我们可以使用普通NSData
方法将writeToFile:atomically
写入文件。
[<NSDataObject> writeToFile:<FilePath> atomically:YES];
然后您可以使用DocInteraction打开并显示PDF文件。
希望这会对你有所帮助。
答案 3 :(得分:0)
要显示PDF,您只需use a UIWebView
and feed it the PDF即可。如果您希望它更复杂一点,请查看Apple's ZoomingPDFViewer sample code(在an answer to another question中找到一个)。
答案 4 :(得分:0)
访问此网站base64 encoding。在这里,您将获得将base64数据解码为NSData的代码。使用该数据,您可以使用UIWebView或使用Quartz Core来保存pdf,查看pdf。
答案 5 :(得分:0)
要将二进制文件(base64 pdf string)转换为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: ""))
答案 6 :(得分: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)
也许有点晚了,但我希望它至少可以对其他人有所帮助。