Kelola Objek Tinta Presentasi dalam JavaScript
Pendahuluan
PowerPoint menyediakan fitur tinta yang memungkinkan Anda menggambar goresan bebas. Tinta dapat digunakan untuk menyorot objek lain, menunjukkan hubungan dan proses, serta menarik perhatian ke item tertentu pada slide.
Aspose.Slides menyediakan tipe yang diperlukan untuk bekerja dengan objek tinta. Misalnya, kelas Ink merepresentasikan objek tinta pada slide.
Perbedaan antara Objek Biasa dan Objek Tinta
Objek pada slide PowerPoint biasanya direpresentasikan oleh objek shape. Dalam bentuk paling sederhana, shape adalah kontainer yang menentukan area objek itu sendiri (bingkainya) bersama properti seperti ukuran kontainer, bentuk, dan latar belakang. Untuk informasi lebih lanjut, lihat Shape Layout Format.
Namun, ketika PowerPoint menangani objek tinta, ia mengabaikan semua properti bingkai objek (kontainer) kecuali ukurannya. Ukuran area kontainer ditentukan oleh metode standar Shape.getWidth dan Shape.getHeight.

Jejak Tinta
Jejak tinta adalah elemen dasar yang digunakan untuk merekam lintasan pena saat pengguna menulis tinta digital. Jejak menyimpan urutan titik yang terhubung.
Bentuk enkoding paling sederhana menentukan koordinat X dan Y setiap titik sampel. Ketika semua titik yang terhubung dirender, mereka menghasilkan gambar seperti ini:

Properti Kuas untuk Menggambar
Kuas digunakan untuk menggambar garis yang menghubungkan titik-titik pada jejak tinta. Kuas memiliki warna dan ukuran masing-masing, yang direpresentasikan oleh metode InkBrush.getColor dan InkBrush.getSize.
Atur Warna Kuas Tinta
Kode JavaScript ini menunjukkan cara mengatur warna kuas tinta:
const aspose = {
slides: require("aspose.slides.via.java")
};
const java = require("java");
const presentation = new aspose.slides.Presentation("pres.pptx");
try {
const slide = presentation.getSlides().get_Item(0);
const ink = slide.getShapes().get_Item(0);
const brush = ink.getTraces()[0].getBrush();
const red = java.getStaticFieldValue("java.awt.Color", "RED");
brush.setColor(red);
} finally {
presentation.dispose();
}
Atur Ukuran Kuas Tinta
Kode JavaScript ini menunjukkan cara mengatur ukuran kuas tinta:
const aspose = {
slides: require("aspose.slides.via.java")
};
const java = require("java");
const presentation = new aspose.slides.Presentation("pres.pptx");
try {
const slide = presentation.getSlides().get_Item(0);
const ink = slide.getShapes().get_Item(0);
const brush = ink.getTraces()[0].getBrush();
const brushSize = java.newInstanceSync("java.awt.Dimension", 5, 10);
brush.setSize(brushSize);
} finally {
presentation.dispose();
}
Secara umum, lebar dan tinggi kuas tidak cocok, sehingga PowerPoint tidak menampilkan ukuran kuas (bagian data yang bersangkutan berwarna abu-abu). Ketika lebar dan tinggi kuas cocok, PowerPoint menampilkan ukurannya seperti ini:

Untuk kejelasan, mari tingkatkan tinggi objek tinta dan tinjau dimensi penting:

Kontainer (bingkai) tidak memperhitungkan ukuran kuas—ia selalu mengasumsikan ketebalan garis nol (lihat gambar sebelumnya).
Oleh karena itu, untuk menentukan area yang terlihat dari seluruh objek tinta, ukuran kuas pada jejak‑jejaknya harus diperhitungkan. Di sini, objek target (jejak teks tulisan tangan) telah diskalakan ke ukuran kontainer (bingkai). Ketika ukuran kontainer berubah, ukuran kuas tetap konstan, dan sebaliknya.

PowerPoint menggunakan perilaku serupa untuk objek teks:

