Kelola Objek Tinta Presentasi di Android

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, antarmuka IInk mewakili sebuah objek tinta pada slide.

Perbedaan antara Objek Biasa dan Objek Tinta

Objek pada slide PowerPoint biasanya direpresentasikan oleh objek bentuk. Dalam bentuk paling sederhana, sebuah bentuk adalah wadah yang menentukan area objek itu sendiri (kerangka) beserta properti seperti ukuran wadah, bentuk, dan latar belakang. Untuk informasi lebih lanjut, lihat Format Tata Letak Bentuk.

Namun, ketika PowerPoint menangani objek tinta, ia mengabaikan semua properti kerangka objek (wadah) kecuali ukurannya. Ukuran area wadah ditentukan oleh metode standar IShape.getWidth dan IShape.getHeight :

ink_powerpoint1

Jejak Tinta

Jejak tinta adalah elemen dasar yang digunakan untuk merekam lintasan pena saat pengguna menulis tinta digital. Sebuah jejak menyimpan urutan titik yang terhubung.

Bentuk enkoding paling sederhana menetapkan koordinat X dan Y setiap titik sampel. Ketika semua titik terhubung dirender, mereka menghasilkan gambar seperti ini:

ink_powerpoint2

Properti Kuas untuk Menggambar

Kuas digunakan untuk menggambar garis yang menghubungkan titik‑titik pada jejak tinta. Kuas memiliki warna dan ukuran sendiri, yang direpresentasikan oleh metode IInkBrush.getColor dan IInkBrush.getSize .

Mengatur Warna Kuas Tinta

Berikut kode Java yang memperlihatkan cara mengatur warna kuas tinta:

import android.graphics.Color;
import com.aspose.slides.*;

Presentation presentation = new Presentation("pres.pptx");
try {
    ISlide slide = presentation.getSlides().get_Item(0);
    IInk ink = (IInk) slide.getShapes().get_Item(0);
    IInkBrush brush = ink.getTraces()[0].getBrush();
    brush.setColor(Color.RED);
} finally {
    presentation.dispose();
}

Mengatur Ukuran Kuas Tinta

Berikut kode Java yang memperlihatkan cara mengatur ukuran kuas tinta:

import com.aspose.slides.*;
import com.aspose.slides.android.SizeF;

Presentation presentation = new Presentation("pres.pptx");
try {
    ISlide slide = presentation.getSlides().get_Item(0);
    IInk ink = (IInk) slide.getShapes().get_Item(0);
    IInkBrush brush = ink.getTraces()[0].getBrush();
    SizeF brushSize = new SizeF(5, 10);
    brush.setSize(brushSize);
} finally {
    presentation.dispose();
}

Secara umum, lebar dan tinggi kuas tidak sama, sehingga PowerPoint tidak menampilkan ukuran kuas (bagian data yang bersangkutan berwarna abu‑abu). Ketika lebar dan tinggi kuas cocok, PowerPoint menampilkan ukurannya seperti ini:

ink_powerpoint3

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

ink_powerpoint4

Wadah (kerangka) 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 wadah (kerangka). Ketika ukuran wadah berubah, ukuran kuas tetap konstan, dan sebaliknya.

ink_powerpoint5

PowerPoint menggunakan perilaku serupa untuk objek teks:

ink_powerpoint6

Mengontrol Penampilan Tinta Saat Ekspor dan Rendering

Aspose.Slides menyediakan antarmuka IInkOptions untuk mengontrol bagaimana objek tinta muncul dalam output yang diekspor atau dirender. Anda dapat menggunakan propertinya untuk menyembunyikan tinta sepenuhnya atau mengubah cara operasi masker kuas tinta ditafsirkan.

Opsi tinta tersedia melalui opsi ekspor atau rendering untuk beberapa tipe output:

Output Properti opsi tinta
PDF PdfOptions.getInkOptions
HTML HtmlOptions.getInkOptions
SVG SVGOptions.getInkOptions
TIFF TiffOptions.getInkOptions
Gambar slide RenderingOptions.getInkOptions

Metode berikut dari IInkOptions mengekspos dua pengaturan yang sama:

Menyembunyikan Objek Tinta dalam Output PDF

