ios html5游戏开发教程pdf,iOS--H5界面生成PDF格式进行输出

当时在开发新版本,领导告诉我们,需要实现一个读取H5界面内容,进行本地保存PDF格式进行观看.进行研究这个东西.

H5界面生成PDF需要的俩中形式:

1:图片的形式的保存.

主要是截取H5界面的所有内容,是图片形式的,然后生成PDF格式.

2:截取H5界面字符串和图片

保存的所有的字和图片,进行拼装,然后以不同样式进行保存PDF格式

第一种方法很只是简单的操作就可以,但是满足不了需求,只能选择第二个.

但是第2个截取保存数据和图片,自己写一套的话,工作量很大的.

利用系统里面的UIWebView

iOS开发人员都太熟悉不过了吧,哈哈,都是用这个方法

[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了.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值