PHP'de Sunum Mürekkep Nesnelerini Yönetme

Giriş

PowerPoint, serbest çizgiler çizmenizi sağlayan bir mürekkep özelliği sunar. Mürekkep, diğer nesneleri vurgulamak, bağlantı 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 türleri sağlar. Örneğin, Ink sınıfı bir slayttaki mürekkep nesnesini temsil eder.

Düzenli Nesneler ve Mürekkep Nesneleri Arasındaki Farklar

PowerPoint bir slayttaki nesneler genellikle Shape nesneleriyle temsil edilir. En basit biçimde bir şekil, nesnenin kendisinin (çerçevesinin) alanını tanımlayan ve konteyner boyutu, ş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.

Bununla birlikte, PowerPoint bir mürekkep nesnesiyle karşılaştığında, nesne çerçevesinin (kapsayıcının) tüm özelliklerini boyutu haricinde görmezden gelir. Kapsayıcı alanının boyutu, standart Shape.getWidth ve Shape.getHeight metodlarıyla belirlenir:

ink_powerpoint1

Mürekkep İzleri

Bir mürekkep izi, bir kalemin dijital mürekkep yazarken izlediği yörüngeyi kaydetmek için kullanılan temel bir öğedir. Bir iz, bağlantılı noktalar dizisini saklar.

Kodlamanın en basit biçimi, her örnek noktanın X ve Y koordinatlarını belirtir. Tüm bağlantılı 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, bir mürekkep izinin noktalarını birleştiren çizgileri çizmek için kullanılır. Fırçanın kendi rengi ve boyutu vardır; bunlar InkBrush.getColor ve InkBrush.getSize metodlarıyla temsil edilir.

Mürekkep Fırçası Rengini Ayarlama

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

$presentation = new Presentation("pres.pptx");
try {
    $slide = $presentation->getSlides()->get_Item(0);
    $ink = $slide->getShapes()->get_Item(0);
    $brush = $ink->getTraces()[0]->getBrush();
    $brush->setColor(java("java.awt.Color")->RED);
} finally {
    $presentation->dispose();
}

Mürekkep Fırçası Boyutunu Ayarlama

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

$presentation = new Presentation("pres.pptx");
try {
    $slide = $presentation->getSlides()->get_Item(0);
    $ink = $slide->getShapes()->get_Item(0);
    $brush = $ink->getTraces()[0]->getBrush();
    $brushSize = new Java("java.awt.Dimension", 5, 10);
    $brush->setSize($brushSize);
} finally {
    $presentation->dispose();
}

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

ink_powerpoint3

Açıklık kazanması için, mürekkep nesnesinin yüksekliğini artırıp önemli boyutları gözden geçirelim:

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örsele bakın).

Bu nedenle, tüm mürekkep nesnesinin görünen alanını belirlemek için izlerinin fırça boyutu hesaba katılmalı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ı şey 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, mürekkep nesnelerinin dışa aktarılan veya işlenen çıktıda nasıl görüneceğini kontrol etmek için InkOptions sınıfını sunar. Özelliklerini kullanarak mürekkebi tamamen gizleyebilir veya mürekkep fırça maske işlemlerinin nasıl yorumlandığını değiştirebilirsiniz.

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
Slayt resmi RenderingOptions.getInkOptions

Aşağıdaki InkOptions metodları aynı iki ayarı sunar:

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

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

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

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

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

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 PHP örneği, ilk slaytı mürekkep nesneleri olmadan bir PNG görüntüsü olarak işler:

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

    $slide = $presentation->getSlides()->get_Item(0);
    $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

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

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

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

    $outputStream = new Java("java.io.FileOutputStream", "slide.svg");
    try {
        $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 da uygulanabilir.

Mürekkebi Gizleme veya Korumayı Seçme

İncelemeler 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.

Mürekkep açıklamaları, el notları, vurgulamalar veya çizimler gibi hedef içeriğin bir parçası olduğunda, InkOptions.getHideInk varsayılan false değerinde bırakın. Bu, uygulamaların aynı sunumdan kaynak mürekkep nesnelerini değiştirmeden ayrı inceleme ve final çıktıları üretmesine olanak tanır.

SSS

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

Evet. Ink.getTraces ile izleri alın, ardından InkTrace.getBrush metodunu değiştirin. Rengi değiştirmek için InkBrush.setColor, boyutu değiştirmek için ise InkBrush.setSize metodunu kullanın.

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

Hayır. InkOptions.setHideInk yalnızca işlenen veya dışa aktarılan sonucu etkiler; 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 aktarma 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.

Daha fazla okuma