Hi Bob, List,

I don't know if this a new thread or a continuation of what has been discussed 
below.  I set up some olinks on a set of very simple documents for testing 
purposes (only transformed to pdf at this stage) and they were working fine.  

However, I have now incorporated olinks into some larger documents and the pdf 
output is not as anticipated; in that following the occurrence of an xref 
element, no heading or para text is displayed for the remainder of that chapter 
- I do get the gentext of the first and subsequent cross-references and I do 
still get heading numbers, bullets, etc.  When I remove either the olink or the 
xref the document renders as expected.  I did think that it may have been a 
problem in my customization layer but I get the same results with the standard 
1.72.0 stylesheets.  I also tested with the link element, when the link is an 
empty element I get the same problem, when the link element contains text, I do 
not.

As mentioned previously, I am using docbkx-tools 2.0.14 and FOP 1.0 with the 
1.72.0 stylesheets.  I appreciate the issue may be with my tool chain and not 
the stylesheets and I have searched the web for other instances of this 
occurrence but cannot find any,  I was wondering if you or anyone else in the 
community had observed such behavior and could provide a fix.

Regards

Nick


-----Original Message-----
From: Bob Stayton [mailto:[email protected]] 
Sent: Saturday, October 26, 2013 1:16 AM
To: Alexey Neyman; [email protected]
Cc: Wood Nick; Mark Craig
Subject: Re: [docbook-apps] Olinks in PDF missing valid destination?

Excellent, thanks for tracking that down and providing the fix.

Bob Stayton
Sagehill Enterprises
[email protected]

--------------------------------------------------
From: "Alexey Neyman" <[email protected]>
Sent: Friday, October 25, 2013 11:01 AM
To: <[email protected]>
Cc: "Wood Nick" <[email protected]>; "Bob Stayton" 
<[email protected]>; "Mark Craig" <[email protected]>
Subject: Re: [docbook-apps] Olinks in PDF missing valid destination?

