2010-07-22 32 views
13

Có phương tiện nào để lấy số liệu phông chữ trong SVG không? Tôi muốn nhận được: gốc, đi lên, chiều cao tối đa, trước.Số liệu SVG & phông chữ

Tôi cần điều này để vẽ văn bản & đồ họa với nhau như trong biểu đồ.

Ví dụ: tôi cần vẽ một hộp quanh văn bản và vẽ đường nối từ giữa kích thước cũ (kích thước của chữ 'x') chứ không phải từ chính giữa cạnh hộp.

Trả lời

3

Nếu bạn có quyền truy cập DOM thì có một số SVG DOM methods for text elements. Sau đó, có phương thức getBBox có sẵn trên hầu hết các phần tử svg.

Nếu bạn đang làm việc với SVGFonts, sau đó dữ liệu đã có sẵn trong định dạng xml như là thuộc tính bình thường, ví dụ như ascent, descent, vv

Đối với trường hợp sử dụng của bạn tôi khuyên bạn nên getBBox, vì nó có thể đối phó với đồ họa các yếu tố quá (trong trường hợp bạn muốn thêm nhiều thứ hơn là chỉ văn bản vào biểu đồ).

+2

Tôi chắc chắn sẽ không khuyên bạn sử dụng 'getBBox', vì nó chỉ tôn trọng giới hạn tuyệt đối của văn bản. Tuy nhiên, để đặt văn bản chính xác, một lần phải tôn trọng sự đi lên và đi xuống. Thuộc tính 'y' của SVGTextElement xác định vị trí thẳng đứng của _baseline_. Do đó chỉ sử dụng 'BBox' sẽ không giúp được gì nhiều. Vấn đề là, các phương thức DOM SVG không cho phép truy vấn thông tin đi lên và đi xuống! Tôi không có ý tưởng tại sao điều này thiếu trong Spec. – radlan

+2

Để tính toán gốc, đây là những gì tôi đã làm. Đặt "y" cho phần tử văn bản trong SVG thành 0. Bây giờ đường cơ sở của bạn bằng 0. Sau đó lấy thuộc tính "y2" từ getBBox và đó sẽ là chiều cao của "gốc" của bạn. – Chad

Các vấn đề liên quan