Menggambar Bentuk dan Tanda Air

Menggambar Bentuk dan Tanda Air

Menggambar Bentuk dan Watermark

Dokumen Word menyimpan AutoShapes, gambar, kotak teks, dan objek OLE dalam lapisan gambar terpisah, terpisah dari aliran teks paragraf/run. Aspose.Words FOSS untuk .NET memodelkan lapisan ini dengan kelas Shape (objek gambar konkret) dan basis abstraknya ShapeBase, keduanya merupakan bagian dari namespace Aspose.Words.Drawing. Panduan ini mencakup model bentuk, menyisipkan gambar dan AutoShapes, penempatan dan pembungkus, isian dan efek, pengelompokan, serta watermark.


Model Bentuk dan ShapeBase

Shape — sealed, dan tipe yang Anda gunakan secara langsung — mewakili sebuah AutoShape, kotak teks, bentuk bebas, objek OLE, kontrol ActiveX, atau gambar di lapisan gambar. Ia diturunkan dari ShapeBase abstrak, yang menyediakan properti yang dibagikan oleh setiap objek gambar: posisi (Left, Top, Width, Height, Rotation), nilai enum ShapeType, dan sub-objek pemformatan seperti Fill, Stroke, ShadowFormat, Glow, dan Reflection. GroupShape (juga sebuah ShapeBase) mewakili sekelompok bentuk yang diperlakukan sebagai satu unit. Buat bentuk mandiri secara langsung dengan new Shape(doc, shapeType), di mana shapeType adalah nilai ShapeType seperti Rectangle, Ellipse, Star, atau TextBox, kemudian sisipkan ke dalam pohon dengan DocumentBuilder.InsertNode(node).


Menyisipkan Gambar dan AutoShapes dengan DocumentBuilder

Untuk gambar secara khusus, DocumentBuilder.InsertImage adalah jalur yang lebih langsung: overload menerima sebuah Image, jalur file, Stream, atau array byte mentah, dengan overload tambahan yang menetapkan width/height secara eksplisit atau penempatan lengkap (horzPos, left, vertPos, top, width, height, wrapType). Shape yang dihasilkan mengekspos data gambarnya melalui properti ImageData — ImageData.SetImage(...) untuk mengganti gambar, plus CropTop/CropBottom/CropLeft/CropRight, Brightness, Contrast, dan GrayScale untuk penyesuaian dasar. Instance GroupShape dibuat dengan DocumentBuilder.InsertGroupShape(shapes).


Penempatan dan Pembungkus Teks

Penempatan sebuah bentuk relatif terhadap halaman dikendalikan oleh RelativeHorizontalPosition dan RelativeVerticalPosition (masing-masing relatif terhadap Page, Margin, Column, atau jangkar serupa), bersama dengan properti offset Left/Top. HorizontalAlignment dan VerticalAlignment menangani penyelarasan relatif sederhana. Bagaimana teks di sekitarnya mengalir di sekitar bentuk diatur dengan WrapType dan, untuk pembungkus sisi-spesifik, WrapSide. IsInline melaporkan apakah bentuk mengalir bersama teks (inline) atau mengambang secara mandiri.


Isi, Garis, dan Efek

Shape.Fill (sebuah objek Fill) mengontrol bagaimana interior bentuk diwarnai: Fill.Solid(color) untuk warna datar, Fill.OneColorGradient(...) / Fill.TwoColorGradient(...) untuk gradien, Fill.Patterned(patternType) untuk pola, dan Fill.SetImage(...) untuk isian gambar; FillType melaporkan mana yang aktif. Garis tepi diatur melalui properti Stroke, dan efek visual disajikan sebagai objek pemformatan terpisah — ShadowFormat, Glow (GlowFormat), Reflection (ReflectionFormat), dan SoftEdge (SoftEdgeFormat) — masing-masing dengan metode Remove()nya untuk menghapus efek.


Pengelompokan Bentuk dan Kotak Teks

Beberapa bentuk dapat digabungkan menjadi sebuah GroupShape, yang pada dasarnya berperilaku sebagai satu ShapeBase dengan Fill, ShadowFormat, Glow, dan Reflection miliknya sendiri. Untuk sebuah bentuk yang memuat teks, Shape.TextBox (sebuah objek TextBox) memperlihatkan tata letak khusus teks: InternalMarginLeft/Right/Top/Bottom untuk padding, FitShapeToText untuk mengubah ukuran bentuk secara otomatis, LayoutFlow untuk arah teks, dan VerticalAnchor untuk perataan teks vertikal di dalam bentuk.


Watermarks

Document.Watermark (sebuah objek Watermark) mengelola watermark seluruh dokumen yang independen dari bentuk manapun. Panggil Watermark.SetText(text) atau SetText(text, options) untuk watermark teks, atau SetImage(...) untuk watermark gambar, dan Watermark.Remove() untuk menghapusnya. Watermark.Type melaporkan WatermarkType saat ini (Text, Image, atau None). TextWatermarkOptions mengontrol FontFamily, FontSize, Color, dan Layout (WatermarkLayout.Horizontal atau Diagonal); ImageWatermarkOptions mengontrol Scale dan IsWashout.


