2
我試圖在簡單的黑色條(帶有來自頁面的內容,因此做一個實際的標題是複雜的)的白色文本標題。問題是,該文本的背景似乎並不與文本縮放,如在我的MWI:Reportlab文本背景大小與字體大小不匹配
from reportlab.lib import colors
from reportlab.lib.enums import TA_JUSTIFY, TA_RIGHT, TA_CENTER, TA_LEFT
from reportlab.lib.pagesizes import letter, landscape
from reportlab.platypus import PageTemplate, Frame, NextPageTemplate, BaseDocTemplate, SimpleDocTemplate, Paragraph, Spacer, Image, Table, TableStyle, PageBreak
from reportlab.platypus import ListFlowable, ListItem
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.units import inch
from reportlab.rl_config import defaultPageSize
from reportlab.pdfbase.pdfmetrics import stringWidth
from reportlab.pdfgen import canvas
#c = canvas.Canvas("tables.pdf")
doc = SimpleDocTemplate("mwi.pdf",pagesize=letter,
rightMargin=72,leftMargin=72,
topMargin=72,bottomMargin=60)
styles=getSampleStyleSheet()
styles.add(ParagraphStyle(name='Table Top Black Back', fontName ='Helvetica',fontSize=14, backColor = colors.black, textColor=colors.white, alignment=TA_LEFT))
styles.add(ParagraphStyle(name='Table Top Red Back', fontName ='Helvetica',fontSize=9, backColor = colors.red, textColor=colors.black, alignment=TA_LEFT))
styleN = styles["BodyText"]
# Header
# report: topic/subtopic overview
report = []
ptext = 'Test'
report.append(Paragraph(ptext, styles["Table Top Black Back"]))
report.append(Spacer(1, 24))
ptext = 'Test'
report.append(Paragraph(ptext, styles["Table Top Black Back"]))
report.append(Spacer(1, 24))
ptext = 'Test'
report.append(Paragraph(ptext, styles["Table Top Red Back"]))
report.append(Spacer(1, 48))
# Build Document
doc.build(report)
這看起來像我在ReportLab中的一個錯誤。您可能想要將其報告給開發人員。與此同時,解決方法可能是在所需大小和顏色的文本後面手動繪製一個框。當然,讓它匹配文本的大小將會非常棘手,但您可以查看ReportLab源文件以獲取有關如何執行此操作的想法。 – 2013-02-19 13:47:54
感謝您的信息。我總是很難分辨,如果我對它不夠了解,或者它是一個真正的bug。我喜歡自己畫盒子,但我似乎無法訪問畫布,而不是在標題中。如果你知道我該怎麼做... – DeltaG 2013-02-19 17:40:21
你需要從文檔中得到什麼信息,這不能用頭來完成?我想我有一個解決方案,但也許我不瞭解你的需求 – 2013-02-23 00:44:13