|
Hỗ trợ metafile EMF/WMF nâng cao
Tổng quan
HotPDF hiện cung cấp hỗ trợ tăng cường đáng kể cho các định dạng Enhanced Metafile (EMF) và Windows Metafile (WMF)
Cài đặt mới bao gồm tự động nhận dạng định dạng, nhiều tùy chọn định vị, kiểm soát co giãn nâng cao,
và chất lượng kết xuất được cải thiện cho đồ họa vector trong tài liệu PDF
Cải tiến chính
- Tự động nhận dạng định dạng EMF/WMF và xử lý phù hợp
- Nhiều tùy chọn định vị (giữa trang, góc trên-trái, tọa độ tùy chỉnh)
- Kiểm soát tỉ lệ và tỉ lệ khung hình tốt hơn
- Render EMF trực tiếp để giữ nguyên chất lượng đồ họa vector
- Tùy chọn chuyển sang bitmap để tương thích
- Quản lý bộ nhớ tốt hơn cho các metafile lớn
- Xử lý tốt hơn đồ họa vector và văn bản phức tạp
Tùy chọn điều khiển vị trí
Hỗ trợ metafile nâng cao bao gồm các tùy chọn định vị linh hoạt:
- mpCenter: Metafile được căn giữa trang (hành vi mặc định)
- mpLeftTop: Metafile hiển thị ở góc trên-trái (X=0, Y=0)
- mpCustom: Metafile hiển thị tại vị trí đã chỉ định (cần tham số X, Y)
Ví dụ sử dụng
Cách dùng cơ bản (hiển thị căn giữa mặc định)
// Delphi example - Default centered display
procedure ShowMetafileDefault;
var
PDF: THotPDF;
MetaFile: TMetafile;
begin
PDF := THotPDF.Create(nil);
MetaFile := TMetafile.Create;
try
PDF.BeginDoc;
PDF.AddPage;
// Load metafile
MetaFile.LoadFromFile('diagram.emf');
// Display centered on page (default)
PDF.CurrentPage.ShowMetafile(MetaFile);
PDF.EndDoc;
finally
MetaFile.Free;
PDF.Free;
end;
end;
Cách dùng điều khiển vị trí
// Delphi example - Advanced positioning
procedure ShowMetafileAdvanced;
var
PDF: THotPDF;
MetaFile: TMetafile;
begin
PDF := THotPDF.Create(nil);
MetaFile := TMetafile.Create;
try
PDF.BeginDoc;
PDF.AddPage;
MetaFile.LoadFromFile('chart.wmf');
// Top-left corner display
PDF.CurrentPage.ShowMetafile(MetaFile, mpLeftTop);
// Custom position display
PDF.CurrentPage.ShowMetafile(MetaFile, mpCustom, 100, 200);
PDF.EndDoc;
finally
MetaFile.Free;
PDF.Free;
end;
end;
Các phương thức nâng cao
Hỗ trợ EMF/WMF nâng cao giới thiệu một số phương thức mới:
Các overload của THPDFPage.ShowMetafile
ShowMetafile(MetaFile: TMetafile) - hiển thị căn giữa mặc định
ShowMetafile(MetaFile: TMetafile; Position: THPDFMetafilePosition) - điều khiển vị trí
ShowMetafile(MetaFile: TMetafile; Position: THPDFMetafilePosition; X, Y: Single) - định vị tùy chỉnh
Các phương thức xử lý nâng cao
EnhancedShowMetafile - xử lý nâng cao với các tính năng mở rộng
RenderEmfDirect - render EMF trực tiếp để giữ vector
RenderEmfAsBitmap - chuyển sang bitmap để tương thích
RenderWmfAsBitmap - render WMF dạng bitmap với điều khiển vị trí
Cài đặt kỹ thuật
Hỗ trợ EMF/WMF nâng cao được cài qua unit HPDFEmf.pas, unit này cung cấp:
- THPDFEmfEnhanced: lớp tăng cường lõi cho xử lý EMF
- THPDFEmfPatcher: lớp tiện ích cho chuyển đổi và render EMF
- THPDFMetafilePosition: enum cho điều khiển vị trí
- Enhanced EMF Record Processing: hỗ trợ các bản ghi EMF nâng cao
Tính năng nâng cao
Hỗ trợ bản ghi EMF
- EMR_BITBLT - thao tác bitmap
- EMR_STRETCHDIBITS - thao tác bitmap co giãn
- EMR_ALPHABLEND - thao tác trộn alpha
- Render văn bản nâng cao
- Thao tác đường dẫn phức tạp
Tùy chọn render
- Giữ vector: duy trì chất lượng đồ họa vector
- Dự phòng bitmap: tự động rơi về bitmap cho đồ họa phức tạp
- Tùy chọn co giãn: điều khiển co giãn tự động và thủ công
- Điều khiển chất lượng: thiết lập chất lượng render có thể cấu hình
Tối ưu hiệu năng
- Xử lý tiết kiệm bộ nhớ cho metafile lớn
- Phân tích bản ghi EMF được tối ưu
- Cache thông minh cho các phần tử lặp lại
- Giảm footprint bộ nhớ trong lúc chuyển đổi
Tương thích và tiêu chuẩn
- Hỗ trợ Windows EMF 1.0 và Enhanced EMF
- Tương thích ngược với Windows Metafile (WMF)
- Tính nhất quán render trên nhiều nền tảng
- Tuân thủ tiêu chuẩn đồ họa vector PDF
Khắc phục sự cố
Vấn đề thường gặp và cách xử lý:
- Metafile lớn: dùng render bitmap cho metafile rất lớn hoặc rất phức tạp
- Render văn bản: bảo đảm phông có sẵn trên hệ thống đích
- Đồ họa phức tạp: cân nhắc render EMF trực tiếp để có chất lượng tốt hơn
- Sự cố định vị: dùng định vị tùy chỉnh cho vị trí chính xác
Xem thêm
|