2010-01-26 11 views
7

में दूसरे पृष्ठ पर जाने के लिए परिवर्तित कर रहा है। मैं एबीसीपीडीएफ का उपयोग करके एक पीडीएफ उत्पन्न कर रहा हूं जिसमें सामग्री की एक सारणी है जो एक ही पीडीएफ के अन्य पृष्ठों से लिंक होगी। समस्या यह है कि HTML में एंकर टैग का पथ अस्थायी फ़ाइल के पूर्ण पथ में बदल जाता है। फ़ाइल: के रूप में पीडीएफ मेंएबीसीपीडीएफ एचटीएमएल एंकरों को एक ही पीडीएफ

<a href="#elementId">Link</a> 

:

उदाहरण के लिए, ABCpdf लिंक के href प्रस्तुत करना होगा /// C: /Users/Aaron/AppData/Local/Temp/ABCpdf/pdfCMMYPSF.htm #elementId

यह कैसे मैं पीडीएफ उत्पन्न है:

Doc pdf = new Doc(); 
pdf.HtmlOptions.AddLinks = true; 
pdf.Rect.Rectangle = new System.Drawing.Rectangle(20, 80, 572, 702); 
int id = pdf.AddImageHtml(pdfHTML, true, pdf.HtmlOptions.BrowserWidth, true); 

while (pdf.Chainable(id)) 
{ 
    pdf.Page = pdf.AddPage(); 
    id = pdf.AddImageToChain(id); 
} 

pdf.HtmlOptions.LinkPages(); 
for (int i = 0; i < pdf.PageCount; i++) 
{ 
    pdf.PageNumber = i; 
    pdf.Flatten(); 
} 

कोई भी विचार कैसे मैं लंगर लिंक उचित तो यह एक और पर चला जाएगा पर क्लिक रेंडर करने के लिए प्राप्त कर सकते हैं पृष्ठ?

+0

बस एफवाईआई, मुझे एबीसीपीडीएफ के निर्माताओं से सीधे समर्थन प्राप्त करने में बहुत अच्छी किस्मत मिली है। कोशिश की? – Bryan

+0

बस उन्हें एक ईमेल भेजा, सुझाव के लिए धन्यवाद। – Aaron

+0

WebSuperGoo समर्थन उत्कृष्ट है और सबसे अच्छे में से एक है, ब्रायन इस सुझाव के साथ स्पॉट पर है। – Jakkwylde

उत्तर

6

Websupergoo मेरे पास वापस आ गया और मैं अपनी समस्या को उनके द्वारा प्रदान की गई नमूना परियोजना से डीबग करने में सक्षम था। मेरी समस्या का हल बहुत आसान था, मैं किसी और मामले किसी में यहाँ जवाब पोस्ट करेंगे एक ही समस्या हो रही है:

मेरे एचटीएमएल इस तरह स्थापित किया गया था:

<a href="#elementId">Link to another page</a> 
<div id="elementId">A div that's on another page</div> 

मैं बस परिवर्तन करने की जरूरत यह करने के लिए:

<a href="#elementId">Link to another page</a> 
<div><a name="elementId">A div that's on another page</a></div> 

आप नाम ABCpdf ही पीडीएफ भीतर किसी अन्य पृष्ठ के लिए लिंक कूद बनाने के लिए के लिए आदेश में निर्दिष्ट के साथ एक लंगर टैग का उपयोग करने की जरूरत है। तब

For i = 1 to pdf.PageCount 

    pdf.PageNumber = i 
    pdf.AddBookmark("Page " & i, True) 

Next 

जहाँ आप एक लिंक आप संदर्भित कर सकते हैं सम्मिलित करना चाहते हैं:

+1

यह काम करता है!अन्य लोगों के लिए भी एक नोट, यदि आप अपने हेड टैग में का उपयोग कर रहे हैं तो यह आपके एंकरों को खराब कर देगा ताकि आपको पूर्ण यूआरएल –

+1

के साथ संदर्भ सब कुछ चाहिए। यह मेरे लिए भी काम करता है। मुझे दस्तावेज़ भी सेट करना पड़ा। HTMLOptions.AddLinks = true; और दस्तावेज़ चलाएं। HTMLOptions.LinkPages(); दस्तावेज़ flattening के बाद। –

3

इसके लायक होने के लिए, मेरे पास एंकर किए गए बुकमार्क के संबंध में AddImageHtml के माध्यम से असंगत परिणाम हुए हैं। इसे पूरा करने का सबसे विश्वसनीय तरीका AddBookMark विधि के माध्यम से है, लेकिन इसमें काफी अधिक काम शामिल होगा क्योंकि आप पीडीएफ सामग्री मैन्युअल रूप से पुनर्निर्माण करने के लिए काम कर रहे होंगे और उस फैशन में HTML समर्थन सीमित है।

http://www.websupergoo.com/helppdf7net/source/5-abcpdf6/doc/1-methods/addbookmark.htm

शायद उनकी नवीनतम संस्करण 8 पतों इस मुद्दे: इस विधि के बारे में अधिक जानकारी यहां पाया जा सकता है। परंपरागत HTML के माध्यम से आप अपने ब्राउज़र में देखे जाने वाले सापेक्ष अपेक्षाकृत अपेक्षाकृत एक पूर्ण स्थान को हल करने लगते हैं।

1

एक अन्य विधि है जो नवीनतम ABCpdf संस्करण में मेरे लिए काम किया है (9) अपने दस्तावेज़ में प्रत्येक पृष्ठ के लिए बुकमार्क जोड़ने के लिए है - बुकमार्क इस मामले में हम एक बुकमार्क हम बना लिया है के माध्यम से पाशन द्वारा विषय सूची बनाने के लिए:

For Each bm As Bookmark In pdf.Bookmark 

    toc &= "<Font annots='goto:" + bm.Page.PageNumber.ToString() + "'>" & bm.Title & "</Font><br>" 

Next 

pdf.AddHtml(toc) 

Websupergoo टीम मुझे कुछ उदाहरण कोड के साथ आपूर्ति की है और कहा कि क्या इस पर ही आधारित होता है - इसलिए उन्हें करने के लिए धन्यवाद !

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