2009-08-08 9 views
9

क्या CGPDFDocument या अन्य माध्यमों का उपयोग कर पीडीएफ दस्तावेज़ों में "आंतरिक" लिंक तक पहुंच प्राप्त करना संभव है? मैं एक साधारण पाठक ऐप बना रहा हूं और पीडीएफ फॉर्म में अपनी सामग्री वितरित करना चाहता हूं, लेकिन यदि मैं दस्तावेज़ में पृष्ठों के बीच लिंक का समर्थन नहीं कर सकता तो शायद यह काम नहीं करेगा।पीडीएफ दस्तावेज़ों (आईफोन) में हाइपरलिंक्स तक कैसे पहुंचे?

This question समान है, लेकिन हाइपरलिंक्स का समर्थन करने के तरीके को हल नहीं करता है।

+0

वास्तव में क्या आप पृष्ठों के बीच लिंक द्वारा मतलब है? क्या आप पेज 1 पर एक लिंक के बारे में बात कर रहे हैं, जो पेज 4 पर जाता है, या आप अपने पाठक में पेज 2 के बाद पेज के बारे में बात कर रहे हैं? वैसे, यदि आप पृष्ठों के बीच क्लिक करने योग्य लिंक के बारे में बात कर रहे हैं, तो ध्यान रखें कि पीडीएफ दस्तावेज़ में हाइपरलिंक्स बस एक पेज पर क्लिक करने योग्य हॉटस्पॉट आयताकार हैं और टेक्स्ट के साथ कोई सीधा संबंध नहीं है जो वे हाइपरलिंक में दिखाई देते हैं। एक पीडीएफ दस्तावेज़ उस अर्थ में एक HTML दस्तावेज़ की तरह नहीं है। – Rowan

+0

मेरा मतलब है कि एक पृष्ठ से लिंक को दस्तावेज़ में किसी अन्य मनमानी पृष्ठ पर समर्थन देना है। मैं इसे सामग्री की एक तालिका के साथ-साथ यादृच्छिक स्थानों में अन्य पृष्ठों के संदर्भ के लिए उपयोग करता हूं। तो हाँ, मैं वास्तव में क्या देख रहा हूं वह पीडीएफ दस्तावेज़ों को नेविगेट करने के लिए एक HTML जैसा तरीका है। मैं इसके बिना "अगली/पिछली/घर" नेविगेशन के सरल मामले को संभाल सकता हूं, लेकिन आदर्श रूप में मैं मनमाने ढंग से नेविगेशन का भी समर्थन करना चाहता हूं। धन्यवाद। –

+0

यहां मेरे कुछ प्रश्नों से कुछ नमूना कोड दिया गया है: http://stackoverflow.com/questions/4080373/get-pdf-hyperlinks-on-ios-with-quartz – pt2ph8

उत्तर

0

यदि आप Quartz to open and view a PDF का उपयोग कर रहे हैं, तो हाँ, ऐसा लगता है कि आपको आंतरिक लिंक तक पहुंच होगी। क्वार्ट्ज आपको add new links पीडीएफ में भी जाने देगा। मेरे पास आईफोन/मैक विकास के साथ कोई पहला हाथ अनुभव नहीं है, लेकिन उनके लिए हाइपरलिंक जोड़ने के लिए यह बहुत अजीब होगा, लेकिन उनका उपयोग नहीं करें।

+2

ये लिंक मैक ओएस एक्स संदर्भ पुस्तकालय को इंगित करते हैं, न कि आईफोन ओएस पीडीएफकिट फोन पर मौजूद नहीं है। –

+0

हां दोनों लिंक ऊपर ओएसएक्स संदर्भ पुस्तकालयों की सूची खोल रहे हैं। यह कोई उचित जानकारी नहीं देता है। यह कैसे स्वीकार किया जाता है? -1 –

+0

क्षमा करें दोस्तों, मैं अब आईफोन देव नहीं कर रहा हूं, इसलिए यह प्रभावी रूप से एक त्याग किया गया सवाल है। मैं यह सत्यापित करने में असमर्थ हूं कि यह एक स्वीकार्य उत्तर है या नहीं, इसलिए मैंने इसे "अस्वीकार्य" किया है। –

2

मेरा उत्तर here देखें। असल में, आपको पीडीएफ लिंक एनोटेशन से परिचित होना होगा।

0

आपको दो चरणों में करने की आवश्यकता है।

पहले: अपने पीडीएफ पार्स चिह्नित सामग्री ऑपरेटरों

पता लगाने के लिए

एक पार्स कोड का एक उदाहरण है कि:

-(void)parseContent() { 
    CGPDFOperatorTableRef myTable; 
    myTable = CGPDFOperatorTableCreate(); 
    CGPDFOperatorTableSetCallback(myTable, "BMC", &myOperator_BMC); 
    CGPDFContentStreamRef myContentStream = CGPDFContentStreamCreateWithPage(page); 
    CGPDFScannerRef myScanner = CGPDFScannerCreate(myContentStream, myTable, autoZoomAreas); 
    CGPDFScannerScan(myScanner); 
    CGPDFScannerRelease(myScanner); 
    CGPDFContentStreamRelease(myContentStream); 
} 

void myOperator_BMC(CGPDFScannerRef s, void *info) 
{ 
    const char *name; 
    CGPDFScannerPopName(s, &name); 
} 

(आप को पूरा करने और आपकी आवश्यकता मैच के लिए इस कोड को समायोजित करने की आवश्यकता)

दूसरा: उन क्षेत्रों पर टैप को संभालने के लिए स्पर्श किए गए संदेश का जवाब दें और यूआई को तदनुसार जवाब दें।

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