|
Enhanced EMF/WMF Metafile Support
Vue d’ensemble
HotPDF fournit désormais une prise en charge nettement améliorée des formats Enhanced Metafile (EMF) et Windows Metafile (WMF)
La nouvelle implémentation ajoute la détection automatique du format, plusieurs options de positionnement, un contrôle avancé de l’échelle
et une meilleure qualité de rendu pour les graphiques vectoriels dans les documents PDF
Améliorations principales
- Détection automatique du format EMF/WMF et traitement approprié
- Plusieurs options de positionnement (centré, coin supérieur gauche, coordonnées personnalisées)
- Contrôle amélioré de l’échelle et du ratio d’aspect
- Rendu EMF direct pour préserver les graphiques vectoriels
- Option de conversion en bitmap pour la compatibilité
- Meilleure gestion mémoire pour les gros métafiles
- Meilleure prise en charge des graphiques vectoriels complexes et du texte
Options de contrôle du positionnement
La prise en charge améliorée des métafiles inclut des options de positionnement flexibles :
- mpCenter: Métafile centré sur la page (comportement par défaut)
- mpLeftTop: Métafile affiché dans le coin supérieur gauche (X=0, Y=0)
- mpCustom: Métafile affiché à la position spécifiée (paramètres X et Y requis)
Exemples d’utilisation
Utilisation de base (affichage centré par défaut)
// 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;
Utilisation du contrôle de position
// 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;
Méthodes améliorées
La prise en charge EMF/WMF améliorée introduit plusieurs nouvelles méthodes :
Surcharges de THPDFPage.ShowMetafile
ShowMetafile(MetaFile: TMetafile) - Affichage centré par défaut
ShowMetafile(MetaFile: TMetafile; Position: THPDFMetafilePosition) - Contrôle du positionnement
ShowMetafile(MetaFile: TMetafile; Position: THPDFMetafilePosition; X, Y: Single) - Positionnement personnalisé
Méthodes de traitement améliorées
EnhancedShowMetafile - Traitement avancé avec fonctions améliorées
RenderEmfDirect - Rendu EMF direct pour préserver les vecteurs
RenderEmfAsBitmap - Conversion en bitmap pour la compatibilité
RenderWmfAsBitmap - Rendu bitmap WMF avec contrôle du positionnement
Implémentation technique
La prise en charge EMF/WMF améliorée est implémentée dans l’unité HPDFEmf.pas, qui fournit :
- THPDFEmfEnhanced: Classe centrale d’amélioration pour le traitement EMF
- THPDFEmfPatcher: Classe utilitaire pour la conversion et le rendu EMF
- THPDFMetafilePosition: Énumération pour le contrôle du positionnement
- Enhanced EMF Record Processing: Prise en charge des enregistrements EMF avancés
Fonctions avancées
Prise en charge des enregistrements EMF
- EMR_BITBLT - Opérations bitmap
- EMR_STRETCHDIBITS - Opérations bitmap étirées
- EMR_ALPHABLEND - Opérations de fusion alpha
- Rendu du texte amélioré
- Opérations de chemins complexes
Options de rendu
- Préservation des vecteurs: Conserve la qualité des graphiques vectoriels
- Solution de secours bitmap: Repli automatique pour les graphiques complexes
- Options d’échelle: Contrôle automatique et manuel de l’échelle
- Contrôle qualité: Paramètres de qualité de rendu configurables
Optimisations de performance
- Traitement économe en mémoire pour les grands métafiles
- Analyse optimisée des enregistrements EMF
- Mise en cache intelligente pour les éléments répétés
- Empreinte mémoire réduite pendant la 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
Voir aussi
|