cuốn sách gpt4 ai đã làm

Số liệu phông chữ không chính xác/thiếu trong Java?

In lại Tác giả: Taklimakan Thời gian cập nhật: 2023-11-03 03:14:46 29 4
mua khóa gpt4 Nike

Bằng cách sử dụng một phông chữ nhất định, tôi sử dụng FontLayout của Java để xác định phần tăng, phần giảm và phần đầu của nó. (Xem hướng dẫn FontLayout của Java đây)

Trong trường hợp cụ thể của tôi, tôi đang sử dụng Arial Unicode MS với cỡ chữ 8. Sử dụng mã sau đây:

    Phông chữ = Phông chữ mới ("Arial Unicode MS", 0, 8);
Bố cục TextLayout = TextLayout mới ("Pp", phông chữ,
FontRenderContext mới (null, true, true));
System.out.println( "Đi lên: "+layout.getAscent());
System.out.println( "Descent: "+layout.getDescent());
System.out.println( "Dẫn đầu: "+layout.getLeading());

Java cung cấp cho tôi các giá trị sau:

    Đi lên: 8.550781
Gốc: 2.1679688
Dẫn đầu: 0,0

Cho đến nay rất tốt. Tuy nhiên, nếu tôi sử dụng tổng các giá trị này làm khoảng cách dòng cho từng dòng văn bản riêng lẻ thì điều này rất khác so với khoảng cách dòng được sử dụng trong OpenOffice, Microsoft Word, v.v.: nó nhỏ hơn. Khi sử dụng khoảng cách dòng đơn mặc định, khoảng cách dòng của Word và OO dường như xấp xỉ 13,7pt (thay vì như tôi đã tính toán bằng cách sử dụng số liệu phông chữ Java ở trên10.7pt).

bất kỳ ý tưởng nào

  1. tại sao vậy?
  2. Có cách nào để tôi có thể truy cập thông tin phông chữ mà Word và OpenOffice dường như đang truy cập, gây ra khoảng cách dòng khác nhau này không?

Những điều tôi đã thử cho đến nay:

  • sử dụng font.getNumGlyphs() v.v. để thêm tất cả các glyph vào vectơ glyph - vẫn nhận được cùng một giá trị thông số phông chữ
  • Sử dụng nhiều dòng như mô tả đây - Mỗi hàng tôi nhận được đều có số liệu phông chữ giống như trên.
  • sử dụng Số liệu phông chữ phương pháp chẳng hạn getLeading()

câu trả lời hay nhất

Zarkonnen lẽ ra không nên bỏ phiếu chống lại điều đó vì anh ấy đang đi đúng hướng. Nhiều phông chữ Java dường như trả về số 0 làm ký tự hàng đầu của chúng, trong khi có lẽ không nên như vậy. có thể xuống tớithis bug : Tôi không biết. Có vẻ như bạn có thể đặt lại không gian đó.

Chiều cao của dòng sắp chữ thường được xác định là bậc lên + bậc xuống + bậc trên. Đi lên và đi xuống được đo lên và xuống từ đường cơ sở nơi có ký tự và dẫn đầu là khoảng cách giữa dòng giảm dần của một dòng và dòng tăng dần của dòng bên dưới.

alt text

Nhưng sự dẫn đầu không cố định. Bạn có thể đặt hàng đầu trong hầu hết các phần mềm xử lý văn bản và sắp chữ. Word gọi đây là khoảng cách dòng. Câu hỏi ban đầu có thể là hỏi cách Microsoft Word tính toán khoảng cách dòng đơn của nó. của Microsoftđề xuất cho phông chữ OpenTypeCó vẻ như chỉ ra rằng phần mềm trên các nền tảng khác nhau tính toán khác nhau. (Có lẽ đây là lý do tại sao bây giờ Java trả về 0?)

Một tìm kiếm nhanh trên Google dường như chỉ ra rằng quy tắc ngón tay cái dành cho lãnh đạo là 120% tăng + giảm đối với giãn cách dòng đơn hoặc khoảng cách điểm cố định; khoảng cách 2 điểm giữa tất cả các dòng. Nếu tôi không thể tìm thấy bất kỳ quy tắc cứng hoặc nhanh nào, tôi sẽ nói rằng nó phụ thuộc vào mức độ dễ đọc của văn bản bạn đang trình bày và bạn chỉ nên sử dụng những gì bạn cho là tốt nhất.

Giới thiệu về java - Số liệu phông chữ không chính xác/thiếu trong Java? , chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/925147/

29 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress