Dukungan Metafile EMF/WMF yang Ditingkatkan

Ikhtisar

HotPDF kini menyediakan dukungan yang jauh lebih baik untuk format Enhanced Metafile (EMF) dan Windows Metafile (WMF) Implementasi baru ini mencakup deteksi format otomatis, beberapa opsi penempatan, kontrol penskalaan lanjutan, dan kualitas rendering yang lebih baik untuk grafis vektor di dokumen PDF

Peningkatan utama

  • Deteksi format EMF/WMF otomatis dan pemrosesan yang sesuai
  • Beberapa opsi penempatan (tengah, kiri atas, koordinat kustom)
  • Kontrol penskalaan dan rasio aspek yang ditingkatkan
  • Rendering EMF langsung untuk menjaga grafis vektor
  • Opsi konversi bitmap untuk kompatibilitas
  • Manajemen memori yang lebih baik untuk metafile besar
  • Penanganan yang lebih baik untuk grafis vektor dan teks yang kompleks

Opsi kontrol posisi

Dukungan metafile yang ditingkatkan mencakup opsi penempatan yang fleksibel:

  • mpCenter: Metafile dipusatkan di halaman (perilaku default)
  • mpLeftTop: Metafile ditampilkan di sudut kiri atas (X=0, Y=0)
  • mpCustom: Metafile ditampilkan pada posisi yang ditentukan (memerlukan parameter X, Y)

Contoh penggunaan

Penggunaan dasar (tampilan terpusat default)


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

Penggunaan kontrol posisi


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

Metode yang ditingkatkan

Dukungan EMF/WMF yang ditingkatkan memperkenalkan beberapa metode baru:

Overload THPDFPage.ShowMetafile

  • ShowMetafile(MetaFile: TMetafile) - Default centered display
  • ShowMetafile(MetaFile: TMetafile; Position: THPDFMetafilePosition) - Position control
  • ShowMetafile(MetaFile: TMetafile; Position: THPDFMetafilePosition; X, Y: Single) - Custom positioning

Metode pemrosesan yang ditingkatkan

  • EnhancedShowMetafile - Advanced processing with enhanced features
  • RenderEmfDirect - Direct EMF rendering for vector preservation
  • RenderEmfAsBitmap - Bitmap conversion for compatibility
  • RenderWmfAsBitmap - WMF bitmap rendering with position control

Implementasi teknis

Dukungan EMF/WMF yang ditingkatkan diimplementasikan melalui unit HPDFEmf.pas, yang menyediakan:

  • THPDFEmfEnhanced: Class peningkatan inti untuk pemrosesan EMF
  • THPDFEmfPatcher: Class utilitas untuk konversi dan rendering EMF
  • THPDFMetafilePosition: Enumeration untuk kontrol posisi
  • Pemrosesan record EMF yang ditingkatkan: Dukungan untuk record EMF lanjutan

Fitur lanjutan

Dukungan record EMF

  • EMR_BITBLT - Bitmap operations
  • EMR_STRETCHDIBITS - Stretched bitmap operations
  • EMR_ALPHABLEND - Alpha blending operations
  • Rendering teks yang ditingkatkan
  • Operasi path yang kompleks

Opsi rendering

  • Preservasi vektor: Menjaga kualitas grafis vektor
  • Fallback bitmap: Fallback otomatis untuk grafis kompleks
  • Opsi penskalaan: Kontrol penskalaan otomatis dan manual
  • Kontrol kualitas: Pengaturan kualitas rendering yang dapat dikonfigurasi

Optimasi performa

  • Pemrosesan hemat memori untuk metafile besar
  • Parsing record EMF yang dioptimalkan
  • Cache cerdas untuk elemen yang berulang
  • Jejak memori yang lebih kecil selama konversi

Kompatibilitas dan standar

  • Dukungan Windows EMF 1.0 dan Enhanced EMF
  • Kompatibilitas mundur Windows Metafile (WMF)
  • Konsistensi rendering lintas platform
  • Kepatuhan pada standar grafis vektor PDF

Pemecahan masalah

Masalah umum dan solusinya:

  • Metafile besar: Gunakan rendering bitmap untuk metafile yang sangat besar atau kompleks
  • Rendering teks: Pastikan font tersedia di sistem target
  • Grafis kompleks: Pertimbangkan rendering EMF langsung untuk kualitas yang lebih baik
  • Masalah penempatan: Gunakan penempatan kustom untuk posisi yang presisi

Lihat juga