PHP'de Sunumlara Filigran Ekleme

Giriş

Bir filigran, bir sunumda slayt üzerinde veya tüm sunum slaytları boyunca kullanılan bir metin veya resim damgasıdır. Genellikle, bir filigran sunumun taslak olduğunu (ör. “Draft” filigranı), gizli bilgiler içerdiğini (ör. “Confidential” filigranı), hangi şirkete ait olduğunu (ör. “Company Name” filigranı), sunum yazarını tanımlamak vb. göstermek için kullanılır. Filigran, sunumun kopyalanmaması gerektiğini belirterek telif hakkı ihlallerini önlemeye yardımcı olur. Filigranlar hem PowerPoint hem de OpenOffice sunum formatlarında kullanılır. Aspose.Slides ile PowerPoint PPT, PPTX ve OpenOffice ODP dosya formatlarına filigran ekleyebilirsiniz.

Aspose.Slides’de PowerPoint veya OpenOffice belgelerinde filigran oluşturmanın ve tasarımını ve davranışını değiştirmenin çeşitli yolları vardır. Ortak nokta, metin filigranı eklemek için TextFrame sınıfını, resim filigranı eklemek için ise PictureFrame sınıfını veya bir filigran şekline resmi doldurmayı kullanmanız gerektiğidir. PictureFrame Shape sınıfını uygular, bu sayede şekil nesnesinin tüm esnek ayarlarını kullanabilirsiniz. ITextFrame bir şekil olmadığından ve ayarları sınırlı olduğundan bir Shape nesnesine sarılır.

Filigranın uygulanabileceği iki yol vardır: tek bir slayta ya da tüm sunum slaytlarına. Tüm slaytlara filigran uygulamak için Slide Master kullanılır — filigran Slide Master’a eklenir, orada tam tasarlanır ve bireysel slaytlardaki filigranı düzenleme iznini etkilemeden tüm slaytlara uygulanır.

Filigran genellikle diğer kullanıcılar tarafından düzenlenemez olarak kabul edilir. Filigranın (ya da daha doğrusu filigranın üst şeklinin) düzenlenmesini engellemek için Aspose.Slides şekil kilitleme işlevi sağlar. Belirli bir şekil normal bir slaytta ya da Slide Master’da kilitlenebilir. Filigran şekli Slide Master’da kilitlendiğinde, tüm sunum slaytlarında kilitli olur.

Filigrana bir ad verebilir ve gelecekte silmek istediğinizde slaytın şekilleri içinde ad ile bulabilirsiniz.

Filigranı istediğiniz gibi tasarlayabilirsiniz; ancak genellikle ortalanma, döndürme, ön konum gibi ortak özellikler bulunur. Aşağıdaki örneklerde bunların nasıl kullanılacağını inceleyeceğiz.

Metin Filigranı

Bir Slayta Metin Filigranı Ekleme

PPT, PPTX veya ODP içinde metin filigranı eklemek için önce slayta bir şekil ekleyip bu şekle bir metin çerçevesi ekleyebilirsiniz. Metin çerçevesi TextFrame sınıfı ile temsil edilir. Bu tür Shape sınıfından türetilmediği için, şeklin konumlandırması için geniş bir özellik seti sunmaz. Bu yüzden TextFrame nesnesi bir AutoShape nesnesine sarılır. Şekle filigran metni eklemek için aşağıda gösterildiği gibi addTextFrame yöntemini kullanın.

$watermarkText = "CONFIDENTIAL";

$presentation = new Presentation();
$slide = $presentation->getSlides()->get_Item(0);

$watermarkShape = $slide->getShapes()->addAutoShape(ShapeType::Rectangle, 100, 100, 400, 40);
$watermarkFrame = $watermarkShape->addTextFrame($watermarkText);

$presentation->dispose();

Bir Sunuma Metin Filigranı Ekleme

Tüm sunuma (yani tüm slaytlara) bir metin filigranı eklemek istiyorsanız, filigranı MasterSlide üzerine ekleyin. Tek bir slayta filigran eklerken kullanılan mantık aynı kalır — bir AutoShape nesnesi oluşturun ve ardından addTextFrame yöntemiyle filigranı ekleyin.

$watermarkText = "CONFIDENTIAL";

$presentation = new Presentation();
$masterSlide = $presentation->getMasters()->get_Item(0);

$watermarkShape = $masterSlide->getShapes()->addAutoShape(ShapeType::Rectangle, 100, 100, 400, 40);
$watermarkFrame = $watermarkShape->addTextFrame($watermarkText);

$presentation->dispose();

Filigran Şeklinin Şeffaflığını Ayarlama

Varsayılan olarak dikdörtgen şekil dolgu ve çizgi renkleriyle stilize edilir. Aşağıdaki kod satırları şekli şeffaf hale getirir.

$watermarkShape->getFillFormat()->setFillType(FillType::NoFill);
$watermarkShape->getLineFormat()->getFillFormat()->setFillType(FillType::NoFill);

Metin Filigranı İçin Yazı Tipi Ayarlama

Aşağıdaki gibi metin filigranının yazı tipini değiştirebilirsiniz.

$textFormat = $watermarkFrame->getParagraphs()->get_Item(0)->getParagraphFormat()->getDefaultPortionFormat();
$textFormat->setLatinFont(new FontData("Arial"));
$textFormat->setFontHeight(50);

Filigran Metin Rengini Ayarlama

Filigran metninin rengini ayarlamak için şu kodu kullanın:

$alpha = 150;
$red = 200;
$green = 200;
$blue = 200;
$textColor = new Java("java.awt.Color", $red, $green, $blue, $alpha);

$fillFormat = $watermarkFrame->getParagraphs()->get_Item(0)->getParagraphFormat()->getDefaultPortionFormat()->getFillFormat();
$fillFormat->setFillType(FillType::Solid);
$fillFormat->getSolidFillColor()->setColor($textColor);

