此类可创建基于 URL 的简单 PDF。页面将以与用户在 iOS 设备上打印内容相同的方式创建(与 OS X 打印输出也非常相似)。
示例代码
self.PDFCreator = [NDHTMLtoPDF createPDFWithURL:
[NSURL URLWithString:@"http://url.com"]
pathForPDF:[@"~/Documents/demo.pdf" stringByExpandingTildeInPath]
delegate:self
pageSize:kPaperSizeA4
margins:UIEdgeInsetsMake(10, 5, 10, 5)];
或使用块语法
self.PDFCreator = [NDHTMLtoPDF createPDFWithURL:[NSURL URLWithString:@"http:/url.com"]
pathForPDF:[@"~/Documents/blocksDemo.pdf" stringByExpandingTildeInPath]
pageSize:kPaperSizeA4 margins:UIEdgeInsetsMake(10, 5, 10, 5)
successBlock:^(NDHTMLtoPDF *htmlToPDF) {
NSLog(@"HTMLtoPDF did succeed (%@ / %@)", htmlToPDF, htmlToPDF.PDFpath);
} errorBlock:^(NDHTMLtoPDF *htmlToPDF) {
NSLog(@"HTMLtoPDF did fail (%@)", htmlToPDF);
}];
您还可以使用以下替代代码直接从 HTML 字符串生成 PDF,而无需使用 URL。这对于您希望 PDF 生成器离线工作或不想先将代码写入本地文件很有用(您可以通过 fileURLWithPath: 使用 NSURL 和本地文件)
+ (id)createPDFWithHTML:(NSString*)HTML pathForPDF:(NSString*)PDFpath delegate:(id <NDHTMLtoPDFDelegate>)delegate pageSize:(CGSize)pageSize margins:(UIEdgeInsets)pageMargins;
+ (id)createPDFWithHTML:(NSString*)HTML baseURL:(NSURL*)baseURL pathForPDF:(NSString*)PDFpath delegate:(id <NDHTMLtoPDFDelegate>)delegate pageSize:(CGSize)pageSize margins:(UIEdgeInsets)pageMargins;
+ (id)createPDFWithHTML:(NSString*)HTML pathForPDF:(NSString*)PDFpath pageSize:(CGSize)pageSize margins:(UIEdgeInsets)pageMargins successBlock:(NDHTMLtoPDFCompletionBlock)successBlock errorBlock:(NDHTMLtoPDFCompletionBlock)errorBlock;
+ (id)createPDFWithHTML:(NSString*)HTML baseURL:(NSURL*)baseURL pathForPDF:(NSString*)PDFpath pageSize:(CGSize)pageSize margins:(UIEdgeInsets)pageMargins successBlock:(NDHTMLtoPDFCompletionBlock)successBlock errorBlock:(NDHTMLtoPDFCompletionBlock)errorBlock;
纸张大小仅由矩形定义(例如,kPaperSizeA4 CGSizeMake(595.2,841.8))。
请确保创建一个属性(例如,PDFCreator
),因为 NDHTMLtoPDF 是异步使用 UIWebView 的。
如果您有任何问题,请随时联系我!