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, or text. page will not be used for forward references; only title or text will be used.

text

Required if label has a value of text. Ignored if label is title, optional if label is page. This value will be used as the display text for the internal link. text takes precedence over title if label is page.

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