Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

Offer missing document fonts before conversion

Đã đóng
#413 2 bình luận 0 reaction 1 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

@Perricheno đang làm issue này rồi.

Từ ngày 22/10/2026.

Đánh giá

Issue này chưa được đánh giá.

Mô tả

enhancement

Problem

Office and HWPX documents can name fonts that are not installed on the computer. Filee currently substitutes them silently. The result may stay readable, but different font metrics can change wrapping, pagination and table layout. #409 prevents completely blank text when rhwp's own fallback fonts are absent, but it intentionally does not solve exact document typography.

Proposed flow

When a text-rendering step discovers missing families:

  1. Keep the conversion in the bottom-right progress card and pause before the final render.
  2. Show the missing families and the replacements Filee would use, for example: Times New Roman → Liberation Serif.
  3. Offer Get fonts, Continue with replacements, and Cancel.
  4. After fonts are installed, release the font cache, check the families again, and resume the same job. If some are still absent, keep the remaining list visible.

For freely licensed families, Filee can download a pinned archive with a checksum and install it per user. For proprietary families, it should not redistribute font files silently: Get fonts can open the official source or let the user choose font files they already obtained.

Non-interactive conversions

  • CLI: print the missing families and substitutions, then continue by default; a future --require-fonts option can fail instead.
  • Watch folders: use a saved continue/fail policy so an unattended job never waits forever.

Implementation notes

RhwpFonts.Plan already knows which families are absent and which replacements it chose. The missing piece is an interactive question on a ConversionJob/FileResult, rendered by ToastWindow, whose answer the running conversion can await. LibreOffice routes need an OOXML/HWPX preflight because substitution happens inside LibreOffice.

Acceptance cases

  • No prompt when every referenced family is installed.
  • A DOCX referencing absent Times New Roman/Calibri lists both before rendering.
  • Continuing produces the current fallback result.
  • Installing an available font refreshes discovery and resumes without restarting Filee.
  • Cancelling removes partial outputs.
  • CLI and watch-folder conversions never block on a GUI prompt.
Ngôn ngữ chính
C#
Star
3.6k
Fork
192
Merge trung bình
5 giờ 40 phút
Pull request đã merge (30 ngày)
210

Chuẩn bị môi trường

Dự án này không cung cấp dev container, Dockerfile hay hướng dẫn đóng góp, nên bạn cần tự thiết lập môi trường: hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của KnifeLemon/Filee

Tất cả issue của KnifeLemon/Filee

Issue tương tự

Thêm issue về C#

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.