Android'de Sunum Metnini Biçimlendirme
Genel Bakış
Bu makale, Java üzerinden Aspose.Slides for Android kullanarak PowerPoint ve OpenDocument sunumlarında metni nasıl biçimlendireceğinizi gösterir. Vurgulama, arka plan renkleri, şeffaflık, karakter aralığı, yazı tipi özellikleri, döndürme, paragraf aralığı, otomatik sığdırma davranışı, metin bağlama, sek durakları ve dil ayarları gibi konuları kapsar.
Aşağıdaki örneklerde, ilk slaytta aşağıdaki metni içeren tek bir metin kutusu bulunan “sample.pptx” adlı bir dosya kullanacağız:

Metni Vurgulama
Bir metin çerçevesi içinde belirli bir örnekle eşleşen metni vurgulamanız gerektiğinde ITextFrame.highlightText metodunu kullanın. Metod, eşleşen metin parçalarına vurgulama rengi uygular ve aramanın nasıl gerçekleştirileceğini kontrol etmek için, örneğin yalnızca tam kelimeleri eşleştirmek gibi, ITextSearchOptions ile kullanılabilir.
Aşağıdaki kod örneği, “try” karakterlerinin tüm görünümlerini vurgular ve ardından yalnızca tam kelime “to”‘yu vurgular.
Presentation presentation = new Presentation("sample.pptx");
try {
// İlk slayttan ilk şekli al.
IAutoShape shape = (IAutoShape) presentation.getSlides().get_Item(0).getShapes().get_Item(0);
// Şekilde "try" kelimesini vurgula.
shape.getTextFrame().highlightText("try", Color.rgb(173, 216, 230));
TextSearchOptions searchOptions = new TextSearchOptions();
searchOptions.setWholeWordsOnly(true);
// Şekilde "to" kelimesini vurgula.
int violetColor = Color.rgb(238, 130, 238);
shape.getTextFrame().highlightText("to", violetColor, searchOptions, null);
presentation.save("highlighted_text.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Sonuç:

Düzenli İfadeler Kullanarak Metni Vurgulama
ITextFrame.highlightRegex metodu, bir düzenli ifade tarafından bulunan metin eşleşmelerini vurgular.
Aşağıdaki kod örneği, yedi veya daha fazla karakter içeren tüm kelimeleri vurgular:
Presentation presentation = new Presentation("sample.pptx");
try {
IAutoShape shape = (IAutoShape) presentation.getSlides().get_Item(0).getShapes().get_Item(0);
java.util.regex.Pattern regex = java.util.regex.Pattern.compile("\\b[^\\s]{7,}\\b");
// Yedi veya daha fazla karakter içeren tüm kelimeleri vurgula.
shape.getTextFrame().highlightRegex(regex, Color.YELLOW, null);
presentation.save("highlighted_text_using_regex.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}

Metin Arka Plan Rengini Ayarlama
İParagraphFormat.getDefaultPortionFormat metodunu bir paragraf için varsayılan vurgulama rengini ayarlamak için, veya tek tek metin bölümleri için IBasePortionFormat.getHighlightColor metodunu kullanın.
İşte aşağıdaki kod örneği, tüm paragraf için arka plan rengini nasıl ayarlayacağınızı gösterir:
Presentation presentation = new Presentation("sample.pptx");
try {
IAutoShape autoShape = (IAutoShape) presentation.getSlides().get_Item(0).getShapes().get_Item(0);
IParagraph paragraph = autoShape.getTextFrame().getParagraphs().get_Item(0);
// Paragrafın tamamı için vurgulama rengini ayarla.
paragraph.getParagraphFormat().getDefaultPortionFormat().getHighlightColor().setColor(Color.LTGRAY);
presentation.save("gray_paragraph.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}

Aşağıdaki kod örneği, kalın bir yazı tipine sahip metin bölümleri için arka plan rengini nasıl ayarlayacağınızı gösterir:
Presentation presentation = new Presentation("sample.pptx");
try {
IAutoShape autoShape = (IAutoShape) presentation.getSlides().get_Item(0).getShapes().get_Item(0);
IParagraph paragraph = autoShape.getTextFrame().getParagraphs().get_Item(0);
for (int portionIndex = 0; portionIndex < paragraph.getPortions().getCount(); portionIndex++) {
IPortion portion = paragraph.getPortions().get_Item(portionIndex);
if (portion.getPortionFormat().getEffective().getFontBold()) {
// Metin bölümü için vurgulama rengini ayarla.
portion.getPortionFormat().getHighlightColor().setColor(Color.LTGRAY);
}
}
presentation.save("gray_text_portions.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}

Metin Paragraflarını Hizalama
IParagraphFormat.setAlignment metodunu bir metin çerçevesi içinde paragraf hizalamasını ayarlamak için kullanın. Değerler ortalanmış, sola hizalı, sağa hizalı, iki yana yaslanmış vb. olabilir.
Aşağıdaki kod örneği, paragrafı ortaya hizalamanın nasıl yapılacağını gösterir:
Presentation presentation = new Presentation("sample.pptx");
try {
IAutoShape autoShape = (IAutoShape) presentation.getSlides().get_Item(0).getShapes().get_Item(0);
IParagraph paragraph = autoShape.getTextFrame().getParagraphs().get_Item(0);
// Paragrafın hizalamasını ortaya ayarla.
paragraph.getParagraphFormat().setAlignment(TextAlignment.Center);
presentation.save("aligned_paragraph.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}

Metin Şeffaflığını Ayarlama
Metin şeffaflığı, IBasePortionFormat.getFillFormat metoduna atanan rengin alfa bileşeni aracılığıyla kontrol edilir. Aşağıdaki örneklerde alpha = 50, % 0-255 ölçeğinde bir ARGB alfa kanalı değeridir, yüzde şeffaflık değildir.
Aşağıdaki kod örneği, tüm paragraf için şeffaflığın nasıl uygulanacağını gösterir:
int alpha = 50;
Presentation presentation = new Presentation("sample.pptx");
try {
IAutoShape autoShape = (IAutoShape) presentation.getSlides().get_Item(0).getShapes().get_Item(0);
IParagraph paragraph = autoShape.getTextFrame().getParagraphs().get_Item(0);
// Metnin dolgu rengini şeffaf renge ayarla.
paragraph.getParagraphFormat().getDefaultPortionFormat().getFillFormat().setFillType(FillType.Solid);
paragraph.getParagraphFormat().getDefaultPortionFormat().getFillFormat().getSolidFillColor().setColor(Color.argb(alpha, 0, 0, 0));
presentation.save("transparent_paragraph.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}

Aşağıdaki kod örneği, kalın bir yazı tipine sahip metin bölümleri için şeffaflığın nasıl uygulanacağını gösterir:
int alpha = 50;
Presentation presentation = new Presentation("sample.pptx");
try {
IAutoShape autoShape = (IAutoShape) presentation.getSlides().get_Item(0).getShapes().get_Item(0);
IParagraph paragraph = autoShape.getTextFrame().getParagraphs().get_Item(0);
for (int portionIndex = 0; portionIndex < paragraph.getPortions().getCount(); portionIndex++) {
IPortion portion = paragraph.getPortions().get_Item(portionIndex);
if (portion.getPortionFormat().getEffective().getFontBold()) {
// Metin bölümünün şeffaflığını ayarla.
portion.getPortionFormat().getFillFormat().setFillType(FillType.Solid);
portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(Color.argb(alpha, 0, 0, 0));
}
}
presentation.save("transparent_text_portions.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}

Metin Karakter Aralığını Ayarlama
IBasePortionFormat.setSpacing metodunu bir metin kutusundaki karakterler arasındaki boşluğu genişletmek veya daraltmak için kullanın.
Aşağıdaki Java kodu, tüm paragrafta karakter aralığını nasıl genişleteceğinizi gösterir:
Presentation presentation = new Presentation("sample.pptx");
try {
IAutoShape autoShape = (IAutoShape) presentation.getSlides().get_Item(0).getShapes().get_Item(0);
IParagraph paragraph = autoShape.getTextFrame().getParagraphs().get_Item(0);
// Not: Karakter aralığını sıkıştırmak için negatif değerleri kullanın.
paragraph.getParagraphFormat().getDefaultPortionFormat().setSpacing(3); // Karakter aralığını genişlet.
presentation.save("character_spacing_in_paragraph.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}

Aşağıdaki kod örneği, kalın bir yazı tipine sahip metin bölümlerinde karakter aralığını nasıl genişleteceğinizi gösterir:
Presentation presentation = new Presentation("sample.pptx");
try {
IAutoShape autoShape = (IAutoShape) presentation.getSlides().get_Item(0).getShapes().get_Item(0);
IParagraph paragraph = autoShape.getTextFrame().getParagraphs().get_Item(0);
for (int portionIndex = 0; portionIndex < paragraph.getPortions().getCount(); portionIndex++) {
IPortion portion = paragraph.getPortions().get_Item(portionIndex);
if (portion.getPortionFormat().getEffective().getFontBold()) {
// Not: Karakter aralığını sıkıştırmak için negatif değerleri kullanın.
portion.getPortionFormat().setSpacing(3); // Karakter aralığını genişlet.
}
}
presentation.save("character_spacing_in_text_portions.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}

Belirli Yazı Tipleri İçin Kerning’i Devre Dışı Bırakma
Bazı durumlarda, Aspose.Slides tarafından renderlanan metin, PowerPoint’te gösterilen aynı metinden biraz daha sık görünebilir. Bu, PowerPoint’in belirli yazı tipleri için kerning verilerini görmezden gelmesi durumunda gerçekleşebilir; hatta yazı tipi geçerli kerning bilgileri içeriyor ve PowerPoint ayarlarında kerning etkin olsa bile.
Bu gibi durumlarda renderlenen çıktıyı PowerPoint’e daha yakın hâle getirmek için, etkilenen yazı tipini kullanan metin bölümleri için kerning’i devre dışı bırakabilirsiniz. IBasePortionFormat.setKerningMinimalSize değerini gerçek yazı tipi boyutundan önemli ölçüde daha büyük bir değere ayarlayın:
Presentation presentation = new Presentation("presentation.pptx");
try {
IAutoShape autoShape = (IAutoShape) presentation.getSlides().get_Item(0).getShapes().get_Item(0);
String targetFont = "Roboto";
for (int paragraphIndex = 0; paragraphIndex < autoShape.getTextFrame().getParagraphs().getCount(); paragraphIndex++) {
IParagraph paragraph = autoShape.getTextFrame().getParagraphs().get_Item(paragraphIndex);
for (int portionIndex = 0; portionIndex < paragraph.getPortions().getCount(); portionIndex++) {
IPortion portion = paragraph.getPortions().get_Item(portionIndex);
IFontData latinFont = portion.getPortionFormat().getLatinFont();
IFontData eastAsianFont = portion.getPortionFormat().getEastAsianFont();
IFontData complexScriptFont = portion.getPortionFormat().getComplexScriptFont();
boolean usesTargetFont =
latinFont != null && targetFont.equals(latinFont.getFontName()) ||
eastAsianFont != null && targetFont.equals(eastAsianFont.getFontName()) ||
complexScriptFont != null && targetFont.equals(complexScriptFont.getFontName());
if (usesTargetFont) {
portion.getPortionFormat().setKerningMinimalSize(100);
}
}
}
presentation.save("output.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Bu ayar, eşleşen metin bölümlerine kerning uygulanmasını önler ve bu PowerPoint’e özgü davranıştan etkilenen yazı tipleri için Aspose.Slides render’ını PowerPoint’in görsel çıktısıyla hizalamaya yardımcı olabilir.
Metin Yazı Tipi Özelliklerini Yönetme
Yazı tipi özellikleri, IParagraphFormat.getDefaultPortionFormat aracılığıyla paragraf düzeyinde veya tek tek bölümler için IPortionFormat aracılığıyla ayarlanabilir.
Aşağıdaki kod, tüm paragraf için yazı tipi ve metin stilini ayarlar: yazı tipi boyutu, kalın, italik, noktalı alt çizgi ve Times New Roman yazı tipini paragraftaki tüm bölümlere uygular.
Presentation presentation = new Presentation("sample.pptx");
try {
IAutoShape autoShape = (IAutoShape) presentation.getSlides().get_Item(0).getShapes().get_Item(0);
IParagraph paragraph = autoShape.getTextFrame().getParagraphs().get_Item(0);
// Paragraf için yazı tipi özelliklerini ayarla.
paragraph.getParagraphFormat().getDefaultPortionFormat().setFontHeight(12);
paragraph.getParagraphFormat().getDefaultPortionFormat().setFontBold(NullableBool.True);
paragraph.getParagraphFormat().getDefaultPortionFormat().setFontItalic(NullableBool.True);
paragraph.getParagraphFormat().getDefaultPortionFormat().setFontUnderline(TextUnderlineType.Dotted);
paragraph.getParagraphFormat().getDefaultPortionFormat().setLatinFont(new FontData("Times New Roman"));
presentation.save("font_properties_for_paragraph.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}

Aşağıdaki kod örneği, kalın bir yazı tipine sahip metin bölümlerine benzer özellikler uygular:
Presentation presentation = new Presentation("sample.pptx");
try {
IAutoShape autoShape = (IAutoShape) presentation.getSlides().get_Item(0).getShapes().get_Item(0);
IParagraph paragraph = autoShape.getTextFrame().getParagraphs().get_Item(0);
for (int portionIndex = 0; portionIndex < paragraph.getPortions().getCount(); portionIndex++) {
IPortion portion = paragraph.getPortions().get_Item(portionIndex);
if (portion.getPortionFormat().getEffective().getFontBold()) {
// Metin bölümü için yazı tipi özelliklerini ayarla.
portion.getPortionFormat().setFontHeight(13);
portion.getPortionFormat().setFontItalic(NullableBool.True);
portion.getPortionFormat().setFontUnderline(TextUnderlineType.Dotted);
portion.getPortionFormat().setLatinFont(new FontData("Times New Roman"));
}
}
presentation.save("font_properties_for_text_portions.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}

Metin Döndürmeyi Ayarlama
ITextFrameFormat.setTextVerticalType metodunu bir şekil içinde önceden tanımlı bir metin yönelimi ayarlamak için kullanın.
Aşağıdaki kod örneği, şeklin içindeki metin yönelimini Vertical270 olarak ayarlar; bu, metni 90 derece saat yönünün tersine döndürür:
Presentation presentation = new Presentation("sample.pptx");
try {
IAutoShape autoShape = (IAutoShape) presentation.getSlides().get_Item(0).getShapes().get_Item(0);
autoShape.getTextFrame().getTextFrameFormat().setTextVerticalType(TextVerticalType.Vertical270);
presentation.save("text_rotation.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}

Metin Çerçeveleri İçin Özel Döndürmeyi Ayarlama
ITextFrameFormat.setRotationAngle metodunu bir ITextFrame için özel bir döndürme açısı ayarlamak için kullanın.
Aşağıdaki kod örneği, şekil içinde metin çerçevesini 3 derece saat yönünde döndürür:
Presentation presentation = new Presentation("sample.pptx");
try {
IAutoShape autoShape = (IAutoShape) presentation.getSlides().get_Item(0).getShapes().get_Item(0);
autoShape.getTextFrame().getTextFrameFormat().setRotationAngle(3);
presentation.save("custom_text_rotation.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}

Paragrafların Satır Aralığını Ayarlama
Aspose.Slides, paragraf aralığını kontrol etmek için IParagraphFormat.setSpaceAfter, IParagraphFormat.setSpaceBefore, ve IParagraphFormat.setSpaceWithin metodlarını sağlar. Bu özellikler aşağıdaki gibi kullanılır:
- Satır yüksekliğinin yüzde olarak satır aralığını belirtmek için pozitif bir değer kullanın.
- Satır aralığını puan (point) cinsinden belirtmek için negatif bir değer kullanın.
Aşağıdaki kod örneği, paragraftaki satır aralığını nasıl belirteceğinizi gösterir:
Presentation presentation = new Presentation("sample.pptx");
try {
IAutoShape autoShape = (IAutoShape) presentation.getSlides().get_Item(0).getShapes().get_Item(0);
IParagraph paragraph = autoShape.getTextFrame().getParagraphs().get_Item(0);
paragraph.getParagraphFormat().setSpaceWithin(200);
presentation.save("line_spacing.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}

Metin Çerçeveleri İçin Otomatik Sığdırma Tipini Ayarlama
ITextFrameFormat.setAutofitType metnin, kapsayıcısının sınırlarını aştığında nasıl davranacağını belirler. Metnin küçülüp küçülmeyeceğini, taşacak mı yoksa şekli otomatik olarak yeniden boyutlandırıp boyutlandırmayacağını kontrol etmek için kullanın.
Presentation presentation = new Presentation("sample.pptx");
try {
IAutoShape autoShape = (IAutoShape) presentation.getSlides().get_Item(0).getShapes().get_Item(0);
autoShape.getTextFrame().getTextFrameFormat().setAutofitType(TextAutofitType.Shape);
presentation.save("autofit_type.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Metin Çerçevelerinin Bağlantı Noktasını Ayarlama
ITextFrameFormat.setAnchoringType bir şekil içinde metnin dikey olarak nasıl konumlandırılacağını tanımlar; örneğin üstte, ortada veya altta.
Presentation presentation = new Presentation("sample.pptx");
try {
IAutoShape autoShape = (IAutoShape) presentation.getSlides().get_Item(0).getShapes().get_Item(0);
autoShape.getTextFrame().getTextFrameFormat().setAnchoringType(TextAnchorType.Bottom);
presentation.save("text_anchor.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Metin Sekme Ayarlarını Yapma
Bir paragrafta sek duraklarını yapılandırmak için IParagraphFormat.setDefaultTabSize ve IParagraphFormat.getTabs metodlarını kullanın.
Presentation presentation = new Presentation("sample.pptx");
try {
IAutoShape autoShape = (IAutoShape) presentation.getSlides().get_Item(0).getShapes().get_Item(0);
IParagraph paragraph = autoShape.getTextFrame().getParagraphs().get_Item(0);
paragraph.getParagraphFormat().setDefaultTabSize(100);
paragraph.getParagraphFormat().getTabs().add(30, TabAlignment.Left);
presentation.save("paragraph_tabs.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}

Denetleme Dilini Ayarlama
Aspose.Slides, bir metin bölümü için denetleme dilini ayarlamanızı sağlayan IBasePortionFormat.setLanguageId metodunu sağlar. Denetleme dili, PowerPoint’te yazım ve dil bilgisi denetimlerinde kullanılan dili belirler.
Aşağıdaki kod örneği, bir metin bölümü için denetleme dilinin nasıl ayarlanacağını gösterir:
Presentation presentation = new Presentation("presentation.pptx");
try {
IAutoShape autoShape = (IAutoShape) presentation.getSlides().get_Item(0).getShapes().get_Item(0);
IParagraph paragraph = autoShape.getTextFrame().getParagraphs().get_Item(0);
paragraph.getPortions().clear();
FontData font = new FontData("SimSun");
Portion textPortion = new Portion();
textPortion.getPortionFormat().setComplexScriptFont(font);
textPortion.getPortionFormat().setEastAsianFont(font);
textPortion.getPortionFormat().setLatinFont(font);
// Denetleme dilinin kimliğini ayarla.
textPortion.getPortionFormat().setLanguageId("zh-CN");
textPortion.setText("1。");
paragraph.getPortions().add(textPortion);
presentation.save("proofing_language.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Varsayılan Dili Ayarlama
Bir sunum yüklenirken veya oluşturulurken üretilen metin için varsayılan dili tanımlamak üzere LoadOptions.setDefaultTextLanguage metodunu kullanın.
LoadOptions loadOptions = new LoadOptions();
loadOptions.setDefaultTextLanguage("en-US");
Presentation presentation = new Presentation(loadOptions);
try {
ISlide slide = presentation.getSlides().get_Item(0);
// Yeni bir dikdörtgen şekil ekleyip içine metin ekle.
IAutoShape shape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 20, 20, 150, 50);
shape.getTextFrame().setText("Sample text");
// İlk bölümün dilini kontrol et.
IPortion portion = shape.getTextFrame().getParagraphs().get_Item(0).getPortions().get_Item(0);
System.out.println(portion.getPortionFormat().getLanguageId());
} finally {
presentation.dispose();
}
Varsayılan Metin Stilini Ayarlama
Sunum düzeyinde varsayılan metin biçimlendirmesi uygulamak için IPresentation.getDefaultTextStyle metodunu kullanın.
Aşağıdaki kod örneği, yeni bir sunumda tüm slaytlardaki metin için 14 pt boyutunda varsayılan kalın bir yazı tipi nasıl ayarlanacağını gösterir:
Presentation presentation = new Presentation();
try {
// Üst seviye paragraf biçimini al.
IParagraphFormat paragraphFormat = presentation.getDefaultTextStyle().getLevel(0);
if (paragraphFormat != null) {
paragraphFormat.getDefaultPortionFormat().setFontHeight(14);
paragraphFormat.getDefaultPortionFormat().setFontBold(NullableBool.True);
}
presentation.save("default_text_style.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Tüm Büyük Harf Efektiyle Metni Çıkarma
PowerPoint’te All Caps (Tam Büyük Harf) yazı tipi etkisini uyguladığınızda, metin orijinal olarak küçük harfle yazılmış olsa bile slaytta büyük harfle görüntülenir. Aspose.Slides ile böyle bir metin bölümü aldığınızda, kütüphane metni tam olarak girildiği gibi döndürür. Görüntülenen metinle eşleşmesi için, TextCapType kontrol edin ve değer All olduğunda döndürülen dizeyi büyük harfe çevirin.
Örneğin, sample2.pptx dosyasının ilk slaydında aşağıdaki metin kutusunun olduğunu düşünelim.

Aşağıdaki kod örneği, All Caps etkisi uygulanmış metni nasıl çıkaracağınızı gösterir:
Presentation presentation = new Presentation("sample2.pptx");
try {
IAutoShape autoShape = (IAutoShape) presentation.getSlides().get_Item(0).getShapes().get_Item(0);
IPortion textPortion = autoShape.getTextFrame().getParagraphs().get_Item(0).getPortions().get_Item(0);
System.out.println("Original text: " + textPortion.getText());
IPortionFormatEffectiveData textFormat = textPortion.getPortionFormat().getEffective();
if (textFormat.getTextCapType() == TextCapType.All) {
String text = textPortion.getText().toUpperCase();
System.out.println("All-Caps effect: " + text);
}
} finally {
presentation.dispose();
}
Çıktı:
Original text: Hello, Aspose!
All-Caps effect: HELLO, ASPOSE!
SSS
Bir slayttaki tabloda metni nasıl değiştirebilirim?
Bir slayttaki tabloda metni değiştirmek için ITable kullanın. Hücreler üzerinde döngü yaparak her hücreyi ICell.getTextFrame aracılığıyla güncelleyin ve paragraf biçimlendirmesini IParagraph.getParagraphFormat ile ayarlayın.
PowerPoint slaydındaki metne nasıl degrade (gradient) renk uygulayabilirim?
Metne degrade renk uygulamak için IBasePortionFormat.getFillFormat metodunu kullanın. IFillFormat.setFillType metodunu FillType.Gradient olarak ayarlayın ve degrade duraklarını, yönünü ve şeffaflığını yapılandırın.