class PDF::TechBook::TagXref
A stand-alone replacement callback that will return an internal link with either the name of the cross-reference or the page on which the cross-reference appears as the label. If the page number is not yet known (when the cross-referenced item has not yet been rendered, e.g., forward-references), the label will be used in any case.
The parameters are:
- name
-
The name of the cross-reference.
- label
-
Either
page
,title
, ortext
.page
will not be used for forward references; onlytitle
ortext
will be used. - text
-
Required if
label
has a value oftext
. Ignored iflabel
istitle
, optional iflabel
ispage
. This value will be used as the display text for the internal link.text
takes precedence overtitle
iflabel
ispage
.
Public Class Methods
[](pdf, params)
click to toggle source
# File lib/pdf/techbook.rb 249 def self.[](pdf, params) 250 name = params["name"] 251 item = params["label"] 252 text = params["text"] 253 254 xref = pdf.xref_table[name] 255 if xref 256 case item 257 when 'page' 258 label = xref[:page] 259 if text.nil? or text.empty? 260 label ||= xref[:title] 261 else 262 label ||= text 263 end 264 when 'title' 265 label = xref[:title] 266 when 'text' 267 label = text 268 end 269 270 "<c:ilink dest='#{xref[:xref]}'>#{label}</c:ilink>" 271 else 272 warn PDF::Writer::Lang[:techbook_unknown_xref] % [ name ] 273 PDF::Writer::Lang[:techbook_unknown_xref] % [ name ] 274 end 275 end