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