Kontrol Tampilan Tinta selama Ekspor dan Rendering
Aspose.Slides menyediakan kelas InkOptions untuk mengendalikan bagaimana objek tinta tampil dalam output yang diekspor atau dirender. Anda dapat menggunakan propertinya untuk menyembunyikan tinta sepenuhnya atau mengubah cara operasi mask kuas tinta diinterpretasikan.
Ink options tersedia melalui opsi ekspor atau rendering untuk beberapa tipe output:
| Output | Properti opsi tinta |
|---|---|
PdfOptions.getInkOptions |
|
| HTML | HtmlOptions.getInkOptions |
| SVG | SVGOptions.getInkOptions |
| TIFF | TiffOptions.getInkOptions |
| Slide image | RenderingOptions.getInkOptions |
Metode InkOptions berikut mengekspos dua pengaturan yang sama:
- InkOptions.getHideInk menentukan apakah objek tinta termasuk dalam output. Nilai defaultnya adalah
false. - InkOptions.getInterpretMaskOpAsOpacity menentukan apakah operasi mask diinterpretasikan sebagai opacity saat merender kuas tinta. Nilai defaultnya adalah
true; panggil InkOptions.setInterpretMaskOpAsOpacity denganfalseuntuk menggunakan operasi ROP sebagai gantinya.
Sembunyikan Objek Tinta dalam Output PDF
Secara default, objek tinta tetap terlihat selama ekspor. Untuk membuat output bersih tanpa anotasi tulisan tangan atau konten tinta lainnya, panggil InkOptions.setHideInk dengan true.
Contoh JavaScript berikut mengekspor presentasi ke PDF sambil menyembunyikan semua objek tinta:
const aspose = {
slides: require("aspose.slides.via.java")
};
const presentation = new aspose.slides.Presentation("presentation.pptx");
try {
const pdfOptions = new aspose.slides.PdfOptions();
pdfOptions.getInkOptions().setHideInk(true);
presentation.save("presentation_without_ink.pdf", aspose.slides.SaveFormat.Pdf, pdfOptions);
} finally {
presentation.dispose();
}
Sembunyikan Objek Tinta saat Merender Slide sebagai Gambar
Untuk menyembunyikan objek tinta saat merender slide sebagai gambar bitmap, konfigurasikan RenderingOptions.getInkOptions dan berikan opsi rendering ke Slide.getImage.
Contoh JavaScript berikut merender slide pertama sebagai gambar PNG tanpa objek tinta:
const aspose = {
slides: require("aspose.slides.via.java")
};
const presentation = new aspose.slides.Presentation("presentation.pptx");
try {
const renderingOptions = new aspose.slides.RenderingOptions();
renderingOptions.getInkOptions().setHideInk(true);
const slide = presentation.getSlides().get_Item(0);
const image = slide.getImage(renderingOptions);
try {
image.save("slide_without_ink.png", aspose.slides.ImageFormat.Png);
} finally {
image.dispose();
}
} finally {
presentation.dispose();
}
Kontrol Rendering Mask Tinta
Pengaturan InkOptions.getInterpretMaskOpAsOpacity mengontrol bagaimana operasi mask diinterpretasikan saat merender kuas tinta. Nilai defaultnya adalah true, yang menggunakan opacity. Untuk menggunakan operasi ROP sebagai gantinya, panggil InkOptions.setInterpretMaskOpAsOpacity dengan false.
Contoh JavaScript berikut mengekspor slide ke SVG dan menggunakan rendering berbasis ROP untuk operasi mask tinta:
const aspose = {
slides: require("aspose.slides.via.java")
};
const java = require("java");
const presentation = new aspose.slides.Presentation("presentation.pptx");
try {
const svgOptions = new aspose.slides.SVGOptions();
svgOptions.getInkOptions().setInterpretMaskOpAsOpacity(false);
const outputStream = java.newInstanceSync("java.io.FileOutputStream", "slide.svg");
try {
const slide = presentation.getSlides().get_Item(0);
slide.writeAsSvg(outputStream, svgOptions);
} finally {
outputStream.close();
}
} finally {
presentation.dispose();
}
Pengaturan yang sama dapat diterapkan melalui TiffOptions.getInkOptions saat mengekspor presentasi atau merender slide ke TIFF.
Pilih untuk Menyembunyikan atau Mempertahankan Tinta
Ketika Anda memerlukan versi bersih dari presentasi beranotasi untuk distribusi tanpa tanda ulasan, panggil InkOptions.setHideInk dengan true selama ekspor.
Biarkan InkOptions.getHideInk pada nilai defaultnya false ketika anotasi tinta merupakan bagian dari konten yang diinginkan, seperti komentar ulasan, catatan tulisan tangan, penyorotan, atau gambar yang harus tetap terlihat dalam hasil yang diekspor. Hal ini memungkinkan aplikasi menghasilkan output ulasan dan final terpisah dari presentasi yang sama tanpa mengubah objek tinta sumber.
Tanya Jawab
Dapatkah saya mengubah warna atau ukuran goresan tinta yang ada?
Ya. Dapatkan jejak dari Ink.getTraces lalu ubah InkTrace.getBrush. Panggil InkBrush.setColor atau InkBrush.setSize untuk mengubah kuas.
Apakah menyembunyikan tinta mengubah presentasi sumber?
Tidak. Memanggil InkOptions.setHideInk hanya memengaruhi hasil yang dirender atau diekspor; ia tidak menghapus atau mengubah objek tinta dalam presentasi sumber.
Format ekspor mana yang mendukung opsi tinta?
Anda dapat mengonfigurasi opsi tinta untuk PDF, HTML, SVG, TIFF, dan gambar slide bitmap melalui opsi ekspor atau rendering yang bersesuaian yang ditunjukkan di atas.
Bacaan Lanjutan
- Untuk membaca tentang shape secara umum, lihat bagian PowerPoint Shapes.
- Untuk informasi lebih lanjut tentang nilai efektif, lihat Shape Effective Properties.
- Untuk detail tentang ekspor PDF, lihat Convert PPT and PPTX to PDF.
- Untuk detail tentang ekspor HTML, lihat Convert PowerPoint Presentations to HTML.
- Untuk detail tentang ekspor SVG, lihat Render Presentation Slides as SVG Images.
- Untuk detail tentang ekspor TIFF, lihat Convert PowerPoint Presentations to TIFF.
- Untuk detail tentang rendering slide ke gambar, lihat Convert Presentation Slides to Images.