Java'da Sunum Köprülerini Yönetme
Giriş
Bir köprü, bir nesneye, veriye ya da bir yere referanstır. Bunlar PowerPoint Sunularında yaygın köprülerdir:
- Metin, şekil veya medya içindeki web sitesi bağlantıları
- Slaytlara bağlantılar
Aspose.Slides for Java, sunularda köprülerle ilgili birçok görevi gerçekleştirmenizi sağlar.
URL Köprüleri Ekleme
Metne URL Köprüleri Ekleme
Bu Java kodu, bir metne web sitesi köprüsü eklemenizi gösterir:
Presentation presentation = new Presentation();
try {
IAutoShape shape1 = presentation.getSlides().get_Item(0).getShapes().addAutoShape(ShapeType.Rectangle, 100, 100, 600, 50, false);
shape1.addTextFrame("Aspose: File Format APIs");
IPortionFormat portionFormat = shape1.getTextFrame().getParagraphs().get_Item(0).getPortions().get_Item(0).getPortionFormat();
portionFormat.setHyperlinkClick(new Hyperlink("https://www.aspose.com/"));
portionFormat.getHyperlinkClick().setTooltip("More than 70% Fortune 100 companies trust Aspose APIs");
portionFormat.setFontHeight(32);
presentation.save("presentation-out.pptx", SaveFormat.Pptx);
} finally {
if (presentation != null) presentation.dispose();
}
Şekillere veya Çerçevelere URL Köprüleri Ekleme
Bu örnek Java kodu, bir şekle web sitesi köprüsü eklemenizi gösterir:
Presentation pres = new Presentation();
try {
IShape shape = pres.getSlides().get_Item(0).getShapes().addAutoShape(ShapeType.Rectangle, 100, 100, 600, 50);
shape.setHyperlinkClick(new Hyperlink("https://www.aspose.com/"));
shape.getHyperlinkClick().setTooltip("More than 70% Fortune 100 companies trust Aspose APIs");
pres.save("pres-out.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
Medyaya URL Köprüleri Ekleme
Aspose.Slides, görüntülere, ses ve video dosyalarına köprü eklemenizi sağlar.
Bu örnek kod, bir görüntüye köprü eklemenizi gösterir:
Presentation pres = new Presentation();
try {
// Sunuma resim ekler
IPPImage picture;
IImage image = Images.fromFile("image.png");
try {
picture = pres.getImages().addImage(picture);
} finally {
if (image != null) image.dispose();
}
// Daha önce eklenen resme dayanarak slayt 1'de resim çerçevesi oluşturur
IPictureFrame pictureFrame = pres.getSlides().get_Item(0).getShapes().addPictureFrame(ShapeType.Rectangle, 10, 10, 100, 100, picture);
pictureFrame.setHyperlinkClick(new Hyperlink("https://www.aspose.com/"));
pictureFrame.getHyperlinkClick().setTooltip("More than 70% Fortune 100 companies trust Aspose APIs");
pres.save("pres-out.pptx", SaveFormat.Pptx);
} catch(IOException e) {
} finally {
if (pres != null) pres.dispose();
}
Bu örnek kod, bir ses dosyasına köprü eklemenizi gösterir:
Presentation pres = new Presentation();
try {
IAudio audio = pres.getAudios().addAudio(Files.readAllBytes(Paths.get("audio.mp3")));
IAudioFrame audioFrame = pres.getSlides().get_Item(0).getShapes().addAudioFrameEmbedded(10, 10, 100, 100, audio);
audioFrame.setHyperlinkClick(new Hyperlink("https://www.aspose.com/"));
audioFrame.getHyperlinkClick().setTooltip("More than 70% Fortune 100 companies trust Aspose APIs");
pres.save("pres-out.pptx", SaveFormat.Pptx);
} catch(IOException e) {
} finally {
if (pres != null) pres.dispose();
}
Bu örnek kod, bir videoya köprü eklemenizi gösterir:
Presentation pres = new Presentation();
try {
IVideo video = pres.getVideos().addVideo(Files.readAllBytes(Paths.get("video.avi")));
IVideoFrame videoFrame = pres.getSlides().get_Item(0).getShapes().addVideoFrame(10, 10, 100, 100, video);
videoFrame.setHyperlinkClick(new Hyperlink("https://www.aspose.com/"));
videoFrame.getHyperlinkClick().setTooltip("More than 70% Fortune 100 companies trust Aspose APIs");
pres.save("pres-out.pptx", SaveFormat.Pptx);
} catch(IOException e) {
} finally {
if (pres != null) pres.dispose();
}
Tip
Şu sayfaya bakmak isteyebilirsiniz OLE Yönetimi.Köprüleri Kullanarak İçindekiler Tablosu Oluşturma
Köprüler nesnelere veya yerlere referans eklemenizi sağladığı için, bunları bir içindekiler tablosu oluşturmakta kullanabilirsiniz.
Bu örnek kod, köprülerle bir içindekiler tablosu oluşturmanızı gösterir:
Presentation pres = new Presentation();
try {
ISlide firstSlide = pres.getSlides().get_Item(0);
ISlide secondSlide = pres.getSlides().addEmptySlide(firstSlide.getLayoutSlide());
IAutoShape contentTable = firstSlide.getShapes().addAutoShape(ShapeType.Rectangle, 40, 40, 300, 100);
contentTable.getFillFormat().setFillType(FillType.NoFill);
contentTable.getLineFormat().getFillFormat().setFillType(FillType.NoFill);
contentTable.getTextFrame().getParagraphs().clear();
Paragraph paragraph = new Paragraph();
paragraph.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(FillType.Solid);
paragraph.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(Color.BLACK);
paragraph.setText("Title of slide 2 .......... ");
Portion linkPortion = new Portion();
linkPortion.setText("Page 2");
linkPortion.getPortionFormat().getHyperlinkManager().setInternalHyperlinkClick(secondSlide);
paragraph.getPortions().add(linkPortion);
contentTable.getTextFrame().getParagraphs().add(paragraph);
pres.save("link_to_slide.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
Köprüleri Biçimlendirme
Renk
IHyperlink arayüzündeki ColorSource özelliği ile köprülerin rengini ayarlayabilir ve köprülerin renk bilgisini alabilirsiniz. Bu özellik ilk kez PowerPoint 2019’da tanıtıldı, bu yüzden özelliği etkileyen değişiklikler eski PowerPoint sürümlerine uygulanmaz.
Bu örnek kod, farklı renklerde köprülerin aynı slayta eklendiği bir işlemi gösterir:
Presentation pres = new Presentation();
try {
IAutoShape shape1 = pres.getSlides().get_Item(0).getShapes().addAutoShape(ShapeType.Rectangle, 100, 100, 450, 50, false);
shape1.addTextFrame("This is a sample of colored hyperlink.");
IPortionFormat portionFormat = shape1.getTextFrame().getParagraphs().get_Item(0).getPortions().get_Item(0).getPortionFormat();
portionFormat.setHyperlinkClick(new Hyperlink("https://www.aspose.com/"));
portionFormat.getHyperlinkClick().setColorSource(HyperlinkColorSource.PortionFormat);
portionFormat.getFillFormat().setFillType(FillType.Solid);
portionFormat.getFillFormat().getSolidFillColor().setColor(Color.RED);
IAutoShape shape2 = pres.getSlides().get_Item(0).getShapes().addAutoShape(ShapeType.Rectangle, 100, 200, 450, 50, false);
shape2.addTextFrame("This is a sample of usual hyperlink.");
shape2.getTextFrame().getParagraphs().get_Item(0).getPortions().get_Item(0).getPortionFormat().setHyperlinkClick(new Hyperlink("https://www.aspose.com/"));
pres.save("presentation-out-hyperlink.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
Sunumlardan Köprüleri Kaldırma
Metinden Köprüleri Kaldırma
Bu Java kodu, bir sunum slaydındaki metinden köprüyü kaldırmanızı gösterir:
Presentation pres = new Presentation();
try {
ISlide slide = pres.getSlides().get_Item(0);
for (IShape shape : slide.getShapes())
{
IAutoShape autoShape = (IAutoShape)shape;
if (autoShape != null)
{
for (IParagraph paragraph : autoShape.getTextFrame().getParagraphs())
{
for (IPortion portion : paragraph.getPortions())
{
portion.getPortionFormat().getHyperlinkManager().removeHyperlinkClick();
}
}
}
}
pres.save("pres-removed-hyperlinks.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
Şekillerden veya Çerçevelerden Köprüleri Kaldırma
Bu Java kodu, bir sunum slaydındaki bir şekilden köprüyü kaldırmanızı gösterir:
Presentation pres = new Presentation();
try {
ISlide slide = pres.getSlides().get_Item(0);
for (IShape shape : slide.getShapes())
{
shape.getHyperlinkManager().removeHyperlinkClick();
}
pres.save("pres-removed-hyperlinks.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
Değiştirilebilir Köprü
Hyperlink sınıfı değiştirilebilir. Bu sınıf ile aşağıdaki özelliklerin değerlerini değiştirebilirsiniz:
- IHyperlink.setTargetFrame(String value)
- IHyperlink.setTooltip(String value)
- IHyperlink.setHistory(boolean value)
- IHyperlink.setHighlightClick(boolean value)
- IHyperlink.setStopSoundOnClick(boolean value)
Bu kod parçacığı, bir slayta köprü eklemenizi ve daha sonra araç ipucunu düzenlemenizi gösterir:
Presentation pres = new Presentation();
try {
IAutoShape shape1 = pres.getSlides().get_Item(0).getShapes().addAutoShape(ShapeType.Rectangle, 100, 100, 600, 50, false);
shape1.addTextFrame("Aspose: File Format APIs");
IPortionFormat portionFormat = shape1.getTextFrame().getParagraphs().get_Item(0).getPortions().get_Item(0).getPortionFormat();
portionFormat.setHyperlinkClick(new Hyperlink("https://www.aspose.com/"));
portionFormat.getHyperlinkClick().setTooltip("More than 70% Fortune 100 companies trust Aspose APIs");
portionFormat.setFontHeight(32);
pres.save("presentation-out.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
IHyperlinkQueries içinde Desteklenen Özellikler
Köprünün tanımlı olduğu bir sunum, slayt veya metinden IHyperlinkQueries öğesine erişebilirsiniz.
- IPresentation.getHyperlinkQueries()
- IBaseSlide.getHyperlinkQueries()
- ITextFrame.getHyperlinkQueries()
IHyperlinkQueries sınıfı şu yöntem ve özellikleri destekler:
- IHyperlinkQueries.getHyperlinkClicks()
- IHyperlinkQueries.getHyperlinkMouseOvers()
- IHyperlinkQueries.getAnyHyperlinks()
- IHyperlinkQueries.removeAllHyperlinks()
SSS
Bir slayta değil, bir “bölüm"e veya bir bölümün ilk slaytına iç gezinme nasıl oluşturabilirim?
PowerPoint’teki bölümler, slaytların gruplandırılmalarıdır; gezinme teknik olarak belirli bir slayta hedeflenir. “Bir bölüme gezinmek” için genellikle bölümün ilk slaytına bağlanırsınız.
Ana slayt öğelerine köprü ekleyebilir miyim, böylece tüm slaytlarda çalışır?
Evet. Ana slayt ve düzen öğeleri köprüleri destekler. Bu tür bağlantılar alt slaytlarda görünür ve sunum sırasında tıklanabilir.
PDF, HTML, görüntüler veya video olarak dışa aktarırken köprüler korunur mu?
PDF ve HTML formatlarında evet—bağlantılar genellikle korunur. Görüntüler ve video formatlarına dışa aktarırken, bu formatların doğası gereği (raster çerçeveler/video köprüleri desteklemez) tıklanabilirlik taşınmaz.