2

Python ライブラリpython-pptxを使用していくつかのパワーポイントを生成していますが、場合によっては、生成されているテキストがスライドの外側にあります (箇条書きが 2 つある、またはテキストが大きすぎるため)。

例えば ​​:

+------------------------------------------+
|     Title of the slide                   |
+-------+-----------------------+----------|
|     o - First Bullet                     |
|     o - Second bullet                    |
|     o - Third bullet                     |
+------------------------------------------+ <-- End of slide 
      o - Fourth bullet    <- Out of slide
      o - Fifth  bullet    <- Out of slide

それで、テキストがプレースホルダーまたはスライドから外れていることを検出するユーティリティがあるかどうか疑問に思っていましたか?

前もって感謝します、

フロリアン

4

3 に答える 3

1

そのように使用できますMSO_AUTO_SIZE.TEXT_TO_FIT_SHAPE

from pptx.enum.text import MSO_AUTO_SIZE
...
content_ph = slide.placeholders[1]
content = body_content_ph.text_frame
content.clear()
content.auto_size = MSO_AUTO_SIZE.TEXT_TO_FIT_SHAPE

ここに関する詳細情報を見つけることができますautosize: http://python-pptx.readthedocs.io/en/latest/api/enum/MsoAutoSize.html

于 2017-07-18T10:07:45.860 に答える
0

python-pptx ライブラリに、テキスト ボックスの BoundTop および BoundHeight プロパティにアクセスする方法がある場合は、それを使用できます。

PPT 内でテストして、それがどのように機能するかを理解できる VBA の例。実行する前に、必ずテキスト ボックスを選択してください。

Sub InOrOut()
    Dim osh As Shape
    Set osh = ActiveWindow.Selection.ShapeRange(1)
    With osh.TextFrame.TextRange
        If .BoundTop + .BoundHeight > osh.Top + osh.Height Then
            MsgBox "Text is out of the box"
        End If
    End With
End Sub

これには多少の違いがあることに気付くでしょう。より正確にする必要がある場合は、TextFrame の .MarginTop と .MarginBottom も考慮に入れる必要があります。

ActivePresentation.PageSetup.SlideHeight に対して .BoundTop + .BoundHeight をテストして、テキストがスライドの下部から外れているかどうかを判断します。

于 2017-01-06T16:38:38.647 に答える