Σχεδίαση Σχημάτων και Υδατογραφιών

Σχεδίαση Σχημάτων και Υδατογραφιών

Σχεδίαση Σχημάτων και Υδατογραφήματα

Τα έγγραφα Word διατηρούν AutoShapes, εικόνες, πλαίσια κειμένου και αντικείμενα OLE σε ξεχωριστό επίπεδο σχεδίασης, διαχωρισμένο από τη ροή κειμένου παραγράφου/τρέχουσας. Aspose.Words FOSS για .NET μοντελοποιεί αυτό το επίπεδο με την κλάση Shape (συγκεκριμένα αντικείμενα σχεδίασης) και τη αφηρημένη βάση της ShapeBase, και τα δύο μέρος του ονοματοχώρου Aspose.Words.Drawing. Αυτός ο οδηγός καλύπτει το μοντέλο σχήματος, την εισαγωγή εικόνων και AutoShapes, την τοποθέτηση και την αναδίπλωση, γεμίσματα και εφέ, ομαδοποίηση και υδατογραφήματα.


Το Σχήμα και το Μοντέλο ShapeBase

Shape — κλεισμένο, και ο τύπος με τον οποίο εργάζεστε άμεσα — αντιπροσωπεύει ένα AutoShape, πλαίσιο κειμένου, ελεύθερη μορφή, αντικείμενο OLE, έλεγχο ActiveX ή εικόνα στο επίπεδο σχεδίασης. Προέρχεται από την αφηρημένη ShapeBase, η οποία παρέχει τις ιδιότητες που μοιράζονται όλα τα αντικείμενα σχεδίασης: θέση (Left, Top, Width, Height, Rotation), η τιμή του enum ShapeType, και υπο-αντικείμενα μορφοποίησης όπως Fill, Stroke, ShadowFormat, Glow και Reflection. GroupShape (επίσης ένα ShapeBase) αντιπροσωπεύει μια ομάδα σχημάτων που αντιμετωπίζεται ως μία μονάδα. Δημιουργήστε ένα αυτόνομο σχήμα απευθείας με new Shape(doc, shapeType), όπου το shapeType είναι μια τιμή ShapeType όπως Rectangle, Ellipse, Star ή TextBox, και, στη συνέχεια, εισάγετε το στο δέντρο με DocumentBuilder.InsertNode(node).


Εισαγωγή Εικόνων και AutoShapes με DocumentBuilder

Για τις εικόνες ειδικά, το DocumentBuilder.InsertImage είναι η πιο άμεση διαδρομή: οι υπερφορτώσεις δέχονται ένα Image, μια διαδρομή αρχείου, ένα Stream ή έναν ακατέργαστο πίνακα bytes, με περαιτέρω υπερφορτώσεις που ορίζουν ρητά width/height ή πλήρη τοποθέτηση (horzPos, left, vertPos, top, width, height, wrapType). Το αποτέλεσμα Shape αποκαλύπτει τα δεδομένα της εικόνας μέσω της ιδιότητας ImageData — ImageData.SetImage(...) για αντικατάσταση της εικόνας, συν CropTop/CropBottom/CropLeft/CropRight, Brightness, Contrast και GrayScale για βασικές ρυθμίσεις. Τα αντικείμενα GroupShape δημιουργούνται με DocumentBuilder.InsertGroupShape(shapes).


Τοποθέτηση και Αναδίπλωση Κειμένου

Η τοποθέτηση ενός σχήματος σε σχέση με τη σελίδα ελέγχεται από το RelativeHorizontalPosition και το RelativeVerticalPosition (κάθε ένα σε σχέση με το Page, Margin, Column ή παρόμοιους άγκυρους), μαζί με τις ιδιότητες μετατόπισης Left/Top. Τα HorizontalAlignment και VerticalAlignment διαχειρίζονται την απλή σχετική στοίχιση. Πώς το κείμενο γύρω από το σχήμα ρέει ορίζεται με το WrapType και, για περιτύλιξη ανά πλευρά, το WrapSide. Το IsInline αναφέρει εάν το σχήμα ρέει με το κείμενο (ενσωματωμένο) ή αιωρείται ανεξάρτητα.


Γέμισμα, Περιγράμματα και Εφέ

Shape.Fill (ένα αντικείμενο Fill) ελέγχει πώς χρωματίζεται το εσωτερικό του σχήματος: Fill.Solid(color) για μονόχρωμο, Fill.OneColorGradient(...) / Fill.TwoColorGradient(...) για διαβαθμίσεις, Fill.Patterned(patternType) για μοτίβο, και Fill.SetImage(...) για γέμισμα εικόνας· FillType αναφέρει ποιο από αυτά είναι ενεργό. Η περιγράμμιση ελέγχεται μέσω της ιδιότητας Stroke, και τα οπτικά εφέ εκτίθενται ως ξεχωριστά αντικείμενα μορφοποίησης — ShadowFormat, Glow (GlowFormat), Reflection (ReflectionFormat), και SoftEdge (SoftEdgeFormat) — το καθένα με τη δική του μέθοδο Remove() για να αφαιρέσει το εφέ.


Ομαδοποίηση Σχημάτων και Πλαισίων Κειμένου

Πολλά σχήματα μπορούν να συνδυαστούν σε ένα GroupShape, το οποίο λειτουργεί ως ένα ενιαίο ShapeBase με τα δικά του Fill, ShadowFormat, Glow και Reflection. Για ένα σχήμα που περιέχει κείμενο, το Shape.TextBox (ένα αντικείμενο TextBox) αποκαλύπτει τη διάταξη ειδική για κείμενο: InternalMarginLeft/Right/Top/Bottom για το περιθώριο, FitShapeToText για αυτόματο μέγεθος του σχήματος, LayoutFlow για την κατεύθυνση του κειμένου, και VerticalAnchor για την κατακόρυφη στοίχιση του κειμένου μέσα στο σχήμα.


Watermarks

Document.Watermark (ένα αντικείμενο Watermark) διαχειρίζεται ένα υδατογράφημα σε όλο το έγγραφο, ανεξάρτητα από οποιοδήποτε μεμονωμένο σχήμα. Καλέστε Watermark.SetText(text) ή SetText(text, options) για υδατογράφημα κειμένου, ή SetImage(...) για υδατογράφημα εικόνας, και Watermark.Remove() για να το αφαιρέσετε. Το Watermark.Type αναφέρει το τρέχον WatermarkType (Text, Image ή None). Το TextWatermarkOptions ελέγχει τα FontFamily, FontSize, Color και Layout (WatermarkLayout.Horizontal ή Diagonal); το ImageWatermarkOptions ελέγχει τα Scale και IsWashout.


Συμβουλές και Καλές Πρακτικές

  • Χρησιμοποιήστε το ShapeBase όταν γράφετε κώδικα που πρέπει να λειτουργεί τόσο για μεμονωμένες Shape όσο και για GroupShape περιπτώσεις· χρησιμοποιήστε το Shape απευθείας όταν χρειάζεστε μέλη ειδικά για εικόνα ή AutoShape, όπως το ImageData ή το Chart.
  • Ορίστε το RelativeHorizontalPosition / RelativeVerticalPosition μαζί με το WrapType όταν αιωρείτε ένα σχήμα — ένα ενσωματωμένο σχήμα (η προεπιλογή για το InsertImage) αγνοεί τις ιδιότητες τοποθέτησης μέχρι να το κάνετε να αιωρείται.
  • Προτιμήστε το Document.Watermark για ένα ενιαίο υδατογράφημα σε όλο το έγγραφο αντί να εισάγετε και να τοποθετήσετε χειροκίνητα ένα Shape πίσω από το κείμενο.
  • Καθαρίστε ένα εφέ με τη μέθοδο Remove() του αντικειμένου (ShadowFormat.Remove(), ReflectionFormat.Remove()) αντί να ορίζετε μεμονωμένες ιδιότητες στο μηδέν.
  • Ελέγξτε το Shape.HasImage, το Shape.HasChart ή το Shape.IsGroup πριν αποκτήσετε πρόσβαση στα ImageData, Chart ή σε μέλη συγκεκριμένα για ομάδες, καθώς ένα Shape μπορεί να αντιπροσωπεύει οποιοδήποτε από τα διάφορα είδη αντικειμένων σχεδίασης.

Κοινά Προβλήματα

