在 Prawn PDF 中使用 link_annotation 和 :Desc 选项
Using link_annotation with :Desc option in Prawn PDF
我一直在努力 link Pdf 中带有特定页面的文本标题,类似于 Pdf 文件中 Table of Contents
的 linking。我找到了 link_annotation
方法来实现这一点,但是没有足够的 documentation/examples 可以使用带有 :Desc
选项的 link_annotation
方法。
关于如何使用 link_annotation
和 :Desc
选项有什么想法吗?
Link 注释文档:https://www.rubydoc.info/gems/prawn-core/Prawn%2FDocument%2FAnnotations:link_annotation
为了将文本链接到特定页面的特定偏移量,Destinations
class 提供许多辅助方法。通过使用 dest_xyz,文本可以链接到特定偏移量的特定页面。
这是将第 1 页的文本链接到特定偏移量的第 2 页文本的工作示例。
require 'Prawn'
margin = 36.0
extra_clickable_margin = 4.0
top_offset = 500.0
@pdf = Prawn::Document.new(margin: margin, page_size: 'A4')
clickable_text = "Clickable Annotation to 2nd page at offset #{top_offset}"
text_width = @pdf.width_of(clickable_text)
text_height = @pdf.height_of(clickable_text)
cursor = @pdf.cursor
@pdf.text clickable_text
left = margin
top = cursor + margin + extra_clickable_margin
bottom = top - text_height - extra_clickable_margin
right = left + text_width
src_rect = [left, bottom, right, top]
@pdf = Prawn::Document.new(margin: margin, page_size: 'A4')
@pdf.start_new_page
@pdf.text 'Some Text for 2nd page. ' * 40
dest = @pdf.dest_xyz(0, top_offset, nil, @pdf.state.pages[1])
@pdf.link_annotation(src_rect, Dest: dest)
我一直在努力 link Pdf 中带有特定页面的文本标题,类似于 Pdf 文件中 Table of Contents
的 linking。我找到了 link_annotation
方法来实现这一点,但是没有足够的 documentation/examples 可以使用带有 :Desc
选项的 link_annotation
方法。
关于如何使用 link_annotation
和 :Desc
选项有什么想法吗?
Link 注释文档:https://www.rubydoc.info/gems/prawn-core/Prawn%2FDocument%2FAnnotations:link_annotation
为了将文本链接到特定页面的特定偏移量,Destinations
class 提供许多辅助方法。通过使用 dest_xyz,文本可以链接到特定偏移量的特定页面。
这是将第 1 页的文本链接到特定偏移量的第 2 页文本的工作示例。
require 'Prawn'
margin = 36.0
extra_clickable_margin = 4.0
top_offset = 500.0
@pdf = Prawn::Document.new(margin: margin, page_size: 'A4')
clickable_text = "Clickable Annotation to 2nd page at offset #{top_offset}"
text_width = @pdf.width_of(clickable_text)
text_height = @pdf.height_of(clickable_text)
cursor = @pdf.cursor
@pdf.text clickable_text
left = margin
top = cursor + margin + extra_clickable_margin
bottom = top - text_height - extra_clickable_margin
right = left + text_width
src_rect = [left, bottom, right, top]
@pdf = Prawn::Document.new(margin: margin, page_size: 'A4')
@pdf.start_new_page
@pdf.text 'Some Text for 2nd page. ' * 40
dest = @pdf.dest_xyz(0, top_offset, nil, @pdf.state.pages[1])
@pdf.link_annotation(src_rect, Dest: dest)