2011-10-04 21 views
5

मैं आईओएस एप्लिकेशन के भीतर पीडीएफ एनोटेट करना चाहता हूं। मैं PoDoFo library पर आया, लेकिन मुझे यकीन नहीं है कि आईओएस एप्लिकेशन में इसका उपयोग कैसे किया जाए।आईओएस पर पीडीएफ एनोटेट करने के लिए मैं PoDoFo लाइब्रेरी का उपयोग कैसे कर सकता हूं?

क्या आईओएस पर पीडीएफ को एनोटेट करने के लिए इस पुस्तकालय का उपयोग करना संभव है? यदि हां, तो कैसे?

+0

जवाब यहाँ है http://stackoverflow.com/questions/9047033/how-to-build-podofo-library-for-ios/12032950#12032950 –

उत्तर

4

कृपया ऐसा कुछ करें।

+ (void)createUTFAnnotationTextOnPage:(NSInteger)pageIndex 
            doc:(PdfDocument*)doc // PdfMemDocument instance 
           rect:(PdfRect)rect 
           title:(NSString*)title 
           content:(NSString*)content 
           bOpen:(Boolean)bOpen 
           colorR:(double)r 
           colorG:(double)g 
           colorB:(double)b { 
    PdfPage* pPage = doc->GetPage(pageIndex); 
    if (! pPage) { 
     // couldn't get that page 
     return; 
    } 
    PdfAnnotation* anno; 

    anno = pPage->CreateAnnotation(ePdfAnnotation_Text, rect); 

    PdfString sTitle(reinterpret_cast<const pdf_utf8*>([title UTF8String])); 
    PdfString sContent(reinterpret_cast<const pdf_utf8*>([content UTF8String])); 

    anno->SetTitle(sTitle); 
    anno->SetContents(sContent); 
    anno->SetColor(r, g, b); 
    anno->SetOpen(bOpen); 
} 

// ----------- 
    PdfError::EnableDebug(false); // or true 
    NSString* inFile = [[NSBundle mainBundle] pathForResource:@"forTesting.pdf" ofType:nil]; 
    PoDoFo::PdfMemDocument doc([inFile UTF8String]); 
    [YourPodofoObj createUTFAnnotationTextOnPage:0 doc:&doc rect:PdfRect(50, 50, 50, 50) title:@"author by XX" content:@"I use it for test" bOpen:true colorR:1.0 colorG:.0 colorB:.0]; 
    doc.Write(OUT_PUT_PATH); 
2

उपरोक्त उत्तर केवल आपको एनोटेशन (प्रकार फ्रीटेक्स्ट इत्यादि) जोड़ने का तरीका प्रदान करता है। आम तौर पर आप फ़ील्ड बनाना/संशोधित करना चाहते हैं। मैं आमतौर पर इस उद्देश्य के लिए पीडीएफटेक्स्टफिल्ड्स, पीडीएफ चेकबॉक्स, पीडीएफ सिग्नेचर फील्ड का उपयोग करता हूं। आशा है कि मदद करता है

PdfMemDocument memDoc; 
    PdfFileInputStream fileInputStream(filePath); 
    char *srcBuffer = new char[fileInputStream.GetFileLength()]; 
    size_t srcLen = fileInputStream.GetFileLength(); 
    fileInputStream.Read(srcBuffer,srcLen); 


    PdfOutputDevice outputDevice(filePath); 
    outputDevice.Write(srcBuffer,srcLen); 
    memDoc.Load(srcBuffer,srcLen); 

    PdfTextField txtField = PdfTextField(pPage,PdfRect(50, 50, 50, 50),&memDoc); 
    txtField.SetFieldName(@"SomeUniqueName"); 

    memDoc.Write(&outputDevice); 
    outputDevice.Flush(); 
संबंधित मुद्दे

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