ΠρόβλημαΑιτίαΔιόρθωση
Η ρύθμιση Left/Top σε ένα σχήμα δεν έχει ορατό αποτέλεσμαΤο σχήμα είναι ακόμη ενσωματωμένο (IsInline == true)Ορίστε το WrapType σε τιμή πλωτής και ορίστε το RelativeHorizontalPosition/RelativeVerticalPosition ώστε οι ιδιότητες τοποθέτησης να ισχύσουν
Το Shape.ImageData αποτυγχάνει ή είναι κενόΤο σχήμα δεν είναι σχήμα εικόναςΕλέγξτε το Shape.HasImage πριν διαβάσετε το ImageData
Το κείμενο υδατογραφήματος δεν ταιριάζει με τη ζητούμενη γραμματοσειράΔεν παρασχέθηκε TextWatermarkOptionsΠεράστε ένα αντικείμενο TextWatermarkOptions με το FontFamily ορισμένο σε Watermark.SetText(text, options)
Τα παιδικά σχήματα μιας ομάδας δεν κινούνται μαζίΤα παιδιά μετατοπίστηκαν απευθείας αντί μέσω της ομάδαςΜετακινήστε ή αλλάξτε το μέγεθος του GroupShape ώστε η μετασχηματισμός συντεταγμένων του να εφαρμόζεται σε όλα τα παιδιά

FAQ

Ποια είναι η διαφορά μεταξύ του Shape και του ShapeBase;

ShapeBase είναι η αφηρημένη βασική κλάση που μοιράζεται από Shape και GroupShape. Χρησιμοποιήστε το ShapeBase σε κώδικα που πρέπει να διαχειρίζεται ομοιόμορφα και τα δύο είδη· χρησιμοποιήστε το Shape όταν χρειάζεστε μέλη συγκεκριμένα για ένα μόνο αντικείμενο σχεδίασης, όπως ImageData ή Chart.

Πώς μπορώ να προσθέσω μια εικόνα σε ένα έγγραφο;

Χρησιμοποιήστε μία από τις υπερφορτώσεις του DocumentBuilder.InsertImage — περάστε ένα Image, μια διαδρομή αρχείου, ένα Stream ή έναν πίνακα byte, προαιρετικά με width/height ή πλήρη ορίσματα τοποθέτησης.

Πώς μπορώ να κάνω ένα σχήμα να αιωρείται αντί να βρίσκεται ενσωματωμένο στο κείμενο;

Ορίστε το WrapType του σε μη ενσωματωμένη τιμή και ορίστε το RelativeHorizontalPosition / RelativeVerticalPosition ώστε οι μετατοπίσεις Left/Top του σχήματος να ερμηνεύονται σε σχέση με τη σελίδα, το περιθώριο ή τη στήλη.

Μπορώ να προσθέσω και υδατογράφημα κειμένου και εικόνας;

Document.Watermark.Type αντικατοπτρίζει τον τρέχοντα τύπο υδατογραφήματος· ορίζοντας ένα νέο υδατογράφημα με SetText ή SetImage αντικαθιστά ό,τι υπήρχε προηγουμένως, έτσι ένα έγγραφο έχει το πολύ ένα ενεργό υδατογράφημα τη δεδομένη στιγμή.

Πώς μπορώ να αφαιρέσω τη σκιά ή την αντανάκλαση από ένα σχήμα;

Κλήστε Remove() στο αντίστοιχο αντικείμενο μορφοποίησης — Shape.ShadowFormat.Remove() ή Shape.Reflection.Remove().


API Reference Σύνοψη

Κλάση/ΜέθοδοςΠεριγραφή
ShapeΈνα μοναδικό αντικείμενο στρώσης σχεδίασης — AutoShape, εικόνα, πλαίσιο κειμένου ή αντικείμενο OLE.
ShapeBaseΑφηρημένη βασική κλάση που μοιράζεται από Shape και GroupShape.
GroupShapeΜια ομάδα σχημάτων που αντιμετωπίζεται ως ένα αντικείμενο σχεδίασης.
DocumentBuilder.InsertImageΕισάγει ένα σχήμα εικόνας στον δρομέα, με προαιρετικό μέγεθος και τοποθέτηση.
ImageDataΤα δεδομένα εικόνας και οι ρυθμίσεις εικόνας (περικοπή, φωτεινότητα, αντίθεση) σε ένα Shape.
FillΜορφοποίηση εσωτερικής γεμίσματος — συμπαγές, διαβάθμιση, μοτίβο ή εικόνα.
RelativeHorizontalPosition / RelativeVerticalPositionΣε τι μετράται η θέση ενός πλωτού σχήματος.
WrapType / WrapSideΠώς το περιβάλλον κείμενο περιτυλίγεται γύρω από ένα σχήμα.
TextBoxΡυθμίσεις διάταξης κειμένου για ένα σχήμα που περιέχει κείμενο.
Document.WatermarkΔιαχειρίζεται το υδατογράφημα κειμένου ή εικόνας του εγγράφου.
TextWatermarkOptions / ImageWatermarkOptionsΔιαμορφώστε την εμφάνιση υδατογραφήματος κειμένου ή εικόνας.

Δείτε επίσης

 Ελληνικά