您好,登錄后才能下訂單哦!
本文小編為大家詳細(xì)介紹“H5界面怎么生成PDF格式進(jìn)行輸出”,內(nèi)容詳細(xì),步驟清晰,細(xì)節(jié)處理妥當(dāng),希望這篇“H5界面怎么生成PDF格式進(jìn)行輸出”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學(xué)習(xí)新知識(shí)吧。
H5界面生成PDF需要的倆中形式:
1:圖片的形式的保存.
主要是截取H5界面的所有內(nèi)容,是圖片形式的,然后生成PDF格式.
2:截取H5界面字符串和圖片
保存的所有的字和圖片,進(jìn)行拼裝,然后以不同樣式進(jìn)行保存PDF格式
第一種方法很只是簡(jiǎn)單的操作就可以,但是滿足不了需求,只能選擇第二個(gè).
但是第2個(gè)截取保存數(shù)據(jù)和圖片,自己寫一套的話,工作量很大的.
利用系統(tǒng)里面的UIWebView
iOS開發(fā)人員都太熟悉不過了吧,哈哈,都是用這個(gè)方法
[UIWebView loadHTMLString:@"" baseURL:@""];
進(jìn)行加載H5界面所有文字和圖片.
然后進(jìn)行下面的方法進(jìn)行保存數(shù)據(jù)到本地
這個(gè)是UIWebVIew擴(kuò)展類,自己寫就行
- (NSData *)converToPDF{
UIViewPrintFormatter *fmt = [self viewPrintFormatter];
UIPrintPageRenderer *render = [[UIPrintPageRenderer alloc] init];
[render addPrintFormatter:fmt startingAtPageAtIndex:0];
CGRect page;
page.origin.x=0;
page.origin.y=0;
page.size.width=600;
page.size.height=768;
CGRect printable=CGRectInset( page, 50, 50 );
[render setValue:[NSValue valueWithCGRect:page] forKey:@"paperRect"];
[render setValue:[NSValue valueWithCGRect:printable] forKey:@"printableRect"];
NSMutableData * pdfData = [NSMutableData data];
UIGraphicsBeginPDFContextToData( pdfData, CGRectZero, nil );
for (NSInteger i=0; i < [render numberOfPages]; i++)
{
UIGraphicsBeginPDFPage();
CGRect bounds = UIGraphicsGetPDFContextBounds();
[render drawPageAtIndex:i inRect:bounds];
}
UIGraphicsEndPDFContext();
return pdfData;
}
//點(diǎn)擊保存進(jìn)行調(diào)用上面的方法
- (void)savePDF
{
NSData *data = [_webView converToPDF]; 調(diào)用上面的方法
NSString *path = [NSHomeDirectory() stringByAppendingPathComponent:[NSString stringWithFormat:@"Documents/testFile.pdf"]];
BOOL result = [data writeToFile:path atomically:YES];
[MBProgressHUD hideHUD];
if (result) {
"保存成功"
}else{
"保存失敗";
}
從本地獲取路徑進(jìn)行顯示PDF
NSURL *pdfURL = [NSURL fileURLWithPath:path];
NSURLRequest *request = [NSURLRequest requestWithURL:pdfURL];
[self.webView setScalesPageToFit:YES];
[self.webView loadRequest:request];
}
接著從本地打開就ok了.
讀到這里,這篇“H5界面怎么生成PDF格式進(jìn)行輸出”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識(shí)點(diǎn)還需要大家自己動(dòng)手實(shí)踐使用過才能領(lǐng)會(huì),如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。