iOS 解決展示PDF電子簽章不顯示問題

項(xiàng)目中要顯示PDF協(xié)議,文件里面有電子簽章讼庇,原本用的WKWebView直接把PDF文件的URL扔過去就好了,覺得很方便近尚,后來才發(fā)現(xiàn)蠕啄,紅紅的印章沒出來。在網(wǎng)上找了很多資料戈锻,最終選擇QLPreviewController歼跟,實(shí)現(xiàn)分為兩步:

1.下載PDF文件保存在本地

2.用QLPreviewController打開

主要代碼:

-(void)loadPdfResource:(NSString *)url{
    NSURL *Url =  [NSURL URLWithString:[url stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
    pdfFilePath = [self getFullPathWithLastPathComponent:Url.lastPathComponent];
    NSFileManager *fileManager = [NSFileManager defaultManager];
   
    if(![fileManager fileExistsAtPath:pdfFilePath])
    {
//          下載pdf數(shù)據(jù)
//            [SVProgressHUD showWithStatus:@"loading..."];
        self.pdfData=[[NSMutableData alloc]init];
        NSURLSessionConfiguration *config =[NSURLSessionConfiguration defaultSessionConfiguration];
        NSURLSession *session = [NSURLSession sessionWithConfiguration:config delegate:self delegateQueue:[NSOperationQueue mainQueue]];
        NSURLSessionDataTask *task = [session dataTaskWithURL:Url];
        [task resume];
    }else{
        // NSLog(@"文件存在");
        [self pushQLPreviewController];
    }

}


-(void)URLSession:(NSURLSession *)session dataTask:(NSURLSessionDataTask *)dataTask
didReceiveResponse:(NSURLResponse *)response
completionHandler:(void (^)(NSURLSessionResponseDisposition disposition))completionHandler{
    //允許繼續(xù)響應(yīng)
    completionHandler(NSURLSessionResponseAllow);
    //獲取文件的總大小
    // NSInteger totalLength = response.expectedContentLength;
}

#pragma mark  --- 接收到數(shù)據(jù)調(diào)用

-(void)URLSession:(NSURLSession *)session dataTask:(NSURLSessionDataTask *)dataTask
   didReceiveData:(NSData *)data
{
    
    //將每次接受到的數(shù)據(jù)拼接起來
    [self.pdfData  appendData:data];
    //計(jì)算當(dāng)前下載的長度
    //  NSInteger nowlength = self.pdfData .length;
    //  CGFloat value = nowlength1.0/self.totalLength;
}

#pragma mark ---下載完成調(diào)用


-(void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task
didCompleteWithError:(nullable NSError *)error{
    NSLog(@"self.pdfData:\n%@",self.pdfData);
//    NSString  *filename =[self getFullPath];
    [self.pdfData writeToFile:pdfFilePath atomically:YES];
    //    [SVProgressHUD dismiss];
    if (self.pdfData) {
        NSLog(@"OK");
        [self showPDFWebView:pdfFilePath];
    }else{
        NSLog(@"Sorry");
    }

    
}

#pragma mark --- 返回加載文件個(gè)數(shù)
- (NSInteger)numberOfPreviewItemsInPreviewController:(QLPreviewController *)controller {
    return 1;
}
#pragma mark --- 返回加載路徑
- (id <QLPreviewItem>)previewController:(QLPreviewController *)controller previewItemAtIndex:(NSInteger)index {
    return  [NSURL fileURLWithPath:pdfFilePath]; 
}
-(void)showPDFWebView:(NSString *)filename{
    NSFileManager *fileManager = [NSFileManager defaultManager];
    if(![fileManager fileExistsAtPath:pdfFilePath])
    {
        NSLog(@"文件不存在");
    }else{
        NSLog(@"文件存在");
        [self pushQLPreviewController];
    }
    
}

-(void)pushQLPreviewController{
    
    UINavigationController *root = (UINavigationController *)[[[UIApplication sharedApplication] keyWindow] rootViewController];
    [root pushViewController:self.QLPVC animated:YES];
    
}

- (NSString *)getFullPathWithLastPathComponent:(NSString *)lastPathComponent
{
    NSString *path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).firstObject;
   
    path = [NSString stringWithFormat:@"%@/%@",path,@"借款協(xié)議.pdf"];
    NSLog(@"filePath:%@",path);
    
   return  path;
}

歡迎指正,Demo地址gitHub

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末格遭,一起剝皮案震驚了整個(gè)濱河市哈街,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌拒迅,老刑警劉巖骚秦,帶你破解...
    沈念sama閱讀 219,427評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異璧微,居然都是意外死亡作箍,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,551評論 3 395
  • 文/潘曉璐 我一進(jìn)店門前硫,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蒙揣,“玉大人,你說我怎么就攤上這事开瞭±琳穑” “怎么了?”我有些...
    開封第一講書人閱讀 165,747評論 0 356
  • 文/不壞的土叔 我叫張陵嗤详,是天一觀的道長个扰。 經(jīng)常有香客問我,道長葱色,這世上最難降的妖魔是什么递宅? 我笑而不...
    開封第一講書人閱讀 58,939評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上办龄,老公的妹妹穿的比我還像新娘烘绽。我一直安慰自己,他們只是感情好俐填,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,955評論 6 392
  • 文/花漫 我一把揭開白布安接。 她就那樣靜靜地躺著,像睡著了一般英融。 火紅的嫁衣襯著肌膚如雪盏檐。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,737評論 1 305
  • 那天驶悟,我揣著相機(jī)與錄音胡野,去河邊找鬼。 笑死痕鳍,一個(gè)胖子當(dāng)著我的面吹牛硫豆,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播笼呆,決...
    沈念sama閱讀 40,448評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼熊响,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了抄邀?” 一聲冷哼從身側(cè)響起耘眨,我...
    開封第一講書人閱讀 39,352評論 0 276
  • 序言:老撾萬榮一對情侶失蹤昼榛,失蹤者是張志新(化名)和其女友劉穎境肾,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體胆屿,經(jīng)...
    沈念sama閱讀 45,834評論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡奥喻,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,992評論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了非迹。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片环鲤。...
    茶點(diǎn)故事閱讀 40,133評論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖憎兽,靈堂內(nèi)的尸體忽然破棺而出冷离,到底是詐尸還是另有隱情,我是刑警寧澤纯命,帶...
    沈念sama閱讀 35,815評論 5 346
  • 正文 年R本政府宣布西剥,位于F島的核電站,受9級特大地震影響亿汞,放射性物質(zhì)發(fā)生泄漏瞭空。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,477評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望咆畏。 院中可真熱鬧南捂,春花似錦、人聲如沸旧找。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,022評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽钦讳。三九已至矿瘦,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間愿卒,已是汗流浹背缚去。 一陣腳步聲響...
    開封第一講書人閱讀 33,147評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留琼开,地道東北人易结。 一個(gè)月前我還...
    沈念sama閱讀 48,398評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像柜候,于是被迫代替她去往敵國和親搞动。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,077評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 1渣刷、通過CocoaPods安裝項(xiàng)目名稱項(xiàng)目信息 AFNetworking網(wǎng)絡(luò)請求組件 FMDB本地?cái)?shù)據(jù)庫組件 SD...
    陽明先生_X自主閱讀 15,982評論 3 119
  • 亮了 西廂孤檠 瘦了 荼蘼纖頰 老了 秦淮西州 青袂云衣 斷了 司馬卓君 吟哦綠綺 掛上紅樓 輾轉(zhuǎn)床...
    溢棠閱讀 246評論 0 3
  • 提交App Store失敗鹦肿,驗(yàn)證的時(shí)候出錯(cuò)。 An error occurred. The operation c...
    工匠良辰閱讀 1,347評論 0 1