2

図形のテキストと背景色がテキスト文字列に基づいている数百の基本的なグラフィックスを生成しようとしています。

このために、私は PowerPoint を使用することを選択しました。これは、画像のスタイリングが私の機能にとって非常に包括的であると感じているためです。これを行う方法を知っている唯一のプログラムは Adob​​e Photoshop ですが、そのソフトウェアは持っていません。

画像のエクスポート機能が動作するようになりましたが、エクスポートされたグラフィックの画質がひどいです

より良い画像プロセッサでこれを行うにはどうすればよいですか?

ご覧のとおり、文字列値 (Rectangle 5) を保持するテキスト ボックスと、テキスト文字列の 2 つの RGB 値によってスタイル設定される「形状」を備えた PowerPoint スライドがあります。文字列値の形式は次のとおりです (パイプ区切り)

  • テキストボックス 4.名前 | 角丸長方形 角丸長方形 3.色

ここに画像の説明を入力

使用したコード:

Private Sub btnProcess_Click()
Dim i As Integer
Dim StringsArray As Variant
Dim StringItems As Variant
    ' Call getlines to break all lines into separate records in stringsarray
    StringsArray = getlines()
    For i = 0 To UBound(StringsArray)
       StringItems = Split(StringsArray(i), "|")
       ActivePresentation.Slides("Slide1").Shapes("TextBox 4").TextFrame.TextRange.Text = StringItems(0)
       ActivePresentation.Slides("Slide1").Shapes("Rounded Rectangle 7").Fill.ForeColor.RGB = StringItems(1)
       ActivePresentation.Slides("Slide1").Shapes("Rounded Rectangle 3").Fill.ForeColor.RGB = StringItems(2)
       ActivePresentation.Slides("Slide1").Shapes("Group 6").Export "C:\temp\file.emf", ppShapeFormatEMF, 150, 150, ppRelativeToSlide
    Next i
End Sub

Function getlines() As Variant
Dim mylines As Variant
Dim mytext As String
    mytext = ActivePresentation.Slides("Slide1").Shapes("Rectangle 5").TextFrame.TextRange.Text
    mylines = Split(mytext, vbCr)
    getlines = mylines
End Function
4

1 に答える 1

1

PowerPoint スライドに表示されているベクター グラフィックス ベースの PPT オブジェクトは、縮尺の影響を受けないため、ズーム レベルを問わず、オブジェクトが歪んで表示されることはありません。

オブジェクト グラフィックを真のメタファイルとして出力する方法を見つけることができませんでした。ppShapeFormatEMF 形式でベクトル ベースの EMF が生成されず、はるかに大きな画像が生成されます。

最後に私の最善の解決策は、PPT オブジェクトの基本サイズを大きくし、ppShapeFormatPNG 形式を使用して形状オブジェクトをエクスポートすることでした。これにより、画像の詳細レベルが上がりました。

ちょっと明白。

ここに画像の説明を入力

于 2012-11-01T06:22:11.703 に答える