Java'da Sunum Mürekkep Nesnelerini Yönet

Giriş

PowerPoint, serbest çizim darbeleri çizmenizi sağlayan bir mürekkep özelliği sunar. Mürekkep, diğer nesneleri vurgulamak, bağlantıları ve süreçleri göstermek ve bir slayttaki belirli öğelere dikkat çekmek için kullanılabilir.

Aspose.Slides, mürekkep nesneleriyle çalışmak için gereken tipleri sağlar. Örneğin, IInk arayüzü bir slayttaki mürekkep nesnesini temsil eder.

Normal Nesneler ve Mürekkep Nesneleri Arasındaki Farklar

PowerPoint slaytındaki nesneler tipik olarak şekil nesneleriyle temsil edilir. En basit biçiminde, bir şekil, nesnenin alanını (çerçevesini) tanımlayan, boyut, şekil ve arka plan gibi özellikleri içeren bir kapsayıcıdır. Daha fazla bilgi için, Shape Layout Format bölümüne bakın.

Ancak PowerPoint bir mürekkep nesnesini işlediğinde, çerçeve (kapsayıcı) özelliklerinin tamamını, sadece boyutunu hariç tutarak yok sayar. Kapsayıcı alanın boyutu, standart IShape.getWidth ve IShape.getHeight yöntemleriyle belirlenir:

ink_powerpoint1

Mürekkep İzleri

Mürekkep izi, bir kullanıcının dijital mürekkep yazarken kalemin yolunu kaydetmek için kullanılan temel bir öğedir. Bir iz, bağlanmış noktaların bir dizisini depolar.

Kodlamanın en basit biçimi, her örnek noktanın X ve Y koordinatlarını belirtir. Tüm bağlanmış noktalar çizildiğinde aşağıdaki gibi bir görüntü oluşur:

ink_powerpoint2

Çizim İçin Fırça Özellikleri

Fırça, bir mürekkep izinin noktalarını birleştiren çizgileri çizmek için kullanılır. Fırçanın kendine özgü bir rengi ve boyutu vardır; bu, IInkBrush.getColor ve IInkBrush.getSize yöntemleriyle temsil edilir.

Mürekkep Fırçası Rengini Ayarlama

Bu Java kodu, bir mürekkep fırçasının rengini nasıl ayarlayacağınızı gösterir:

import com.aspose.slides.*;
import java.awt.Color;

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();
}

Mürekkep Fırçası Boyutunu Ayarlama

Bu Java kodu, bir mürekkep fırçasının boyutunu nasıl ayarlayacağınızı gösterir:

import com.aspose.slides.*;
import java.awt.Dimension;

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();
    Dimension brushSize = new Dimension(5, 10);
    brush.setSize(brushSize);
} finally {
    presentation.dispose();
}

Genellikle bir fırçanın genişliği ve yüksekliği eşleşmez, bu yüzden PowerPoint fırça boyutunu göstermez (ilgili veri bölümü gri tonludur). Genişlik ve yükseklik eşleştiğinde PowerPoint boyutu şu şekilde gösterir:

ink_powerpoint3

Açıklık getirmek için, mürekkep nesnesinin yüksekliğini artırıp önemli boyutları inceleyelim:

ink_powerpoint4

Kapsayıcı (çerçeve) fırçaların boyutunu hesaba katmaz — her zaman çizgi kalınlığının sıfır olduğunu varsayar (önceki görsele bakın).

Bu nedenle, tüm mürekkep nesnesinin görünen alanını belirlemek için izlerin fırça boyutu dikkate alınmalıdır. Burada hedef nesne (el yazısı metin izi), kapsayıcının (çerçevenin) boyutuna ölçeklendirilmiştir. Kapsayıcının boyutu değiştiğinde fırça boyutu sabit kalır ve tersine de geçerlidir.

ink_powerpoint5

PowerPoint, metin nesneleri için benzer bir davranış sergiler:

ink_powerpoint6

Dışa Aktarım ve İşleme Sırasında Mürekkep Görünümünü Kontrol Etme

