Support embedded-only fonts - avoid loading defaults during initialization

Đang mở
#1,647 1 bình luận 2 reaction 0 người được giao Xem trên GitHub

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

Chưa có ai nhận issue này.

Đánh giá

Độ khó
3/5
Thời gian dự kiến
1-2 ngày
Mức phù hợp với người mới
42/100
Loại issue
Lỗi
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Đình trệ
Công nghệ
javascript
Lĩnh vực
backend

Hướng nghiên cứu

Bắt đầu từ hàm khởi tạo PDFDocument và lần theo đường dẫn khởi tạo tải các font mặc định, sau đó so sánh với registerFont() và font(). Công việc được xem là hoàn tất khi một tài liệu có thể được khởi tạo cho quy trình chỉ sử dụng font được nhúng mà không truy cập các đường dẫn font hệ thống, đồng thời cách sử dụng font được nhúng được cung cấp vẫn tiếp tục hoạt động.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

Bug Report

Description of the problem

PDFKit currently requires filesystem access to load default fonts during document initialization, even when later using only embedded fonts via registerFont(). This breaks in environments where system font paths are unavailable, e.g. compiled portable Deno executable in my case.

Code sample

// Fails - tries to load system fonts during initialization
const doc1 = new PDFDocument();

// Also fails - undefined still triggers default font loading
const doc2 = new PDFDocument({ font: undefined });

My current workaround is to initialize document with empty string to bypass default font loading, then register embedded fonts:

const doc = new PDFDocument({ font: "" }); // Skip system font loading
doc.registerFont('Courier', embeddedCourierData);
doc.font('Courier');

But would appreciate a cleaner solution.

Your environment

  • pdfkit version: 0.17.0
  • Node Deno version: 2.5.0
  • Browser version (if applicable): -
  • Operating System: Arch Linux
Ngôn ngữ chính
JavaScript
Star
10.7k
Fork
1.2k
Merge trung bình
22 giờ 55 phút
Pull request đã merge (30 ngày)
25

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

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 foliojs/pdfkit

Tất cả issue của foliojs/pdfkit

Issue tương tự

Thêm issue về JavaScript

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.