Secara default, objek tinta tetap terlihat saat ekspor. Untuk membuat output bersih tanpa anotasi tulisan tangan atau konten tinta lainnya, panggil IInkOptions.setHideInk dengan true.

Contoh Java berikut mengekspor presentasi ke PDF sambil menyembunyikan semua objek tinta:

import com.aspose.slides.*;

Presentation presentation = new Presentation("presentation.pptx");
try {
    PdfOptions pdfOptions = new PdfOptions();
    pdfOptions.getInkOptions().setHideInk(true);

    presentation.save("presentation_without_ink.pdf", SaveFormat.Pdf, pdfOptions);
} finally {
    presentation.dispose();
}

Menyembunyikan Objek Tinta Saat Rendering Slide menjadi Gambar

Untuk menyembunyikan objek tinta saat merender slide menjadi gambar bitmap, konfigurasikan RenderingOptions.getInkOptions dan berikan opsi rendering ke ISlide.getImage.

Contoh Java berikut merender slide pertama sebagai gambar PNG tanpa objek tinta:

import com.aspose.slides.*;

Presentation presentation = new Presentation("presentation.pptx");
try {
    RenderingOptions renderingOptions = new RenderingOptions();
    renderingOptions.getInkOptions().setHideInk(true);

    ISlide slide = presentation.getSlides().get_Item(0);
    IImage image = slide.getImage(renderingOptions);
    try {
        image.save("slide_without_ink.png", ImageFormat.Png);
    } finally {
        image.dispose();
    }
} finally {
    presentation.dispose();
}

Mengontrol Rendering Masker Tinta

Pengaturan IInkOptions.getInterpretMaskOpAsOpacity mengendalikan bagaimana operasi masker ditafsirkan saat merender kuas tinta. Nilai standar adalah true, yang menggunakan opasitas. Untuk menggunakan operasi ROP sebagai gantinya, panggil IInkOptions.setInterpretMaskOpAsOpacity dengan false.

Contoh Java berikut mengekspor slide ke SVG dan menggunakan rendering berbasis ROP untuk operasi masker tinta:

import com.aspose.slides.*;
import java.io.FileOutputStream;

Presentation presentation = new Presentation("presentation.pptx");
try {
    SVGOptions svgOptions = new SVGOptions();
    svgOptions.getInkOptions().setInterpretMaskOpAsOpacity(false);

    ISlide slide = presentation.getSlides().get_Item(0);
    FileOutputStream stream = new FileOutputStream("slide.svg");
    try {
        slide.writeAsSvg(stream, svgOptions);
    } finally {
        stream.close();
    }
} finally {
    presentation.dispose();
}

Pengaturan yang sama dapat diterapkan melalui TiffOptions.getInkOptions saat mengekspor presentasi atau merender slide ke TIFF.

Memilih untuk Menyembunyikan atau Mempertahankan Tinta

Ketika Anda memerlukan versi bersih dari presentasi beranotasi untuk distribusi tanpa tanda‑tanda ulasan, panggil IInkOptions.setHideInk dengan true saat mengekspor.

Biarkan IInkOptions.getHideInk pada nilai standar false ketika anotasi tinta merupakan bagian dari konten yang diinginkan, seperti komentar ulasan, catatan tulisan tangan, sorotan, atau gambar yang harus tetap terlihat dalam hasil yang diekspor. Hal ini memungkinkan aplikasi menghasilkan output ulasan dan final secara terpisah dari presentasi yang sama tanpa memodifikasi objek tinta sumber.

FAQ

Apakah saya dapat mengubah warna atau ukuran goresan tinta yang sudah ada?

Ya. Dapatkan jejak dari IInk.getTraces, lalu ubah IInkTrace.getBrush. Panggil IInkBrush.setColor atau IInkBrush.setSize untuk mengubah kuas.

Apakah menyembunyikan tinta mengubah presentasi sumber?

Tidak. Memanggil IInkOptions.setHideInk hanya memengaruhi hasil yang dirender atau diekspor; ia tidak menghapus atau memodifikasi objek tinta dalam presentasi sumber.

Format ekspor apa 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 seperti yang ditunjukkan di atas.

Bacaan lanjutan