ios开发 html 转pdf,Objective-c – iOS上的HTML到PDF转换?

我根据我发现的每一个好的建议创建了一个课程.我一直在挖掘很多,希望我的课程将为任何试图从一些

HTML源代码直接创建多页PDF的人提供一个良好的开端.

我只有同样的问题,因为你和我的要求是:

– 完整的PDF(实际文本,无位图)

– 智能的多页面(与每X像素切割全高度的Webview相比…)

因此,我使用的解决方案是相当不错的,因为它采用iOS使用的相同工具来分割页面进行打印.

让我解释一下,我根据网页浏览打印格式化程序(第一个提示)设置一个UIPrintPageRenderer:

UIPrintPageRenderer *render = [[UIPrintPageRenderer alloc] init];

[render addPrintFormatter:webView.viewPrintFormatter startingAtPageAtIndex:0];

CGRect printableRect = CGRectMake(self.pageMargins.left,

self.pageMargins.top,

self.pageSize.width - self.pageMargins.left - self.pageMargins.right,

self.pageSize.height - self.pageMargins.top - self.pageMargins.bottom);

CGRect paperRect = CGRectMake(0, 0, self.pageSize.width, self.pageSize.height);

[render setValue:[NSValue valueWithCGRect:paperRect] forKey:@"paperRect"];

[render setValue:[NSValue valueWithCGRect:printableRect] forKey:@"printableRect"];

NSData *pdfData = [render printToPDF];

[pdfData writeToFile: self.PDFpath atomically: YES];

在此期间,我已经在UIPrintPageRenderer上创建了一个类别来支持:

- (NSData*) printToPDF

{

NSMutableData *pdfData = [NSMutableData data];

UIGraphicsBeginPDFContextToData( pdfData, CGRectZero, nil );

[self prepareForDrawingPages: NSMakeRange(0, self.numberOfPages)];

CGRect bounds = UIGraphicsGetPDFContextBounds();

for ( int i = 0 ; i < self.numberOfPages ; i++ )

{

UIGraphicsBeginPDFPage();

[self drawPageAtIndex: i inRect: bounds];

}

UIGraphicsEndPDFContext();

return pdfData;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值