2011-04-20 15 views
5

मेरे एप्लिकेशन में कस्टम सेल (टेक्स्टफील्ड, लेबल और बटन शामिल हैं) के साथ एक टेबलव्यू है, मैं टेबलव्यू से पीडीएफ फाइल जेनरेट करना चाहता हूं।यदि UITableView से पीडीएफ फाइल जेनरेट करना संभव है?

Bellow कोड है (अब मान tableview की सामग्री सब दिखाई देता है):

UIGraphicsBeginImageContext(self._tableView.bounds.size); 
    UIGraphicsBeginPDFPageWithInfo(CGRectMake(0, 0, self._tableView.bounds.size.width, self._tableView.bounds.size.height), nil); 

    // what's the code here? 
    // [self._tableView drawInRect:]; 

    UIGraphicsEndPDFContext(); 

मैं हमेशा एक खाली पीडीएफ फाइल उत्पन्न। वर्तमान में मैं एक छवि के रूप में तालिकादृश्य उत्पन्न करने के लिए क्या करता हूं, फिर छवि को वर्तमान संदर्भ में खींचें, फिर पीडीएफ फ़ाइल प्राप्त होगी। लेकिन कोई अच्छा विचार है?

उत्तर

5

हाय, आप follwoing कोड के माध्यम से छवि के रूप में वर्तमान दृश्य में बदल सकते हैं और फिर आप उस छवि का उपयोग करने के लिए link

- (UIImage *)captureView:(UIView *)view { 
    CGRect screenRect = [[UIScreen mainScreen] bounds]; 

    UIGraphicsBeginImageContext(screenRect.size); 

    CGContextRef ctx = UIGraphicsGetCurrentContext(); 
    [[UIColor blackColor] set]; 
    CGContextFillRect(ctx, screenRect); 

    [view.layer renderInContext:ctx]; 

    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext(); 

    UIGraphicsEndImageContext(); 

    return newImage; 
    } 
+0

के लिए, एक लाख धन्यवाद इस बात की तरह मैं कोको और CoreGraphics के बारे में बहुत पसंद है - primatives और उच्च स्तर संचालन और प्रकार के बहुत अच्छी तरह से एक साथ जाल। कुछ गंभीर UIView उपclassing करने तक मैंने कभी भी राज्य ग्राफिक्स सिस्टम (यानी पोस्टस्क्रिप्ट) की सराहना की। – Armentage

+0

धन्यवाद, मुझे यह काम मिल रहा है, लेकिन मैं चाहता हूं कि तालिकादृश्य की सामग्री तालिकादृश्य से बड़ी है, पूरे टेबलव्यू को कैप्चर कैसे करें? – ZYiOS

+0

डीओओ, अगर यह काम कर रहा है, तो कृपया उत्तर दें और अपवॉट दें .. यह दूसरों की मदद करेगा .. –

-1

के माध्यम से PDF फ़ाइल बनाने के लिए अच्छी गुणवत्ता छवि प्राप्त करने के लिए है,

उपयोग

UIGraphicsBeginImageContextWithOptions(screenRect.size, NO, 0.0) 
बजाय

UIGraphicsBeginImageContext(screenRect.size) 

@JeffWood: आपका जवाब :)

संबंधित मुद्दे