> Hi Bob,
>
> Looks like the stylesheets could produce invalid link "url(#dest=)" if
> $fop1.extensions=1 and $insert.olink.pdf.frag=0. In that case, 
> make.olink.href template generates a string without '#something' 
> anchor. The code in olink template in fo/xref.xsl then tries to parse 
> this string as follows and
> fails:
>
>  <xsl:variable name="mybeg" select="substring-before($href,'#')"/>
>  <xsl:variable name="myend" select="substring-after($href,'#')"/>
>  <fo:basic-link
> external-destination="url({concat($mybeg,'#dest=',$myend)})"
>      xsl:use-attribute-sets="olink.properties">
>    <xsl:copy-of select="$hottext"/>
>  </fo:basic-link>
>
> If the $href does not contain #, both $mybeg and $myend would be 
> empty, leading to invalid URL '#dest='. Fix committed in r9825.
>
> Regards,
> Alexey.
>
>
> On Friday, October 25, 2013 12:37:54 am Wood Nick wrote:
>> Hi Bob,
>>
>> I am using docbkx-tools 2.0.14 with the 1.72.0 stylesheets.  You are 
>> correct, setting <insertOlinkPdfFrag>1</insertOlinkPdfFrag>in the POM 
>> is the same as <param name="insert.olink.pdf.frag" select="1"/> in 
>> the stylesheet.  I am using FOP 1.0 (we run Nexus behind a firewall 
>> and so updates are a challenge) which does not appear to support 
>> fragment identifiers.  From your response below I assume FOP 1.1 does?
>>
>> Regards
>>
>> Nick
>>
>>
>>
>> From: Mark Craig [mailto:[email protected]]
>> Sent: Thursday, October 24, 2013 8:52 PM
>> To: Bob Stayton
>> Cc: Wood Nick; DocBook Apps
>> Subject: Re: [docbook-apps] Olinks in PDF missing valid destination?
>>
>> Hi Bob,
>>
>> What I observed with <insertOlinkPdfFrag> left undefined -- I'm 
>> assuming that means insert.olink.pdf.frag is 0 -- I was getting 
>> external-destination="url(#dest=)" in the .fo. No file name, no fragment.
>>
>> I think docbkx-tools 2.0.14 is picking up version 1.76.1 stylesheets. 
>> What
>> I didn't do is get the stylesheets and try without docbkx-tools.
>>
>> Regards,
>> Mark
>>
>> On Thu, Oct 24, 2013 at 7:46 PM, Bob Stayton 
>> <[email protected]<mailto:[email protected]>> wrote: Hi Mark,
>> Can you clarify one point for me?   When <insertOlinkPdfFrag> is not set 
>> to
>> 1, does "not properly resolved" mean the link can open the other PDF 
>> document but not scroll to the proper location, or does it not open 
>> the other PDF at all?  I would expect the former.
>>
>> I'm not a user of docbkx-tools, but I presume setting 
>> <insertOlinkPdfFrag> is the same as setting the DocBook XSL 
>> stylesheet parameter named 'insert.olink.pdf.frag', right?  That 
>> parameter's default value should probably be 1, now that all XSL-FO 
>> processors support the fragment identifiers.
>>
>> Bob Stayton
>> Sagehill Enterprises
>> [email protected]<mailto:[email protected]>
>>
>> From: Mark Craig<mailto:[email protected]>
>> Sent: Thursday, October 24, 2013 6:00 AM
>> To: Wood Nick<mailto:[email protected]> ; DocBook 
>> Apps<mailto:[email protected]> Subject: Re:
>> [docbook-apps]
>> Olinks in PDF missing valid destination?
>>
>> By the way,
>>
>> When I want to resolve olinks between PDF documents, it looks like I 
>> also need <insertOlinkPdfFrag>1</insertOlinkPdfFrag>.
>>
>> Otherwise external-destinations are not properly resolved (though 
>> according to Olink debug messages they are resolved).
>>
>> Again, I'm seeing this behavior with 1.76.1.
>>
>> Regards,
>> Mark
>>
>> On Oct 23, 2013, at 3:38 PM, Mark Craig wrote:
>>
>>
>> Hi Nick,
>>
>> Thanks very much for your help.
>>
>> Following your suggestion does the trick:
>>
>> <currentDocid>book</currentDocid>
>>
>> As a result, the link gets resolved as an internal-destination in the 
>> .fo, and this works fine in the PDF.
>>
>> <fo:basic-link internal-destination="chapter"><fo:inline>link to the 
>> next chapter</fo:inline></fo:basic-link>.
>>
>> Regards,
>> Mark
>>
>> On Oct 23, 2013, at 2:35 PM, Wood Nick wrote:
>>
>>
>> Mark,
>>
>> I do not pretend to be an expert on this - I setup my pdf olinks 
>> using Bob's excellent book plus some guidance you have posted in the past.
>> However, have you tried adding <currentDocid/> in the 
>> <configuration/> of your POM and then using the sitemap in your 
>> olinkdb.xml (as I believe this provide the location of the 
>> documents).
>>
>> Regards
>>
>> Nick
>>
>>
>> From: Mark Craig
>> [mailto:[email protected]<mailto:[email protected]>]
>> Sent: Wednesday, October 23, 2013 10:11 AM
>> To: DocBook Apps
>> Subject: [docbook-apps] Olinks in PDF missing valid destination?
>>
>> Hello,
>>
>> In the past I have successfully set up Olink resolution for HTML.
>>
>> I have read and tried to implement
>> http://www.sagehill.net/docbookxsl/OlinkPrintOutput.html#PdfLinkingSe
>> tup But I'm not managing to do the same for PDF.
>>
>> A clickable link of the Olink is there in the PDF, but with no valid 
>> destination.
>>
>> This is with docbkx-tools 2.0.14, so DocBook XSL 1.76.1 and FOP 1 (I 
>> think 1.1).
>>
>> My little test is at https://github.com/markcraig/DOCS-47.
>> (There's only one Olink, in the para at line 20 of 
>> book.xml<https://github.com/markcraig/DOCS-47/blob/master/src/docbkx/book.
>> xml#L20>.)
>>
>> The main part of the target database
>> document<https://github.com/markcraig/DOCS-47/blob/master/src/docbkx/
>> olink
>> db.xml> for the test is minimal:
>>
>> <?xml version='1.0' encoding='utf-8'?> <!DOCTYPE targetset[ ...
>> <!ENTITY book SYSTEM '../../target/target.db'> ]> <targetset>  
>> <document targetdoc="book" baseuri="book.pdf">&book;</document>
>> </targetset>
>>
>> Although Olink debug messages make it look like the stylesheets are 
>> finding a match for the link, the .fo is missing information.
>>
>> In the build output, I see:
>>
>> Olink debug: cases for targetdoc='book' and targetptr='chapter' in 
>> language ''. Olink debug: CaseA matched.
>> Olink debug: CaseA key is the final selection: book/chapter/
>>
>> But the .fo has an external-destination with no actual destination:
>>
>> <fo:basic-link show-destination="replace"
>> external-destination="url(#dest=)"
>>
>> ><fo:inline>link to the next chapter</fo:inline></fo:basic-link>
>>
>> If I remove the baseuri value from the <document> element in the 
>> target database document, then the external-destination attribute 
>> changes a
>> little:
>>
>> <fo:basic-link show-destination="replace"
>> external-destination="url(#dest=chapter)"
>>
>> ><fo:inline>link to the next chapter</fo:inline></fo:basic-link>
>>
>> What should I do differently for a valid destination to be generated?
>>
>> Thanks for your advice.
>> Regards,
>> Mark
>
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to