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#PdfLinkingSetup
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/olinkdb.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



Reply via email to