Verbeterde EMF/WMF-metafileondersteuning

Overzicht

HotPDF biedt nu aanzienlijk verbeterde ondersteuning voor Enhanced Metafile (EMF) en Windows Metafile (WMF) De nieuwe implementatie bevat automatische formaatdetectie, meerdere positioneringsopties, geavanceerde schaalregeling en betere renderkwaliteit voor vectorafbeeldingen in PDF-documenten

Belangrijkste verbeteringen

  • Automatische detectie van EMF/WMF-formaat en passende verwerking
  • Meerdere positioneringsopties (centreren, linksboven, aangepaste coördinaten)
  • Verbeterde schaalregeling en aspectratio-bewaking
  • Directe EMF-rendering om vectorafbeeldingen te behouden
  • Bitmapconversieoptie voor compatibiliteit
  • Verbeterd geheugenbeheer voor grote metafiles
  • Betere afhandeling van complexe vectorafbeeldingen en tekst

Positioneringsopties

De verbeterde metafile-ondersteuning bevat flexibele positioneringsopties:

  • mpCenter: Metafile gecentreerd op de pagina (standaardgedrag)
  • mpLeftTop: Metafile weergegeven in de linkerbovenhoek (X=0, Y=0)
  • mpCustom: Metafile weergegeven op een opgegeven positie (vereist X-, Y-parameters)

Usage Examples

Basisgebruik (standaard gecentreerde weergave)


// Delphi-voorbeeld - Standaard gecentreerde weergave
procedure ShowMetafileDefault;
var
  PDF: THotPDF;
  MetaFile: TMetafile;
begin
  PDF := THotPDF.Create(nil);
  MetaFile := TMetafile.Create;
  try
    PDF.BeginDoc;
    PDF.AddPage;

    // Metafile laden
    MetaFile.LoadFromFile('diagram.emf');

    // Gecentreerd op de pagina weergeven (standaard)
    PDF.CurrentPage.ShowMetafile(MetaFile);

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

Gebruik van positioneringsregeling


// Delphi-voorbeeld - Geavanceerde positionering
procedure ShowMetafileAdvanced;
var
  PDF: THotPDF;
  MetaFile: TMetafile;
begin
  PDF := THotPDF.Create(nil);
  MetaFile := TMetafile.Create;
  try
    PDF.BeginDoc;
    PDF.AddPage;

    MetaFile.LoadFromFile('chart.wmf');

    // Weergave linksboven
    PDF.CurrentPage.ShowMetafile(MetaFile, mpLeftTop);

    // Weergave op aangepaste positie
    PDF.CurrentPage.ShowMetafile(MetaFile, mpCustom, 100, 200);

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

Uitgebreide methoden

De verbeterde EMF/WMF-ondersteuning introduceert meerdere nieuwe methoden:

THPDFPage.ShowMetafile-overloads

  • ShowMetafile(MetaFile: TMetafile) - Standaard gecentreerde weergave
  • ShowMetafile(MetaFile: TMetafile; Position: THPDFMetafilePosition) - Positioneringsregeling
  • ShowMetafile(MetaFile: TMetafile; Position: THPDFMetafilePosition; X, Y: Single) - Aangepaste positionering

Uitgebreide verwerkingsmethoden

  • EnhancedShowMetafile - Geavanceerde verwerking met uitgebreide functies
  • RenderEmfDirect - Directe EMF-rendering voor vectorbehoud
  • RenderEmfAsBitmap - Bitmapconversie voor compatibiliteit
  • RenderWmfAsBitmap - WMF-bitmaprendering met positioneringsregeling

Technische implementatie

De verbeterde EMF/WMF-ondersteuning is geïmplementeerd via de HPDFEmf.pas-unit, die het volgende biedt:

  • THPDFEmfEnhanced: Kernklasse voor EMF-verwerking
  • THPDFEmfPatcher: Hulpkklasse voor EMF-conversie en rendering
  • THPDFMetafilePosition: Enumeratie voor positioneringsregeling
  • Enhanced EMF Record Processing: Ondersteuning voor geavanceerde EMF-records

Geavanceerde functies

Ondersteuning voor EMF-records

  • EMR_BITBLT - Bitmapbewerkingen
  • EMR_STRETCHDIBITS - Uitgerekte bitmapbewerkingen
  • EMR_ALPHABLEND - Alfablendbewerkingen
  • Verbeterde tekstweergave
  • Complexe padbewerkingen

Renderopties

  • Vectorbehoud: Houdt de kwaliteit van vectorafbeeldingen vast
  • Bitmapfallback: Automatische fallback voor complexe afbeeldingen
  • Schaalopties: Automatische en handmatige schaalregeling
  • Kwaliteitsregeling: Instelbare kwaliteitsopties voor rendering

Prestatie-optimalisaties

  • Geheugenefficiënte verwerking van grote metafiles
  • Geoptimaliseerde parsing van EMF-records
  • Intelligente caching voor herhaalde elementen
  • Verkleinde geheugenvoetafdruk tijdens conversie

Compatibiliteit en standaarden

  • Ondersteuning voor Windows EMF 1.0 en Enhanced EMF
  • Terugwaartse compatibiliteit met Windows Metafile (WMF)
  • Consistente rendering op meerdere platforms
  • Naleving van PDF-standaarden voor vectorafbeeldingen

Probleemoplossing

Veelvoorkomende problemen en oplossingen:

  • Grote metafiles: Gebruik bitmaprendering voor zeer grote of complexe metafiles
  • Tekstrendering: Zorg dat lettertypen beschikbaar zijn op het doelsysteem
  • Complexe afbeeldingen: Overweeg directe EMF-rendering voor betere kwaliteit
  • Positioneringsproblemen: Gebruik aangepaste positionering voor nauwkeurige plaatsing

Zie ook