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é