Metin Filigranını Ortalamak

Filigranı bir slaytta ortalamak mümkündür ve bunun için şu adımları izleyebilirsiniz:

$slideSize = $presentation->getSlideSize()->getSize();
$slideWidth = java_values($slideSize->getWidth());
$slideHeight = java_values($slideSize->getHeight());

$watermarkWidth = 400;
$watermarkHeight = 40;
$watermarkX = ($slideWidth - $watermarkWidth) / 2;
$watermarkY = ($slideHeight - $watermarkHeight) / 2;

$watermarkShape = $slide->getShapes()->addAutoShape(
        ShapeType::Rectangle, $watermarkX, $watermarkY, $watermarkWidth, $watermarkHeight);

$watermarkFrame = $watermarkShape->addTextFrame($watermarkText);

Aşağıdaki resim son sonucu gösterir.

Metin filigranı

Resim Filigranı

Bir Sunuma Resim Filigranı Ekleme

Bir sunum slaytı üzerine resim filigranı eklemek için şu adımları izleyebilirsiniz:

$image = Images::fromFile("watermark.png");
$picture = $presentation->getImages()->addImage($image);
$image->dispose();

$watermarkShape->getFillFormat()->setFillType(FillType::Picture);
$watermarkShape->getFillFormat()->getPictureFillFormat()->getPicture()->setImage($picture);
$watermarkShape->getFillFormat()->getPictureFillFormat()->setPictureFillMode(PictureFillMode::Stretch);

Filigranı Düzenlemeden Kilitleme

Filigranın düzenlenmesini önlemek gerekiyorsa, şekil üzerinde AutoShape.getAutoShapeLock yöntemini kullanın. Bu özellik sayesinde şekli seçilmeye, yeniden boyutlandırılmaya, yeniden konumlandırılmaya, diğer öğelerle gruplandırılmaya, metni düzenlemeden kilitlemeye ve daha fazlasına karşı koruyabilirsiniz:

// Filigran şeklinin değiştirilmesini kilitle
$watermarkShape->getAutoShapeLock()->setSelectLocked(true);
$watermarkShape->getAutoShapeLock()->setSizeLocked(true);
$watermarkShape->getAutoShapeLock()->setTextLocked(true);
$watermarkShape->getAutoShapeLock()->setPositionLocked(true);
$watermarkShape->getAutoShapeLock()->setGroupingLocked(true);

Filigranı Ön Tarafa Getirme

Aspose.Slides’de şekillerin Z-sırası, ShapeCollection.reorder yöntemi ile ayarlanabilir. Bunu yapmak için sunum slaytları listesinden bu yöntemi çağırıp şekil referansını ve sıra numarasını metoda geçmeniz gerekir. Böylece bir şekli slaytın önüne ya da arkasına taşıyabilirsiniz. Bu özellik, filigranı sunumun önünde konumlandırmanız gerektiğinde özellikle faydalıdır:

$shapeCount = java_values($slide->getShapes()->size());
$slide->getShapes()->reorder($shapeCount - 1, $watermarkShape);

Filigran Döndürme Ayarı

Filigranı slayt boyunca çapraz konumlandırmak için dönüş ayarını nasıl yapacağınıza dair bir kod örneği:

$diagonalAngle = atan($slideWidth / $slideHeight) * 180 / M_PI;

$watermarkShape->setRotation($diagonalAngle);

Filigrana İsim Verme

Aspose.Slides, bir şeklin adını ayarlamanıza izin verir. Şekil adını kullanarak gelecekte ona erişebilir, değiştirebilir veya silebilirsiniz. Filigran şeklinin adını ayarlamak için AutoShape.setName yöntemine atayın:

$watermarkShape->setName("watermark");

Filigranı Kaldırma

Filigran şeklini kaldırmak için önce slayt şekilleri içinde AutoShape.getName yöntemiyle bulun, ardından ShapeCollection.remove yöntemine geçirin:

$slideShapes = $slide->getShapes()->toArray();
foreach ($slideShapes as $shape) {
    if ($shape->getName() === "watermark") {
        $slide->getShapes()->remove($shape);
    }
}

SSS

Filigran nedir ve neden kullanmalıyım?

Filigran, slaytlara uygulanan bir metin veya resim üst katmanıdır ve fikri mülkiyeti korumaya, marka tanınırlığını artırmaya veya sunumların izinsiz kullanılmasını önlemeye yardımcı olur.

Tüm slaytlara filigran ekleyebilir miyim?

Evet, Aspose.Slides programlı olarak bir sunumdaki her slayta filigran eklemenizi sağlar. Tüm slaytlar üzerinden döngü kurarak filigran ayarlarını ayrı ayrı uygulayabilirsiniz.

Filigranın şeffaflığını nasıl ayarlarım?

Şeklin dolgu ayarlarını (getFillFormat) değiştirerek filigranın şeffaflığını ayarlayabilirsiniz. Bu sayede filigran hafif olur ve slayt içeriğinden dikkat çekmez.

Filigran için hangi resim formatları desteklenir?

Aspose.Slides PNG, JPEG, GIF, BMP, SVG ve daha fazlası dahil olmak üzere çeşitli resim formatlarını destekler.

Metin filigranının yazı tipini ve stilini özelleştirebilir miyim?

Evet, sunum tasarımınıza ve marka tutarlılığına uygun herhangi bir yazı tipi, boyut ve stil seçebilirsiniz.

Filigranın konumunu veya yönünü nasıl değiştiririm?

Şeklin koordinatlarını, boyutlarını ve döndürme özelliklerini programlı olarak değiştirerek filigranın konumunu ve yönünü ayarlayabilirsiniz.