Hücre içindeki metin olduğunda doğru Tablo hücresi yüksekliği nasıl elde edilir
Geçmiş: - Şekil boyutu tablo hücresi boyutuna eşit değildir ve metni şeklin içine sığdırır
Çözüm mükemmel çalışıyordu, ama biz Sanki "ile yaptığına dair bir metnin metin yüksekliğini değiştirmek ne zaman ı bazı sorunlar buldu Metin 1 ", ben "yüksekliğini değiştirdi Metin 1 ", daha sonra satır yüksekliği sonucu 0.0 olacak

Google Apps Komut Dosyasının Sınırlandırılması: Hücre yüksekliğini alamıyoruz, hücrenin dolgusunu alamıyoruz.
Bazı araştırmalardan sonra hücrenin paragrafını metin olarak çıkarmaya çalıştım.
Benim ve Tanaike modifikasyonumla güncellenmiş komut dosyası :
var rowHeight = 0.0;
var tableCell = pageElements[index].asTable().getCell(ir, ic);
//Get cell color
let cellFill = tableCell.getFill().getSolidFill();
var cellParaText = tableCell.getText().getParagraphs();
cellParaText.forEach(function(item, index) {
var t = cellParaText[index].getRange();
//I tried to applied Tanaike's solution here
rowHeight = rowHeight + ( t.asString().split("\n").length - 1 ) * ( t.getTextStyle().getFontSize() / 72 * 96 )
//rowHeight = rowHeight + cellParaText[index].getRange().getTextStyle().getFontSize();
rowHeight = rowHeight + cellParaText[index].getRange().getParagraphStyle().getSpaceAbove()
rowHeight = rowHeight + cellParaText[index].getRange().getParagraphStyle().getSpaceBelow()
rowHeight = rowHeight + (cellParaText[index].getRange().getParagraphStyle().getLineSpacing()/100)
});
//Get cell text, text color and text background color
let cellText = tableCell.getText().asString()
//insert the RECTANGLE shape
let insertedShape = selection.getCurrentPage()
.insertShape(SlidesApp.ShapeType.RECTANGLE, cellLeft+5, cellTop+5, columnWidth, rowHeight);
Tam komut dosyası burada https://pastebin.com/keXKHbhC
İşte GSlide'daki Tablom - https://docs.google.com/presentation/d/10nupvk-2BZDSV6-gPn_n2LkrUtkCxot7qr_jcZGBHqw/edit#slide=id.p
Yine de sorun, tablo hücresine eşit şekil yüksekliği ile aynıdır, Resme bakın

Yanıtlar
Bu değişikliğe ne dersiniz?
Değişiklik noktaları:
- Kontrol ettiğimde
getSpaceAbove()
vegetSpaceBelow()
öyle görünüyor ki0
. - Sanırım bu
getLineSpacing()
kullanılabilir. - Ve bir önemli noktayı daha fark ettim. Örneğin 3 paragraf varken 4 paragraflık boşlukların kullanılması gerektiği görülmektedir.
Bu noktalar senaryonuza yansıtıldığında https://pastebin.com/keXKHbhCaşağıdaki gibi olur.
Değiştirilmiş komut dosyası:
Kimden:
cellParaText.forEach(function(item, index) {
var t = cellParaText[index].getRange();
//i tried to applied Tanike's solution here
rowHeight = rowHeight + ( t.asString().split("\n").length - 1 ) * ( t.getTextStyle().getFontSize() / 72 * 96 )
//rowHeight = rowHeight + cellParaText[index].getRange().getTextStyle().getFontSize();
rowHeight = rowHeight + cellParaText[index].getRange().getParagraphStyle().getSpaceAbove()
rowHeight = rowHeight + cellParaText[index].getRange().getParagraphStyle().getSpaceBelow()
rowHeight = rowHeight + (cellParaText[index].getRange().getParagraphStyle().getLineSpacing()/100)
});
Kime:
cellParaText.forEach(function(item, index, a) {
var t = cellParaText[index].getRange();
var lineSpace = cellParaText[index].getRange().getParagraphStyle().getLineSpacing() / 100;
var fontSize = t.getTextStyle().getFontSize() / 72 * 96;
rowHeight += fontSize * (a.length > 1 ? lineSpace : 1);
if (index == a.length - 1) rowHeight += fontSize;
});
Ayrıca, lütfen aşağıdaki gibi değiştirin.
Kimden:
insertedShape.getText()
.getParagraphStyle()
.setLineSpacing(cellParagraph.getLineSpacing()/100)
.setSpaceAbove(cellParagraph.getSpaceAbove())
.setSpaceBelow(cellParagraph.getSpaceBelow())
.setSpacingMode(cellParagraph.getSpacingMode())
.setParagraphAlignment(cellParagraph.getParagraphAlignment())
Kime:
insertedShape.getText()
.getParagraphStyle()
.setParagraphAlignment(cellParagraph.getParagraphAlignment())
Sonuç:
Örnek Google Slaytlarınız yukarıda değiştirilmiş komut dosyasıyla kullanıldığında aşağıdaki gibi olur.

Not:
- Bu, örneğiniz için basit bir örnek komut dosyasıdır. Dolayısıyla, başka bir örnek kullandığınızda, komut dosyasının değiştirilmesi gerekebilir. Lütfen buna dikkat edin.
- Bu durumda, örneğinizden, her paragrafın aynı yazı tipi boyutunda olduğunu varsayar. Lütfen buna dikkat edin.