Excelの印刷機能のように、用紙サイズに合うよう縮小印刷するためにはどのようにしたらいいですか。
2017年10月10日
説明
誠に申し訳ありませんが、現バージョンには、縮小印刷などのExcel相当の印刷機能はございません。
次期バージョンで対応する予定です。
対応
縮小印刷機能を実現するためには、コーディングによって擬似的に実装する必要があります。
方法としては、印刷メソッドの呼び出し直前に、フォントサイズや目盛り幅の設定を小さい値に変更し、印刷メソッドからの復帰後に元の画面用のサイズにに戻すという方法です。
※但し、印刷メソッドを実行中は、画面上のタイムビューの表示も一 時的に小さいサイズで表示されます。
(例) タイムビューの中の各要素の表示サイズに関連するプロパティをまとめて設定するサブプロシージャ。
引数 bPrint が True ならば印刷用に小さい値を設定し、False のときは画面に適した値を設定します。
Public Sub SetTViewScaleProps(ByVal bPrint As Boolean)
Dim ch As KnTViewLib.ColumnHeader
Dim iFontSize As Single
If bPrint Then
‘印刷に適したサイズ設定
With KnTView1
‘列見出し文字列表示フォント
.Font.Size = 7
For Each ch In .ColumnHeaders
‘各列のセル文字列表示フォント
ch.Font.Size = 7
‘各列の幅
ch.Width = 700 ‘Twips
Next
‘ピースキャプションの文字列表示フォント
.PieceFont.Size = 7
‘タイムスケール
With .TimeScale
‘目盛り文字列表示フォント
.Large.Font.Size = 7
.Medium.Font.Size = 7
‘目盛り幅
.WidthPerScale = 400
End With
End With
Else
‘画面に適したサイズ設定
With KnTView1
‘列見出し文字列表示フォント
.Font.Size = 11
For Each ch In .ColumnHeaders
‘各列のセル文字列表示フォント
ch.Font.Size = 11
‘各列の幅
ch.Width = 1000 ‘Twips
Next
‘ピースキャプションの文字列表示フォント
.PieceFont.Size = 11
‘タイムスケール
With .TimeScale
‘目盛り文字列表示フォント
.Large.Font.Size = 11
.Medium.Font.Size = 11
‘目盛り幅
.WidthPerScale = 800
End With
End With
End If
End Sub
Private Sub Form_Load()
InitTView ‘列を追加するなどの初期設定
SetTViewScaleProps False ‘画面用の表示サイズを設定
SetTViewScaleProps False
End Sub
Private Sub cmdPrintPreview_Click()
Dim pi As New PrintInfo
SetTViewScaleProps True ‘印刷用の表示サイズを設定
KnTView1.PrintPreview pi ‘印刷実行
SetTViewScaleProps False ‘画面用の表示サイズを再設定
End Sub
