- サマリ: オリジナルサイズの機能をマクロで実行したい
- 環境: Calc
- 状態: 解決
- 投稿者: yutaka?
- 投稿日: 2014-04-28 (月) 23:49:55
質問 
お世話になります。
図形を選択して右クリックで出てくる”オリジナルサイズ”をマクロで実行する方法はありますか?
または、図形のオリジナルサイズを取得する方法はありますか?
よろしくお願いします
回答 
- APIから一手で行う方法はありません。選択して .uno:OriginalSize コマンドを呼ぶのが一番簡単な方法になります。画像の場合、図形描写オブジェクトの Graphic.SizePixel または Graphic.Size が画像の元サイズのようです。 -- はにゃ?
感想,コメント,メモ 
- 回答ありがとうございます。 -- yutaka
- .uno:OriginalSize コマンドはできました。Graphic.SizePixelも一応できましたが、単位変換は、1Pixel=0.75ポイント、1ポイント=1/25.4inch、1インチ=25.4mm(0.75/72*25.4=0.26458 (mm/pixel))(2014-05-07訂正)で計算すると大体合いそうですが、これでいいですか? -- yutaka
- css.awt.XUnitConversion を使って変換してみましたが、同じサイズになりませんねぇ。手で計算すると、私の環境では 96pixel/1 inch で計算されているようです。
Function GetLogicSize()
win = ThisComponent.getCurrentController().ComponentWindow
source = ThisComponent.getCurrentSelection().getByIndex(0).Graphic.SizePixel
dest = win.convertSizeToLogic(source, com.sun.star.util.MeasureUnit.MM_100TH)
msgbox dest.Width & ", " & dest.Height
End Function