2015-12-09 6 views
0

Я создаю файлы PDF через ReportLab, но я не могу найти документацию о том, как создать индекс, связывающий страницы с файлами. Поддерживает ли ReportLab этот тип функции или есть ли другое решение?Создание индекса PDF с ReportLab

ответ

1

После долгих поисков я придумал решение anchor. Хотя я считаю, что это не идеальное решение для меня, я надеюсь, что это поможет кому-то в этом нуждается.

from reportlab.lib.styles import ParagraphStyle 
from reportlab.pdfbase.pdfmetrics import registerFont 
from reportlab.platypus import Paragraph, PageBreak, SimpleDocTemplate, Spacer 

registerFont(TTFont('Calibri', 'Calibri.ttf')) # Just some font imports 
registerFont(TTFont('Calibri-Bold', 'calibrib.ttf')) 

pH = ParagraphStyle(name = 'Header', fontName = 'Calibri-Bold', fontSize = 13, leftIndent = 20, firstLineIndent = -20, spaceBefore = 10, leading = 16) 
sH = ParagraphStyle(name = 'SubHeader', fontName = 'Calibri', fontSize = 12, leftIndent = 40, firstLineIndent = -20, spaceBefore = 5, leading = 16) 

doc = SimpleDocTemplate('Reports\\PDFname.pdf') 
story = [Spacer(1, 2 * inch)] 

story.append(Paragraph('<a href = page3.html#0>1. First Title</a>', pH)) # Linking the anchor to reference 0 
story.append(Paragraph('<a href = page3.html#1>1.1. First Subtitle</a>', sH)) # Linking the anchor to reference 1 
story.append(PageBreak()) 

story.append(Paragraph('<a name = page3.html#0></a> 1. First Title', pH)) # Creating anchor with reference 0 
story.append(Paragraph('<a name = page3.html#1></a><br/> 1.1. First Subtitle', style)) # Creating anchor with reference 1 

doc.build(story) 
Смежные вопросы