Skip to content

Commit 73f5aca

Browse files
committed
added blocks for an alternative to delegation
1 parent ba58daf commit 73f5aca

File tree

2 files changed

+42
-1
lines changed

2 files changed

+42
-1
lines changed

NDHTMLtoPDF.h

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,16 +13,20 @@
1313

1414
@class NDHTMLtoPDF;
1515

16+
typedef void (^NDHTMLtoPDFCompletionBlock)(NDHTMLtoPDF*);
17+
1618
@protocol NDHTMLtoPDFDelegate <NSObject>
1719

1820
@optional
1921
- (void)HTMLtoPDFDidSucceed:(NDHTMLtoPDF*)htmlToPDF;
2022
- (void)HTMLtoPDFDidFail:(NDHTMLtoPDF*)htmlToPDF;
21-
2223
@end
2324

2425
@interface NDHTMLtoPDF : UIViewController <UIWebViewDelegate>
2526

27+
@property (nonatomic, copy) NDHTMLtoPDFCompletionBlock successBlock;
28+
@property (nonatomic, copy) NDHTMLtoPDFCompletionBlock errorBlock;
29+
2630
@property (nonatomic, weak) id <NDHTMLtoPDFDelegate> delegate;
2731

2832
@property (nonatomic, strong, readonly) NSString *PDFpath;
@@ -31,4 +35,7 @@
3135
+ (id)createPDFWithHTML:(NSString*)HTML pathForPDF:(NSString*)PDFpath delegate:(id <NDHTMLtoPDFDelegate>)delegate pageSize:(CGSize)pageSize margins:(UIEdgeInsets)pageMargins;
3236
+ (id)createPDFWithHTML:(NSString*)HTML baseURL:(NSURL*)baseURL pathForPDF:(NSString*)PDFpath delegate:(id <NDHTMLtoPDFDelegate>)delegate pageSize:(CGSize)pageSize margins:(UIEdgeInsets)pageMargins;
3337

38+
+ (id)createPDFWithURL:(NSURL*)URL pathForPDF:(NSString*)PDFpath pageSize:(CGSize)pageSize margins:(UIEdgeInsets)pageMargins successBlock:(NDHTMLtoPDFCompletionBlock)successBlock errorBlock:(NDHTMLtoPDFCompletionBlock)errorBlock;
39+
+ (id)createPDFWithHTML:(NSString*)HTML pathForPDF:(NSString*)PDFpath pageSize:(CGSize)pageSize margins:(UIEdgeInsets)pageMargins successBlock:(NDHTMLtoPDFCompletionBlock)successBlock errorBlock:(NDHTMLtoPDFCompletionBlock)errorBlock;
40+
+ (id)createPDFWithHTML:(NSString*)HTML baseURL:(NSURL*)baseURL pathForPDF:(NSString*)PDFpath pageSize:(CGSize)pageSize margins:(UIEdgeInsets)pageMargins successBlock:(NDHTMLtoPDFCompletionBlock)successBlock errorBlock:(NDHTMLtoPDFCompletionBlock)errorBlock;
3441
@end

NDHTMLtoPDF.m

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,32 @@ + (id)createPDFWithHTML:(NSString*)HTML baseURL:(NSURL*)baseURL pathForPDF:(NSSt
7171

7272
return creator;
7373
}
74+
+ (id)createPDFWithURL:(NSURL*)URL pathForPDF:(NSString*)PDFpath pageSize:(CGSize)pageSize margins:(UIEdgeInsets)pageMargins successBlock:(NDHTMLtoPDFCompletionBlock)successBlock errorBlock:(NDHTMLtoPDFCompletionBlock)errorBlock
75+
{
76+
NDHTMLtoPDF *creator = [[NDHTMLtoPDF alloc] initWithURL:URL delegate:nil pathForPDF:PDFpath pageSize:pageSize margins:pageMargins];
77+
creator.successBlock = successBlock;
78+
creator.errorBlock = errorBlock;
79+
80+
return creator;
81+
}
82+
83+
+ (id)createPDFWithHTML:(NSString*)HTML pathForPDF:(NSString*)PDFpath pageSize:(CGSize)pageSize margins:(UIEdgeInsets)pageMargins successBlock:(NDHTMLtoPDFCompletionBlock)successBlock errorBlock:(NDHTMLtoPDFCompletionBlock)errorBlock
84+
{
85+
NDHTMLtoPDF *creator = [[NDHTMLtoPDF alloc] initWithHTML:HTML baseURL:nil delegate:nil pathForPDF:PDFpath pageSize:pageSize margins:pageMargins];
86+
creator.successBlock = successBlock;
87+
creator.errorBlock = errorBlock;
88+
89+
return creator;
90+
}
91+
92+
+ (id)createPDFWithHTML:(NSString*)HTML baseURL:(NSURL*)baseURL pathForPDF:(NSString*)PDFpath pageSize:(CGSize)pageSize margins:(UIEdgeInsets)pageMargins successBlock:(NDHTMLtoPDFCompletionBlock)successBlock errorBlock:(NDHTMLtoPDFCompletionBlock)errorBlock
93+
{
94+
NDHTMLtoPDF *creator = [[NDHTMLtoPDF alloc] initWithHTML:HTML baseURL:baseURL delegate:nil pathForPDF:PDFpath pageSize:pageSize margins:pageMargins];
95+
creator.successBlock = successBlock;
96+
creator.errorBlock = errorBlock;
97+
98+
return creator;
99+
}
74100

75101
- (id)initWithURL:(NSURL*)URL delegate:(id <NDHTMLtoPDFDelegate>)delegate pathForPDF:(NSString*)PDFpath pageSize:(CGSize)pageSize margins:(UIEdgeInsets)pageMargins
76102
{
@@ -157,6 +183,10 @@ - (void)webViewDidFinishLoad:(UIWebView *)webView
157183
if (self.delegate && [self.delegate respondsToSelector:@selector(HTMLtoPDFDidSucceed:)])
158184
[self.delegate HTMLtoPDFDidSucceed:self];
159185

186+
if(self.successBlock) {
187+
self.successBlock(self);
188+
}
189+
160190

161191
}
162192

@@ -168,6 +198,10 @@ - (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error
168198

169199
if (self.delegate && [self.delegate respondsToSelector:@selector(HTMLtoPDFDidFail:)])
170200
[self.delegate HTMLtoPDFDidFail:self];
201+
202+
if(self.errorBlock) {
203+
self.errorBlock(self);
204+
}
171205

172206
}
173207

0 commit comments

Comments
 (0)