간단한 검정색 막대에 흰색 텍스트가있는 머리글을 사용하려고합니다 (페이지의 내용과 함께 실제 머리글을 사용하는 것은 복잡합니다). 이 오류를 주면서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 소스에서 어떻게해야하는지 아이디어를 얻을 수 있습니다. –
정보를 제공해 주셔서 감사합니다. 내가 그것에 대해 충분히 알지 못했는지 또는 그것이 진정한 버그인지는 알기가 항상 어렵습니다. 나는 박스를 직접 그리는 것을 좋아하지 만 헤더에는없는 동안 캔버스에 액세스 할 수없는 것처럼 보입니다. 내가 어떻게 그 일을 할 수 있는지 안다면 ... – DeltaG
문서에서 헤더로 할 수없는 정보는 무엇이 필요합니까? 나는 해결책이 있다고 생각하지만, 아마도 당신의 필요를 이해하지 못하고 있습니다. –