2011-01-04 13 views
5

मैं सामग्री की एक साधारण तालिका बनाने की कोशिश कर रहा हूं (दस्तावेज़ केवल 4 पृष्ठ लंबा है)। मेरे पास यह मुद्दा यह है कि जब मेरा माउस हाथ में बदल जाता है, जब मैं इसे क्लिक करता हूं तो कुछ भी नहीं होता है। और हां लक्ष्य दूसरे पृष्ठ पर हैं। सामग्री लाइन की एक तालिका केiText में एंकरों के साथ समस्याएं हैं (क्लिक करने योग्य लेकिन कुछ नहीं होता)

निर्माण:

Chunk chunk = new Chunk("Contact information"); 
chunk.setLocalGoto("Contact information"); 
document.add(new Paragraph(chunk)); 

लक्ष्यों में से एक:

Anchor anchor = new Anchor("Contact information", font1); 
anchor.setName("Contact information"); 
Chapter chapter = new Chapter(new Paragraph(anchor), 1);  
chapter.setNumberDepth(0); 
document.add(chapter); 

Anchor name साथ Goto String मैचों तो मैं मैं गलत क्या कर रहा नहीं दिख रहा।

+0

iText का कौन सा संस्करण आप उपयोग कर रहे हैं? यह कुछ नियोलिथिक बग हो सकता है जो बहुत पहले तय किया गया था ... –

+0

2.1.7/5.0.5 बस यह जांचना चाहता था कि मेरी आवश्यकताओं के लिए दोनों के बीच बहुत अंतर था या नहीं, क्योंकि पूर्व में एलजीपीएल का उपयोग करता है जबकि बाद में एजीपीएल का उपयोग करता है। – jack

उत्तर

1

कार्रवाई में नीली लपटें से this example में, आंतरिक लिंक नाम पर एक # उपयोग करता है।

एक और दृष्टिकोण लिंक और गंतव्य दोनों के लिए Chunk एस का उपयोग करना होगा।

chunkDest.setLocalDesitination("foo"); 
... 
chunkLink.setLocalGoto("foo"); // or "#foo"? 

के मेरे पढ़ने PdfDocument (localGoto और localDestination) मेरे ओर जाता है विश्वास है कि जिसके तहत वे बनाए कर सकें, ताकि कोई फर्क नहीं पड़ता ... प्रतीक्षा करें ... नहीं, इतने लंबे समय चाहिए नहीं बात दोनों के रूप में वास्तव में बुलाया जाता है।

क्या आपने वास्तव में यह सुनिश्चित करने के लिए अपने कोड से कदम उठाया है कि वे वास्तव में कॉल किए गए हैं?

दूसरा विकल्प: एंड रन। पीडीएफ-देशी कोड पर जाएं और इसे वहां करें। अध्याय स्थान के लिए अपना खुद का PdfDestination और TOC के लिए PdfAction बनाएं। कुछ इस तरह:

PdfDestination fitH = new PdfDestination(PdfDestination.FITH); 
// the destination doesn't have a page associated with it until you call 
// gotoLocalPage. Kinda goofy, but we can work with it. 
PdfAction link = PdfAction.gotoLocalPage(pageNum, fitH, writer); 
chunk.setAction(link); 

नोट:

  1. आप किसी दिए गए PdfAction का पुन: उपयोग कर सकते हैं अगर आप एक ही जगह पर कई लिंक की जरूरत है।
  2. पीडीएफडिस्टिनेशन को परिभाषित करने के कई तरीके हैं, मैंने अभी इसे पसंद किया है। YMMV।
+0

ऐसा लगता है कि आप लक्ष्य के लिए एंकर का उपयोग नहीं कर सकते हैं, और लक्ष्य से लिंक करने के लिए चुनक्स। 2 चंक्स का उपयोग ठीक काम किया। – jack

+0

दोनों सिरों के लिए भाग का उपयोग समाधान है। धन्यवाद ! – steffen

0

यहां उदाहरण को देखकर: ftp://ns.tnet.dp.ua/pub/ORACLE/Developers/Java_Doc_LIB/PDFLib/iText/tutorial/ch03.html यह आंतरिक लिंक की तरह दिखता है जिसे आपको "#" + {एंकर नाम} के संदर्भ को सेट करने की आवश्यकता है।

उदाहरण आंतरिक लिंक:

Anchor anchor1 = new Anchor("This is an internal link"); 
anchor1.setName("link1"); 
Anchor anchor2 = new Anchor("Click here to jump to the internal link"); 
anchor.setReference("#link1"); 
+0

यह है कि यदि आप लिंक के लिए एंकर का उपयोग करते हैं, तो मैं भाग का उपयोग करता हूं। मैंने उस उदाहरण की जांच की लेकिन फिर भी लिंक काम नहीं करते हैं इसलिए मैंने भाग की कोशिश की। – jack