Aspose.Slides, dışa aktarılmış veya işlenmiş çıktıda mürekkep nesnelerinin nasıl görüneceğini kontrol etmek için IInkOptions arayüzünü sağlar. Özelliklerini, mürekkebi tamamen gizlemek veya mürekkep fırça maske işlemlerinin nasıl yorumlandığını değiştirmek için kullanabilirsiniz.

Mürekkep seçenekleri, çeşitli çıktı türleri için dışa aktarma veya işleme seçenekleri aracılığıyla kullanılabilir:

Çıktı Mürekkep seçenekleri özelliği
PDF PdfOptions.getInkOptions
HTML HtmlOptions.getInkOptions
SVG SVGOptions.getInkOptions
TIFF TiffOptions.getInkOptions
Slide image RenderingOptions.getInkOptions

Aşağıdaki IInkOptions yöntemleri aynı iki ayarı ortaya çıkarır:

PDF Çıktısında Mürekkep Nesnelerini Gizleme

Varsayılan olarak, dışa aktarım sırasında mürekkep nesneleri görünür kalır. El yazısı notları veya diğer mürekkep içerikleri olmadan temiz bir çıktı oluşturmak için IInkOptions.setHideInk yöntemini true ile çağırın.

Aşağıdaki Java örneği, tüm mürekkep nesnelerini gizleyerek bir sunumu PDF olarak dışa aktarır:

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();
}

Bir Slaytı Görüntü Olarak İşlerken Mürekkep Nesnelerini Gizleme

Slaytları bitmap görüntüler olarak işlerken mürekkep nesnelerini gizlemek için RenderingOptions.getInkOptions ayarlayın ve işleme seçeneklerini ISlide.getImage yöntemine aktarın.

Aşağıdaki Java örneği, ilk slaytı mürekkep nesneleri olmadan bir PNG görüntüsü olarak işler:

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();
}

Mürekkep Maske İşlemesini Kontrol Etme

IInkOptions.getInterpretMaskOpAsOpacity ayarı, mürekkep fırçaları işlenirken maske işlemlerinin nasıl yorumlandığını kontrol eder. Varsayılan değer true olup opaklık kullanır. Bunun yerine ROP işlemini kullanmak için IInkOptions.setInterpretMaskOpAsOpacity yöntemini false ile çağırın.

Aşağıdaki Java örneği, bir slaytı SVG olarak dışa aktarır ve mürekkep maske işlemleri için ROP tabanlı işleme kullanır:

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

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

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

Aynı ayar, bir sunumu dışa aktarırken veya bir slaytı TIFF olarak işlerken TiffOptions.getInkOptions aracılığıyla da uygulanabilir.

Mürekkebi Gizleyip Gizlemeyeceğinizi veya Korumayı Seçin

İnceleme işaretleri olmadan dağıtım için temiz bir notlu sunum sürümüne ihtiyacınız olduğunda, dışa aktarım sırasında IInkOptions.setHideInk yöntemini true ile çağırın.

Mürekkep notları, el yazısı notlar, vurgulamalar veya çizimler gibi istenen içeriğin bir parçası olduğunda, IInkOptions.getHideInk değerini varsayılan false olarak bırakın. Bu, uygulamaların aynı sunumdan kaynak mürekkep nesnelerini değiştirmeden ayrı inceleme ve nihai çıktılar üretmesini sağlar.

SSS

Mevcut bir mürekkep darbesinin rengini veya boyutunu değiştirebilir miyim?

Evet. IInk.getTraces yöntemini kullanarak izi alın, ardından IInkTrace.getBrush yöntemini değiştirin. Rengi değiştirmek için IInkBrush.setColor, boyutu değiştirmek için ise IInkBrush.setSize yöntemini çağırın.

Mürekkebi gizlemek kaynak sunumu değiştirir mi?

Hayır. IInkOptions.setHideInk çağrısı yalnızca işlenmiş veya dışa aktarılmış sonucu etkiler; kaynak sunumdaki mürekkep nesnelerini kaldırmaz veya değiştirmez.

Hangi dışa aktarma formatları mürekkep seçeneklerini destekler?

PDF, HTML, SVG, TIFF ve bitmap slayt görüntüleri için yukarıda gösterilen ilgili dışa aktarma veya işleme seçenekleri aracılığıyla mürekkep seçeneklerini yapılandırabilirsiniz.

Daha fazla okuma