Linux Portable Core
Portable core biên dịch object model hiện có, parser simple-object, các helper Direct File I/O, trình thông dịch content-stream, các helper giá trị PDF, bộ ghi xref và trailer, backend Flate, và các primitive AES thành các chương trình Linux gốc với Free Pascal
HPDFPlatform cung cấp mapped file POSIX thực thụ và đọc theo vị trí, tạo tệp tạm, đồng bộ worker, và random bytes của hệ điều hành; adapter Windows giữ nguyên hành vi file và mapping gốc hiện có
Phạm vi nghiệm thu
Tests/Linux/Run-PortableCoreTests.sh dựng một executable console ELF x86_64 gốc, xóa các biến môi trường hiển thị desktop, kiểm tra dependency thư viện GUI, và chạy tám nhóm hồi quy với timeout
Các kiểm tra bao phủ escape của parser và tham chiếu indirect, giá trị PDF bất biến và stream filter, mapped window và offset sparse-file trên 4 GiB, stream spill bất đồng bộ đã nén, known answer Flate và AES, hash tệp MD5, random IV của hệ điều hành, tuần tự hóa classic xref hợp lệ, số trang và tra cứu object của Direct File, cùng vị trí văn bản và glyph của content-stream
Fixture một trang được tạo ra được ghi bởi writer hiện có và đọc độc lập qua các helper Direct File dùng chung; kiểm tra nội dung dùng cả resolver Latin-1 identity hiện có lẫn resolver font trang với khác biệt encoding và explicit widths
Dữ liệu font và decode văn bản
HPDFFontData tách decoding glyph-name, encoding, và sfnt CMap hiện có khỏi GDI; rendering glyph nhúng trên Windows và decoder HPDFTextExtraction hiện có dùng chung một cài đặt
THPDFTrueTypeData phơi bày tra cứu CMap được hỗ trợ, ánh xạ ngược glyph-to-Unicode, và các advance ngang hmtx cho một ảnh sfnt đơn font
HPDFBaseFontMetrics giữ provider GDI Windows và dùng Fontconfig với các font TrueType đã cài trên Linux cho các font chuẩn không khai báo explicit widths; việc thay thế phụ thuộc vào font đã cài và quy tắc Fontconfig
Hợp đồng helper nền tảng và font
THPDFPlatformHandle là một handle có dấu độ rộng native và HPDFInvalidFileHandle là -1; HPDFOpenReadOnlyFile và HPDFCloseFile quản lý read handle, trong khi HPDFFileSize và HPDFReadFileAt dùng vị trí Int64 và caller phải tự xử lý short read
HPDFMappingGranularity cung cấp alignment offset bắt buộc; HPDFCreateReadOnlyMapping trả về zero khi thất bại, HPDFMapReadOnly ánh xạ đúng vùng yêu cầu, và HPDFUnmapReadOnly / HPDFCloseMapping giải phóng view và mapping
HPDFCreateTemporaryFile tạo một tệp ở chế độ độc quyền mà đường dẫn và việc dọn dẹp thuộc về caller; HPDFInitializeLock / HPDFDeleteLock quản lý critical section native
THPDFPlatformEvent là alias của TEvent; HPDFCreateEvent, HPDFWaitEvent, HPDFSignalEvent, và HPDFResetEvent quản lý đồng bộ, và caller giải phóng event sau khi worker dừng
HPDFSecureRandomBytes điền buffer yêu cầu từ hệ điều hành hoặc raise exception
HPDFGlyphNameToUnicode, HPDFUnicodeToGlyphName, HPDFStdEncGlyphName, HPDFMacExpertEncGlyphName, và HPDFBaseEncToUnicode giữ nguyên hành vi tên và encoding hiện có; HPDFBaseFontFamilyToken loại bỏ hậu tố subset và style, còn HPDFIsStandardTextFont nhận diện các alias Helvetica, Times, và Courier
HPDFMeasureBaseFontWidths dùng provider GDI Windows hoặc Fontconfig Linux cùng các metric ngang sfnt dùng chung; THPDFTrueTypeData và THPDFUnicodeByGID cung cấp API font-data dùng chung
Các Direct File type dùng chung
HPDFDirectFileTypes sở hữu các định nghĩa THPDFKeyType, THPDFProtection, THPDFProtectOptions, THPDFDirectXrefEntry, THPDFDirectObjectSource, và THPDFDirectFileState hiện có
Việc tách này cho phép HPDFDirectFileIO dùng cùng các record và permission type mà không cần import component và cài đặt GUI
HPDFDoc giữ lại các alias và hằng giá trị enum dưới tên gốc; ordinal enum và layout record không thay đổi
Khởi tạo chương trình Linux
Chương trình Free Pascal gốc phải đặt cthreads đầu tiên trong danh sách uses trước khi dùng worker thread; bộ kiểm tra portable-core cũng nạp cwstring để cung cấp Unicode conversion manager
Dùng FPC 3.2.2 hoặc mới hơn với các unit FCL và paszlib, một C runtime, Fontconfig cùng các font TrueType đã cài, và các công cụ file, ldd, timeout; FPC_EXE và HPDF_LINUX_OUTPUT chọn compiler và thư mục đầu ra cô lập
Phần chuyển đổi còn lại
Giai đoạn này chưa phơi bày THotPDF trên Linux: nạp và lưu tài liệu tùy ý, phân giải page-resource đầy đủ, chỉnh sửa và appearance AcroForm, chữ ký, rendering, OCR, và C ABI vẫn cần tách nền tảng thêm nữa cùng nghiệm thu end-to-end
Xem Tests/Linux/Readme.en-us.md cho các hợp đồng adapter nền tảng, quyền sở hữu Direct File type, ranh giới hồi quy chính xác, Windows smoke runner, và các giai đoạn nghiệm thu còn lại