Căn chỉnh dọc với ngắt dòng chương trình. Thuật toán cho một ô:
- Đếm số ký tự trong dữ liệu (
iTextLen
).
- Tìm số dòng văn bản trong ô (
iLineNum
). Tính toán theo kinh nghiệm.
- Tìm độ dài hàng theo ký tự (
iLineLen
). Tính toán theo kinh nghiệm.
Tính số đếm nửa số theo công thức (iLineNum — 1) — (iTextLen/iLineLen)
.
@formula
trong cú pháp tinh thể:
Local NumberVar iLineNum:= 5;
Local NumberVar iLineLen:= 30;
Local NumberVar iTextLen:= Length({DataSource});
Local StringVar sRet:= '';
Local NumberVar i;
Local NumberVar iLinesNum:= Truncate(iLineNum - 1) - Truncate(iTextLen/iLineLen);
For i:= 1 to iLinesNum Do (sRet:= sRet + chr(13));
sRet
Thêm công thức để các đỉnh và đáy của dữ liệu. Đối tượng văn bản sẽ trông giống như sau:
{@formula}{DataSource}{@formula}
Kích thước phông chữ @formula
phải được giảm một nửa kích thước phông chữ {DataSource}
. Ví dụ, nếu kích thước phông chữ của {DataSource}
bằng 20, các @formula
nên bằng 10:
Thuật toán hoạt động tốt hơn với kiểu chữ đơn cách, nhưng với kiểu chữ tỷ lệ làm việc trong hầu hết các trường hợp.
Thuật toán cho nhiều ô chỉ khác nhau iLineNum
sẽ là số ký tự tối đa trong dữ liệu của tất cả các ô.
Nguồn
2016-01-31 08:06:01
Không dành cho văn bản trung tâm. – Richard
Thật đáng tiếc ... –