JavaScript'te Sunum Mürekkep Nesnelerini Yönetme

Giriş

PowerPoint, serbest biçimli darbeler çizebilmenizi 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, Ink sınıfı bir slayttaki mürekkep nesnesini temsil eder.

Normal Nesneler ile Mürekkep Nesneleri Arasındaki Farklar

PowerPoint slaydındaki nesneler genellikle şekil nesneleriyle temsil edilir. En basit biçimde, bir şekil nesnenin (çerçevesinin) alanını tanımlayan, konteyner boyutu, şekil ve arka plan gibi özelliklere sahip bir kapsayıcıdır. Daha fazla bilgi için Shape Layout Format bölümüne bakın.

Bununla birlikte, PowerPoint bir mürekkep nesnesini işlediğinde, nesne çerçevesinin (kapsayıcının) boyut dışındaki tüm özelliklerini yok sayar. Kapsayıcı alanının boyutu standart Shape.getWidth ve Shape.getHeight yöntemleriyle belirlenir:

ink_powerpoint1

Mürekkep İzleri

Mürekkep izi, bir kullanıcının dijital mürekkep ile yazarken kalemin izini kaydetmek için kullanılan temel bir öğedir. Bir iz, birbirine bağlanmış noktalar sırasını saklar.

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

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

Mürekkep Fırçası Rengini Ayarlama

Bu JavaScript kodu, bir mürekkep fırçasının renginin nasıl ayarlanacağını gösterir:

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

Mürekkep Fırçası Boyutunu Ayarlama

Bu JavaScript kodu, bir mürekkep fırçasının boyutunun nasıl ayarlanacağını gösterir:

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

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 renkte olur). Fırça genişliği ve yüksekliği eşleştiğinde, PowerPoint boyutunu şu şekilde gösterir:

ink_powerpoint3

Açıklık kazandırmak 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 dikkate almaz—her zaman çizgi kalınlığının sıfır olduğunu varsayar (önceki görüntüye bakın).

Bu nedenle, tüm mürekkep nesnesinin görünür 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 aynı durum geçerlidir.

ink_powerpoint5

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

ink_powerpoint6

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

Aspose.Slides, mürekkep nesnelerinin dışa aktarılmış veya işlenmiş çıktıda nasıl görüneceğini kontrol etmek için InkOptions sınıfı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 aktarım 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
Slayt görüntüsü RenderingOptions.getInkOptions

Şu InkOptions 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 InkOptions.setHideInk metodunu true ile çağırın.

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

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

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 yapılandırın ve işleme seçeneklerini Slide.getImage metoduna aktarın.

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

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

Mürekkep Maske İşlemeyi Kontrol Etme

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

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

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

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

Mürekkebi Gizleyip Gizlemeyeceğinizi veya Koruyacağınızı Seçin

İnceleme işaretleri olmadan dağıtım için anotasyonlu bir sunumun temiz bir sürümüne ihtiyacınız olduğunda, dışa aktarım sırasında InkOptions.setHideInk metodunu true ile çağırın.

İnk notları, el yazısı notlar, vurgulamalar veya dışa aktarılan sonuçta görünür kalması gereken çizimler gibi amaçlanan içeriğin bir parçası olduğunda, InkOptions.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 son çıktılar üretmesini sağlar.

SSS

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

Evet. İzleri Ink.getTraces ile alın ve ardından onun InkTrace.getBrush öğesini değiştirin. Fırçayı değiştirmek için InkBrush.setColor veya InkBrush.setSize metodlarını çağırın.

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

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

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

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

İlave Okuma