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
From: Mark Craig
Sent: Thursday, October 24, 2013 6:00 AM
To: Wood Nick ; DocBook Apps
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:]
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.)
The
main part of the target
database document 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