2010-07-21 4 views
2

두 개 이상의 페이지에서 테이블 행을 분할하는 기능이 있는지 궁금합니다. 원인은 행의 일부 정보가 한 페이지에 비해 너무 길어서 한 행이 페이지 크기보다 길면 예외가 발생하기 때문입니다.Python Reportlab RML. 두 페이지에 테이블 행을 분할하는 방법

+0

거기에 어떤 해결책이 있습니까? 나는이 문제도 가지고 있으며 그것은 나에게 매우 중요하다. 도와주세요! –

답변

0

ReportLab은 상자에서 텍스트를 래핑하지 않으므로 테이블 셀에서 para를 사용하고 있거나 simpleSplit을 사용하여 수동으로 줄을 바꾼다고 가정합니다.

당신이 텍스트는 텍스트 멀티 라인 인 경우 한 줄 문자열은 다음 사용자가 정의한 폭의 사각형 영역에서 작업하는 가정

from reportlab.pdfbase.pdfmetrics import stringWidth 
textWidth = stringWidth(text, fontName, fontSize) 

를 사용할 수 있다면, 할

from reportlab.lib.utils import simpleSplit 
lines = simpleSplit(text, fontName, fontSize, maxWidth) 

lines은 단락의 모든 줄 목록입니다. 줄 간격 값을 알고 있으면 단락의 높이를 lineSpacing * len (lines)으로 계산할 수 있습니다.

(preppy, django, ninja 등)에있는 템플릿을 사용하여 텍스트를위한 좋은 위반 점을 찾아 현재 행을 끝내고 새 행을 시작합니다.

나는이

추신 Meitham을

도움이되기를 바랍니다 언제든지 질문을 reportlab 메일 링리스트에 보낼 수 있으며 대개이 질문에 답하는 것이 매우 빠릅니다.

+0

지금은 "새 라인"으로 텍스트를 분할 한 다음 라인 목록으로 작업하면서 각 라인은 테이블에서 한 행을 얻습니다. 그러나 ReportLab RML 패키지에는 자동으로 텍스트를 분할하는 기능이 있어야한다고 생각합니다. 여가 시간이 있으면이 버그에 대한 패치를 작성하려고합니다. –

+0

테이블 셀에서 para를 사용하면 셀 데이터를 분할하는 데 도움이되지 않습니다. –

관련 문제