Tips dan Praktik Terbaik

  • Gunakan ShapeBase saat menulis kode yang harus berfungsi pada kedua instance Shape tunggal dan GroupShape; gunakan Shape secara langsung ketika Anda memerlukan anggota khusus gambar atau AutoShape seperti ImageData atau Chart.
  • Atur RelativeHorizontalPosition / RelativeVerticalPosition bersama dengan WrapType saat mengapungkan sebuah bentuk — bentuk inline (default untuk InsertImage) mengabaikan properti posisi sampai Anda menjadikannya mengapung.
  • Lebih pilih Document.Watermark untuk watermark satu dokumen secara keseluruhan daripada memasukkan dan memposisikan Shape secara manual di belakang teks.
  • Hapus efek dengan metode Remove() objeknya (ShadowFormat.Remove(), ReflectionFormat.Remove()) alih-alih mengatur properti individual menjadi nol.
  • Periksa Shape.HasImage, Shape.HasChart, atau Shape.IsGroup sebelum mengakses ImageData, Chart, atau anggota khusus grup, karena Shape dapat mewakili salah satu dari beberapa jenis objek gambar.

Masalah Umum

MasalahPenyebabPerbaikan
Mengatur Left/Top pada sebuah bentuk tidak memberikan efek yang terlihatBentuk tersebut masih inline (IsInline == true)Setel WrapType ke nilai floating dan setel RelativeHorizontalPosition/RelativeVerticalPosition agar properti penempatan berpengaruh
Shape.ImageData melempar atau kosongBentuk tersebut bukan bentuk gambarPeriksa Shape.HasImage sebelum membaca ImageData
Teks watermark tidak cocok dengan font yang dimintaTidak ada TextWatermarkOptions yang disediakanBerikan sebuah instance TextWatermarkOptions dengan FontFamily diatur ke Watermark.SetText(text, options)
Bentuk anak dalam grup tidak bergerak bersamaAnak-anak dipindahkan secara langsung alih-alih melalui grupPindahkan atau ubah ukuran GroupShape itu sendiri sehingga transformasi koordinatnya berlaku untuk semua anak

FAQ

Apa perbedaan antara Shape dan ShapeBase?

ShapeBase adalah kelas dasar abstrak yang dibagi oleh Shape dan GroupShape. Gunakan ShapeBase dalam kode yang harus menangani kedua jenis secara seragam; gunakan Shape ketika Anda memerlukan anggota khusus untuk satu objek gambar, seperti ImageData atau Chart.

Bagaimana cara menambahkan gambar ke dokumen?

Gunakan salah satu overload DocumentBuilder.InsertImage — berikan sebuah Image, jalur file, Stream, atau array byte, secara opsional dengan width/height atau argumen penempatan lengkap.

Bagaimana cara membuat bentuk mengapung alih-alih berada sejajar dengan teks?

Atur WrapType ke nilai non-inline dan atur RelativeHorizontalPosition / RelativeVerticalPosition sehingga offset Left/Top bentuk diinterpretasikan relatif terhadap halaman, margin, atau kolom.

Apakah saya dapat menambahkan watermark teks dan gambar sekaligus?

Document.Watermark.Type mencerminkan tipe watermark saat ini; menetapkan watermark baru dengan SetText atau SetImage menggantikan apa pun yang sebelumnya ada, sehingga sebuah dokumen hanya dapat memiliki satu watermark aktif pada satu waktu.

Bagaimana cara menghapus bayangan atau refleksi dari bentuk?

Panggil Remove() pada objek pemformatan yang sesuai — Shape.ShadowFormat.Remove() atau Shape.Reflection.Remove().


API Reference Ringkasan

Kelas/MetodeDeskripsi
ShapeSebuah objek lapisan gambar tunggal — AutoShape, gambar, kotak teks, atau objek OLE.
ShapeBaseKelas dasar abstrak yang dibagikan oleh Shape dan GroupShape.
GroupShapeSekelompok bentuk yang diperlakukan sebagai satu objek gambar.
DocumentBuilder.InsertImageMenyisipkan bentuk gambar pada kursor, dengan ukuran dan penempatan opsional.
ImageDataData gambar dan penyesuaian gambar (pemotongan, kecerahan, kontras) pada Shape.
FillPemformatan isian interior — padat, gradien, pola, atau gambar.
RelativeHorizontalPosition / RelativeVerticalPositionApa yang menjadi acuan pengukuran posisi bentuk mengambang.
WrapType / WrapSideBagaimana teks di sekitarnya membungkus bentuk.
TextBoxPengaturan tata letak teks untuk bentuk yang berisi teks.
Document.WatermarkMengelola watermark teks atau gambar pada dokumen.
TextWatermarkOptions / ImageWatermarkOptionsMengonfigurasi tampilan watermark teks atau gambar.

Lihat Juga

 Bahasa Indonesia