|
Enhanced EMF/WMF Metafile Support
Prehľad
HotPDF teraz poskytuje výrazne rozšírenú podporu pre formáty Enhanced Metafile (EMF) a Windows Metafile (WMF) Nová implementácia zahŕňa automatickú detekciu formátu, viacero možností umiestnenia, pokročilé ovládanie škálovania a lepšiu kvalitu vykresľovania vektorovej grafiky v PDF dokumentoch
Key Enhancements
- Automatická detekcia formátu EMF/WMF a vhodné spracovanie
- Viacero možností umiestnenia (stred, ľavý horný roh, vlastné súradnice)
- Rozšírené ovládanie škálovania a pomeru strán
- Priame vykresľovanie EMF na zachovanie vektorovej grafiky
- Možnosť konverzie na bitmapu kvôli kompatibilite
- Zlepšená správa pamäte pri veľkých metafailoch
- Lepšie spracovanie zložitej vektorovej grafiky a textu
Position Control Options
Rozšírená podpora metafailov zahŕňa flexibilné možnosti umiestnenia:
- mpCenter: Metafile vycentrovaný na strane (predvolené správanie)
- mpLeftTop: Metafile zobrazený v ľavom hornom rohu (X=0, Y=0)
- mpCustom: Metafile zobrazený na zadanom mieste (vyžaduje parametre X, Y)
Usage Examples
Basic Usage (Default Centered Display)
// 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;
Position Control Usage
// 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;
Enhanced Methods
Rozšírená podpora EMF/WMF zavádza niekoľko nových metód:
THPDFPage.ShowMetafile Overloads
ShowMetafile(MetaFile: TMetafile) - Predvolené centrované zobrazenie
ShowMetafile(MetaFile: TMetafile; Position: THPDFMetafilePosition) - Ovládanie pozície
ShowMetafile(MetaFile: TMetafile; Position: THPDFMetafilePosition; X, Y: Single) - Vlastné umiestnenie
Enhanced Processing Methods
EnhancedShowMetafile - Pokročilé spracovanie s rozšírenými funkciami
RenderEmfDirect - Priame vykresľovanie EMF na zachovanie vektorov
RenderEmfAsBitmap - Konverzia na bitmapu kvôli kompatibilite
RenderWmfAsBitmap - Vykresľovanie WMF ako bitmapy s ovládaním pozície
Technical Implementation
Rozšírená podpora EMF/WMF je implementovaná cez jednotku HPDFEmf.pas, ktorá poskytuje:
- THPDFEmfEnhanced: Core enhancement class for EMF processing
- THPDFEmfPatcher: Utility class for EMF conversion and rendering
- THPDFMetafilePosition: Enumeration for position control
- Enhanced EMF Record Processing: Support for advanced EMF records
Advanced Features
EMF Record Support
- EMR_BITBLT - Bitmapové operácie
- EMR_STRETCHDIBITS - Rozťahované bitmapové operácie
- EMR_ALPHABLEND - Operácie alfa miešania
- Rozšírené vykresľovanie textu
- Zložité operácie s cestami
Rendering Options
- Vector Preservation: Maintains vector graphics quality
- Bitmap Fallback: Automatic fallback for complex graphics
- Scaling Options: Automatic and manual scaling control
- Quality Control: Configurable rendering quality settings
Performance Optimizations
- Pamäťovo úsporné spracovanie veľkých metafailov
- Optimalizované spracovanie záznamov EMF
- Inteligentné ukladanie opakovaných prvkov do cache
- Znížená pamäťová stopa počas konverzie
Compatibility and Standards
- Podpora Windows EMF 1.0 a Enhanced EMF
- Spätná kompatibilita s Windows Metafile (WMF)
- Konzistentné vykresľovanie naprieč platformami
- Súlad so štandardmi vektorovej grafiky PDF
Troubleshooting
Common Issues and Solutions:
- Large Metafiles: Use bitmap rendering for very large or complex metafiles
- Text Rendering: Ensure fonts are available on the target system
- Complex Graphics: Consider direct EMF rendering for better quality
- Positioning Issues: Use custom positioning for precise placement
See Also
|