Fermer

mars 13, 2021

Images: pourquoi ne pas essayer les images flottantes?


Avec la dernière version, R1 2021, nous avons ajouté la prise en charge de l'exportation d'images flottantes au format de document PDF dans la bibliothèque RadWordsProcessing. Examinons plus en détail.

FloatingImage?

Si vous souhaitez envelopper du texte autour d'une image ou si vous souhaitez que l'image soit sur du texte ou derrière le texte, l'image doit flotter. En bref, c'est une ancre en ligne qui contient une image flottante avec un style d'habillage (nous allons examiner les options plus loin dans la section Emballage de cet article).

Voici à quoi ressemblent les images flottantes:

 Une page affiche deux sections de contenu. L'un a un texte à gauche avec une image à côté à droite;

Images en ligne et images flottantes

La bibliothèque RadWordsProcessing prend en charge deux types d'éléments d'image: ImageInline (élément de contenu de flux de niveau en ligne destiné à contenir un objet image) et FloatingImage (un élément de document de flux d'ancrage de niveau en ligne lié à un objet image flottant). Comme les titres le suggèrent, les premières sont des images en ligne, c'est-à-dire qu'une image est perçue comme un grand caractère, ce qui rend difficile de la déplacer uniquement en cliquant et en la faisant glisser. En conséquence, nous devons changer ces images en ligne en images flottantes pour ajuster facilement leur emplacement. Nous allons examiner cela dans les sections suivantes.

Insérer une FloatingImage

Vous pouvez facilement insérer une FloatingImage dans un RadFlowDocument qui sera ensuite exporté vers l'un des supports pris en charge. formats de documents (DOCX, HTML, RTF ou PDF). Voici un exemple d'insertion d'une image PNG dans un document Paragraphe à l'aide de la propriété ImageSource de la classe Image :

 RadFlowDocument document  =   nouveau   RadFlowDocument  () ; 
Section section  =  document .  Sections .  AddSection  () ; 
Paragraph paragraph  =  section .  Blocks .  AddParagraph  () ; 
 
 string  pathToImage  =   "Image.png" ; 
 chaîne  imageExtension  =   "png" ; 
 octet  []  imageData  =  Fichier .  ReadAllBytes  ( pathToImage ) ; 
 
FloatingImage floatingImage  =   nouveau   FloatingImage  ( document ) ; 
floatingImage .  Image .  ImageSource  =   new   Telerik .  Windows .  Documents .  Médias .  ImageSource  ( imageData  imageExtension ) ; 
 
paragraphe .  Inlines .  Add  ( floatingImage ) ; 

Pour plus de détails, consultez la page Insertion d'une image flottante ] rubrique d'aide.

Modifier une FloatingImage

Examinons d'abord les membres que la classe FloatingImage vous fournit:

Image

Représente l'objet image contenu dans FloatingImage. C'est un objet composite. Pour référence, vérifiez Image de classe .

AllowOverlap

Spécifie si l'image peut chevaucher le contenu des autres objets image. La valeur par défaut est true.

IsLocked

Spécifie si l'ancre peut être modifiée à l'exécution.

ShapeWrapping

Spécifie l'habillage de l'image (nous allons examiner les options plus tard dans la section Wrapping de ceci) .

LayoutInCell

Indique si la mise en page de l'image doit être calculée par rapport à la cellule contenant la forme.

IsBehindDocument

Indique si la forme doit être affichée derrière le contenu du document.

ZIndex [19659053] Spécifie le ZIndex de l'image flottante.

Marge

Représente les marges de l'image flottante.

HorizontalPosition

Spécifie la position horizontale de l'image flottante. C'est un objet composite. Pour référence, vérifiez Class HorizontalPosition .

VerticalPosition

Spécifie la position verticale de l'image flottante. C'est un objet composite. Pour référence, consultez Class VerticalPosition .

Pour plus de détails, consultez la rubrique d'aide Modify a FloatingImage .

Étendons notre exemple en positionnant l'image dans la page en utilisant HorizontalPosition et VerticalPosition :

 HorizontalPosition horizontalPosition  =   new   HorizontalPosition 
 {
    Alignement  =  Alignement horizontal relatif .  Centre 
    ValueType  =  PositionValueType .  Alignment 
} ; 
floatingImage .  HorizontalPosition  =  horizontalPosition ; 
 
VerticalPosition verticalPosition  =   nouveau   VerticalPosition  () 
 {
    Décalage  =   114 
    RelativeFrom  =  VerticalRelativeFrom .  TopMargin 
} ; 
floatingImage .  VerticalPosition  =  verticalPosition ; 

Nous allons voir le résultat dans la section suivante.

Wrapping

Le wrapping, c'est lorsque nous enroulons du texte une image.

La classe ShapeWrapping expose les deux propriétés suivantes qui nous aideront à définir le wrapping.

None

Aucun wrapping ne doit être utilisé pour l'élément associé. En effet, ce paramètre doit placer l'objet devant ou derrière le texte.

Square

Cet élément spécifie que le texte doit s'enrouler autour d'un rectangle virtuel délimitant cette forme.

TopAndBottom

Cet élément spécifie que le texte doit envelopper le haut et le bas de cet objet, mais pas ses bords gauche ou droit.

BothSides

Spécifie que le texte doit envelopper les deux côtés de l'objet.

LeftOnly

Spécifie que le texte doit s'enroule uniquement autour du côté gauche de l'objet.

RightOnly

Spécifie que le texte ne doit être enroulé que sur le côté droit de l'objet.

Plus grand

Spécifie que le texte ne doit être enroulé que sur le côté le plus grand de l'objet. objet ou celui de gauche si les deux côtés sont égaux.

Pour plus de détails, consultez la rubrique d'aide Modifier une image flottante .

Nous allons insérer du contenu textuel afin que nous puissions observer les différences dans plusieurs combinaisons:

 Run run  =   nouveau   Exécuter  ( document ) 
 {
    Text  =   "RadWordsProcessing est une bibliothèque .NET hautes performances qui permet aux utilisateurs d'importer et d'exporter sans effort des fichiers vers et depuis certains des formats les plus couramment utilisés. Les formats pris en charge incluent Open XML Word Document (.DOCX), Rich Text Format (.RTF), Text Files (.TXT) et Portable Document Format (.PDF). "
} ; 
 
paragraphe .  Inlines .  Add  ( run ) ; 

Pour les besoins de notre exemple, nous allons exporter le document vers Format PDF utilisant le Wordsprocessing`s PdfFormatProvider :

  string  documentName  =  $  "Exported.pdf"  ; 
 
 en utilisant   ( Stream output  =  File .  OpenWrite  ( documentName ) ) 
 { 
    Telerik .  Windows .  Documents .  Flow .  FormatProviders .  Pdf .  PdfFormatProvider provider  =  
         nouveau   Telerik .  Windows .  Documents .  Flow .  FormatProviders .  ] Pdf .  PdfFormatProvider  () ; 
    fournisseur .  Export  ( document  output ) ; 
} 

Ci-dessous, nous allons examiner plusieurs combinaisons entre les types d'habillage et modes d'habillage de texte mentionnés ci-dessus.

Aucun habillage de forme && Peu importe quel habillage de texte

L'implémentation: nous définissons le type d'habillage de l'image sur Aucun .

 floatingImage .  Wrapping .  WrappingType  =  ShapeWrappingType .  None ; 

Résultat: l'image est positionnée sur le texte.

 L'image de traitement RadWords obscurcit le texte.

Enveloppement de forme carrée && Habillage de texte à gauche seulement

La mise en œuvre: nous définissons le type d'habillage d'image sur Carré et le texte wrapping to LeftOnly .

 floatingImage .  Wrapping .  WrappingType  =  ShapeWrappingType .  Square ; 
floatingImage .  Wrapping .  TextWrap  =  TextWrap .  LeftOnly ; 

Résultat: le texte s'enroule autour du côté gauche de l'image.

 Le texte s'écoule le long du côté gauche de l'image de traitement RadWords.

Enveloppement en haut et en bas et peu importe quel habillage de texte

L'implémentation: nous définissons le type d'habillage de l'image sur TopAndBottom .

 floatingImage .  Wrapping .  WrappingType  =  ShapeWrappingType .  TopAndBottom . ] Le résultat: le texte s'enroule autour du haut et du bas de l'image. 

 Le texte apparaît au-dessus et au-dessous de l'image de traitement RadWords

Habillage de forme carrée et habillage de texte des deux côtés

L'implémentation: nous sommes définition du type d'habillage d'image sur Carré et d'habillage de texte sur BothSides .

 floatingImage .  Wrapping .  WrappingType  =  ShapeWrappingType .  Square ; 
floatingImage .  Wrapping .  TextWrap  =  TextWrap .  BothSides ; 

Le résultat: le texte s'enroule des deux côtés de l'image.

 L'image de traitement RadWords comporte du texte des deux côtés.

Essayez RadWordsProcessing Yourself

Que vous utilisiez déjà l'une de nos suites d'interface utilisateur ou que vous ne soyez pas (encore) un client Telerik, faites N'hésitez pas à consulter le Telerik Document Processing aujourd'hui et à doter vos applications de toutes sortes de capacités de traitement de documents!




Source link