Enhanced EMF/WMF Metafile Support

Pregled

HotPDF sada pruža znatno poboljšanu podršku za Enhanced Metafile (EMF) i Windows Metafile (WMF) formate Nova implementacija uključuje automatsko otkrivanje formata, više opcija pozicioniranja, naprednu kontrolu skaliranja i poboljšan kvalitet renderovanja vektorske grafike u PDF dokumentima

Key Enhancements

  • Automatsko otkrivanje EMF/WMF formata i odgovarajuća obrada
  • Više opcija pozicioniranja (centar, gore levo, prilagođene koordinate)
  • Poboljšana kontrola skaliranja i odnosa stranica
  • Direktno EMF renderovanje radi očuvanja vektorske grafike
  • Opcija konverzije u bitmap radi kompatibilnosti
  • Poboljšano upravljanje memorijom za velike metafile
  • Bolje rukovanje složenom vektorskom grafikom i tekstom

Opcije kontrole pozicije

Poboljšana podrška za metafajlove uključuje fleksibilne opcije pozicioniranja:

  • mpCenter: metafile centriran na stranici (podrazumevano ponašanje)
  • mpLeftTop: Metafile displayed at the top-left corner (X=0, Y=0)
  • mpCustom: Metafile displayed at specified position (requires X, Y parameters)

Primeri upotrebe

Osnovna upotreba (podrazumevano centriran prikaz)


// Delphi primer - Podrazumevano centriran prikaz
procedure ShowMetafileDefault;
var
  PDF: THotPDF;
  MetaFile: TMetafile;
begin
  PDF := THotPDF.Create(nil);
  MetaFile := TMetafile.Create;
  try
    PDF.BeginDoc;
    PDF.AddPage;

    // Učitajte metafajl
    MetaFile.LoadFromFile('diagram.emf');

    // Prikažite centrirano na stranici (podrazumevano)
    PDF.CurrentPage.ShowMetafile(MetaFile);

    PDF.EndDoc;
  finally
    MetaFile.Free;
    PDF.Free;
  end;
end;
        

Upotreba kontrole pozicije


// Delphi primer - Napredno pozicioniranje
procedure ShowMetafileAdvanced;
var
  PDF: THotPDF;
  MetaFile: TMetafile;
begin
  PDF := THotPDF.Create(nil);
  MetaFile := TMetafile.Create;
  try
    PDF.BeginDoc;
    PDF.AddPage;

    MetaFile.LoadFromFile('chart.wmf');

    // Prikaz u gornjem levom uglu
    PDF.CurrentPage.ShowMetafile(MetaFile, mpLeftTop);

    // Prikaz na prilagođenoj poziciji
    PDF.CurrentPage.ShowMetafile(MetaFile, mpCustom, 100, 200);

    PDF.EndDoc;
  finally
    MetaFile.Free;
    PDF.Free;
  end;
end;
        

Poboljšane metode

Poboljšana EMF/WMF podrška uvodi nekoliko novih metoda:

Preopterećenja THPDFPage.ShowMetafile

  • ShowMetafile(MetaFile: TMetafile) - Podrazumevano centriran prikaz
  • ShowMetafile(MetaFile: TMetafile; Position: THPDFMetafilePosition) - Kontrola pozicije
  • ShowMetafile(MetaFile: TMetafile; Position: THPDFMetafilePosition; X, Y: Single) - Prilagođeno pozicioniranje

Poboljšane metode obrade

  • EnhancedShowMetafile - Napredna obrada sa poboljšanim mogućnostima
  • RenderEmfDirect - Direktno EMF renderovanje radi očuvanja vektora
  • RenderEmfAsBitmap - Konverzija u bitmap radi kompatibilnosti
  • RenderWmfAsBitmap - WMF bitmap renderovanje sa kontrolom pozicije

Tehnička implementacija

Poboljšana EMF/WMF podrška je implementirana kroz jedinicu HPDFEmf.pas, koja obezbeđuje:

  • THPDFEmfEnhanced: Osnovna klasa poboljšanja za EMF obradu
  • THPDFEmfPatcher: Pomoćna klasa za EMF konverziju i renderovanje
  • THPDFMetafilePosition: Nabrajanje za kontrolu pozicije
  • Enhanced EMF Record Processing: Podrška za napredne EMF zapise

Advanced Features

EMF Record Support

  • EMR_BITBLT - Bitmap operations
  • EMR_STRETCHDIBITS - Stretched bitmap operations
  • EMR_ALPHABLEND - Alpha blending operations
  • Enhanced text rendering
  • Complex path operations

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

  • Memory-efficient processing for large metafiles
  • Optimized EMF record parsing
  • Intelligent caching for repeated elements
  • Reduced memory footprint during conversion

Compatibility and Standards

  • Windows EMF 1.0 and Enhanced EMF support
  • Windows Metafile (WMF) backward compatibility
  • Cross-platform rendering consistency
  • PDF vector graphics standards compliance

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

Vidi i