|
Enhanced EMF/WMF – podpora
Přehled
HotPDF nyní poskytuje výrazně rozšířenou podporu formátů Enhanced Metafile (EMF) a Windows Metafile (WMF)
Nová implementace zahrnuje automatickou detekci formátu, několik možností umístění, pokročilé řízení měřítka
a lepší kvalitu vykreslování vektorové grafiky v dokumentech PDF
Klíčová vylepšení
- Automatická detekce formátu EMF/WMF a odpovídající zpracování
- Několik možností umístění (střed, levý horní roh, vlastní souřadnice)
- Rozšířené řízení měřítka a poměru stran
- Přímé vykreslení EMF pro zachování vektorové grafiky
- Volitelný převod na bitmapu kvůli kompatibilitě
- Lepší správa paměti pro velké metafiles
- Lepší zpracování složité vektorové grafiky a textu
Možnosti řízení umístění
Rozšířená podpora metafiles zahrnuje flexibilní možnosti umístění:
- mpCenter: Metafile vycentrovaný na stránce (výchozí chování)
- mpLeftTop: Metafile zobrazený v levém horním rohu (X=0, Y=0)
- mpCustom: Metafile zobrazený na zadané pozici (vyžaduje parametry X, Y)
Příklady použití
Základní použití (výchozí vycentrované zobrazení)
// 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;
Použití řízení umístění
// 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;
Rozšířené metody
Rozšířená podpora EMF/WMF zavádí několik nových metod:
THPDFPage.ShowMetafile Overloads
ShowMetafile(MetaFile: TMetafile) - výchozí vycentrované zobrazení
ShowMetafile(MetaFile: TMetafile; Position: THPDFMetafilePosition) - řízení umístění
ShowMetafile(MetaFile: TMetafile; Position: THPDFMetafilePosition; X, Y: Single) - vlastní umístění
Rozšířené metody zpracování
EnhancedShowMetafile - pokročilé zpracování s rozšířenými funkcemi
RenderEmfDirect - přímé vykreslení EMF pro zachování vektorů
RenderEmfAsBitmap - převod na bitmapu kvůli kompatibilitě
RenderWmfAsBitmap - bitmapové vykreslení WMF s řízením umístění
Technická implementace
Rozšířená podpora EMF/WMF je implementovaná přes jednotku HPDFEmf.pas, která poskytuje:
- THPDFEmfEnhanced: jádrová třída rozšíření pro zpracování EMF
- THPDFEmfPatcher: pomocná třída pro převod a vykreslení EMF
- THPDFMetafilePosition: výčet pro řízení umístění
- Enhanced EMF Record Processing: podpora pokročilých záznamů EMF
Pokročilé funkce
Podpora záznamů EMF
- EMR_BITBLT - bitmapové operace
- EMR_STRETCHDIBITS - operace s nataženou bitmapou
- EMR_ALPHABLEND - operace alfa blendingu
- Rozšířené vykreslování textu
- Operace se složitými cestami
Možnosti vykreslení
- Zachování vektorů: udržuje kvalitu vektorové grafiky
- Bitmapový fallback: automatický fallback pro složitou grafiku
- Možnosti měřítka: automatické a ruční řízení měřítka
- Řízení kvality: konfigurovatelné nastavení kvality vykreslení
Optimalizace výkonu
- Paměťově úsporné zpracování velkých metafiles
- Optimalizované parsování záznamů EMF
- Inteligentní cache pro opakované prvky
- Menší paměťová stopa během převodu
Kompatibilita a standardy
- Podpora Windows EMF 1.0 a Enhanced EMF
- Zpětná kompatibilita Windows Metafile (WMF)
- Konzistence vykreslování napříč platformami
- Soulad se standardy vektorové grafiky PDF
Řešení potíží
Běžné problémy a řešení:
- Velké metafiles: pro velmi velké nebo složité metafiles použijte bitmapové vykreslení
- Vykreslování textu: ověřte, že fonty jsou dostupné na cílovém systému
- Složitá grafika: pro lepší kvalitu zvažte přímé vykreslení EMF
- Problémy s umístěním: pro přesné umístění použijte vlastní pozici
Viz také
|