Kibővített EMF/WMF metafile támogatás

Áttekintés

A HotPDF mostantól jelentősen kibővített támogatást nyújt az Enhanced Metafile (EMF) és Windows Metafile (WMF) formátumokhoz. Az új implementáció automatikus formátumfelismerést, több pozicionálási lehetőséget, fejlett méretezés-szabályozást és jobb renderelési minőséget tartalmaz a PDF dokumentumokban lévő vektorgrafikákhoz

Főbb fejlesztések

  • Automatikus EMF/WMF formátumfelismerés és megfelelő feldogozás
  • Többféle pozicionálási lehetőség (középre igazított, bal felső, egyéni koordináták)
  • Kibővített méretezés és képarány-szabályozás
  • Közvetlen EMF renderelés a vektorgrafikák megőrzéséhez
  • Bitkép-konverziós opció a kompatibilitáshoz
  • Javított memóriakezelés a nagy méretű metafile-okhoz
  • Összetett vektorgrafikák és szövegek jobb kezelése

Pozíciószabályozási lehetőségek

A kibővített metafile támogatás rugalmas pozicionálási lehetőségeket tartalmaz:

  • mpCenter: Középre igazított metafile az oldalon (alapértelmezett viselkedés)
  • mpLeftTop: A bal felső sarokban megjelenő metafile (X=0, Y=0)
  • mpCustom: A megadott pozícióban megjelenő metafile (X, Y paramétereket igényel)

Használati példák

Alapvető használat (Alapértelmezett középre igazított megjelenítés)


// 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;
        

Pozíciószabályozás használata


// 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;
        

Kibővített metódusok

A kibővített EMF/WMF támogatás több új metódust vezet be:

THPDFPage.ShowMetafile túlterhelések

  • ShowMetafile(MetaFile: TMetafile) - Alapértelmezett középre igazított megjelenítés
  • ShowMetafile(MetaFile: TMetafile; Position: THPDFMetafilePosition) - Pozíciószabályozás
  • ShowMetafile(MetaFile: TMetafile; Position: THPDFMetafilePosition; X, Y: Single) - Egyéni pozicionálás

Kibővített feldolgozási metódusok

  • EnhancedShowMetafile - Speciális feldolgozás kibővített funkciókkal
  • RenderEmfDirect - Közvetlen EMF renderelés a vektorok megőrzéséhez
  • RenderEmfAsBitmap - Bitkép-konverzió a kompatibilitáshoz
  • RenderWmfAsBitmap - WMF bitkép-renderelés pozíciószabályozással

Technikai implementáció

A kibővített EMF/WMF támogatás a HPDFEmf.pas egységen keresztül van implementálva, amely a következőket biztosítja:

  • THPDFEmfEnhanced: Alapvető bővítményosztály az EMF feldolgozáshoz
  • THPDFEmfPatcher: Segédosztály az EMF konverzióhoz és rendereléshez
  • THPDFMetafilePosition: Felsorolás a pozíciószabályozáshoz
  • Enhanced EMF Record Processing: Támogatás a speciális EMF rekordokhoz

Speciális funkciók

EMF rekord támogatás

  • EMR_BITBLT - Bitkép-műveletek
  • EMR_STRETCHDIBITS - Nyújtott bitkép-műveletek
  • EMR_ALPHABLEND - Alfa-keverési műveletek
  • Kibővített szövegenderelés
  • Összetett útvonal-műveletek

Renderelési opciók

  • Vector Preservation: Megőrzi a vektorgrafika minőségét
  • Bitmap Fallback: Automatikus bitkép-tartalékmegoldás az összetett grafikákhoz
  • Scaling Options: Automatikus és kézi méretezés-szabályozás
  • Quality Control: Konfigurálható renderelési minőségbeállítások

Teljesítmény-optimalizálások

  • Memóriahatékony feldolgozás nagy metafile-ok esetén
  • Optimalizált EMF rekord-elemzés
  • Intelligens gyorsítótárazás az ismétlődő elemekhez
  • Csökkentett memóriaigény a konverzió során

Kompatibilitás és szabványok

  • Windows EMF 1.0 és kibővített EMF támogatás
  • Windows Metafile (WMF) visszamenőleges kompatibilitás
  • Keresztplatformos renderelési konzisztencia
  • Megfelelés a PDF vektorgrafikai szabványoknak

Hibaelhárítás

Gyakori problémák és megoldások:

  • Nagy méretű metafile-ok: Használjon bitkép-renderelést a nagyon nagy vagy összetett metafile-okhoz
  • Szövegrenderelés: Győződjön meg arról, hogy a betűtípusok elérhetők a céleszközön
  • Összetett grafikák: Fontolja meg a közvetlen EMF renderelést a jobb minőség érdekében
  • Pozicionálási problémák: Használjon egyéni pozicionálást a pontos elhelyezéshez

Lásd még