本文小编为大家详细介绍“H5界面怎么生成pdf格式进行输出”,内容详细,步骤清晰,细节处理妥当,希望这篇“H5界面怎么生成PDF格式进行输出”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新
本文小编为大家详细介绍“H5界面怎么生成pdf格式进行输出”,内容详细,步骤清晰,细节处理妥当,希望这篇“H5界面怎么生成PDF格式进行输出”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。
H5界面生成PDF需要的俩中形式:
1:图片的形式的保存.
主要是截取H5界面的所有内容,是图片形式的,然后生成PDF格式.
2:截取H5界面字符串和图片
保存的所有的字和图片,进行拼装,然后以不同样式进行保存PDF格式
第一种方法很只是简单的操作就可以,但是满足不了需求,只能选择第二个.
但是第2个截取保存数据和图片,自己写一套的话,工作量很大的.
利用系统里面的UIWEBView
[UIWebView loadhtmlString:@"" baseURL:@""];
进行加载H5界面所有文字和图片.
然后进行下面的方法进行保存数据到本地
这个是UIWebVIew扩展类,自己写就行
- (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;
}
//点击保存进行调用上面的方法
- (void)savePDF
{
NSData *data = [_webView converToPDF]; 调用上面的方法
NSString *path = [NSHomeDirectory() stringByAppendingPathComponent:[NSString stringWithFormat:@"Documents/testFile.pdf"]];
BOOL result = [data writeToFile:path atomically:YES];
[MBProgresshUD hideHUD];
if (result) {
"保存成功"
}else{
"保存失败";
}
从本地获取路径进行显示PDF
NSURL *pdfURL = [NSURL fileURLWithPath:path];
NSURLRequest *request = [NSURLRequest requestWithURL:pdfURL];
[self.webView setScalesPageToFit:YES];
[self.webView loadRequest:request];
}
接着从本地打开就ok了.
读到这里,这篇“H5界面怎么生成PDF格式进行输出”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网JavaScript频道。
--结束END--
本文标题: H5界面怎么生成PDF格式进行输出
本文链接: https://lsjlt.com/news/96117.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-01-12
2023-05-20
2023-05-20
2023-05-20
2023-05-20
2023-05-20
2023-05-20
2023-05-20
2023-05-20
2023-05-20
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0