作成日: 2018/09/12 最終更新日: 2018/12/18
文書種別
不具合
状況
修正済み
詳細
■事象
Excelライクプレビュー画面で、プリンタを変更した後に、[ページ設定]ダイアログを開き、タブを何度か開いているとNullReferenceException例外が発生する。
■サンプルコード(VB.NET)
■再現手順
1. プレビュー画面が表示されたら、[プリンタ]を変更します。
2. [ページ設定]ダイアログを開きます。
3. [ページ][余白][ヘッダー/フッター][シート]の各タブを何度か切り替えます。
→NullReferenceExceptionが発生します。
■発生条件
『通常使うプリンター(デフォルトプリンター)』を特定のプリンターに設定している場合に発生します。
事象が確認されているプリンタ:
・Fuji Xerox C3360
Excelライクプレビュー画面で、プリンタを変更した後に、[ページ設定]ダイアログを開き、タブを何度か開いているとNullReferenceException例外が発生する。
■サンプルコード(VB.NET)
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
' Excelライクプレビューを有効にします。
Dim printset As New FarPoint.Win.Spread.PrintInfo()
printset.EnhancePreview = True
printset.ShowPrintDialog = True
printset.Preview = True
FpSpread1.ActiveSheet.PrintInfo = printset
' 印刷(プレビュー)を実行します。
FpSpread1.PrintSheet(0)
End Sub
' Excelライクプレビューを有効にします。
Dim printset As New FarPoint.Win.Spread.PrintInfo()
printset.EnhancePreview = True
printset.ShowPrintDialog = True
printset.Preview = True
FpSpread1.ActiveSheet.PrintInfo = printset
' 印刷(プレビュー)を実行します。
FpSpread1.PrintSheet(0)
End Sub
■再現手順
1. プレビュー画面が表示されたら、[プリンタ]を変更します。
2. [ページ設定]ダイアログを開きます。
3. [ページ][余白][ヘッダー/フッター][シート]の各タブを何度か切り替えます。
→NullReferenceExceptionが発生します。
■発生条件
『通常使うプリンター(デフォルトプリンター)』を特定のプリンターに設定している場合に発生します。
事象が確認されているプリンタ:
・Fuji Xerox C3360
回避方法
Service Pack 2(v11.0.4503.2012)で修正済み。
Service Pack 2を適用せずに対処する方法としては、用紙サイズを明示的に設定することで回避することが可能です。
■サンプルコード(VB.NET)
ただし、設定する用紙サイズを印刷先のプリンタがサポートしていない場合、別の用紙サイズに印刷されたり、同様の例外が発生する場合があります。プレビュー画面やページ設定ダイアログ上で印刷したい用紙サイズが選択されていることを確認してください。
Service Pack 2を適用せずに対処する方法としては、用紙サイズを明示的に設定することで回避することが可能です。
■サンプルコード(VB.NET)
' 印刷設定情報を定義にします。
Dim printset As New FarPoint.Win.Spread.PrintInfo()
printset.EnhancePreview = True ' (Excelライクプレビューを有効にします。)
printset.ShowPrintDialog = True
printset.Preview = True
' ***** 回避策 *****
' 用紙サイズを明示的に設定します
Dim pd As New System.Drawing.Printing.PrintDocument
printset.Printer = pd.PrinterSettings.PrinterName
For Each Ps As System.Drawing.Printing.PaperSize In pd.PrinterSettings.PaperSizes
If (Ps.Kind = Drawing.Printing.PaperKind.A4) Then
printset.PaperSize = Ps
Exit For
End If
Next
' 印刷を実行(プレビューを表示)します。
FpSpread1.ActiveSheet.PrintInfo = printset
FpSpread1.PrintSheet(0)
Dim printset As New FarPoint.Win.Spread.PrintInfo()
printset.EnhancePreview = True ' (Excelライクプレビューを有効にします。)
printset.ShowPrintDialog = True
printset.Preview = True
' ***** 回避策 *****
' 用紙サイズを明示的に設定します
Dim pd As New System.Drawing.Printing.PrintDocument
printset.Printer = pd.PrinterSettings.PrinterName
For Each Ps As System.Drawing.Printing.PaperSize In pd.PrinterSettings.PaperSizes
If (Ps.Kind = Drawing.Printing.PaperKind.A4) Then
printset.PaperSize = Ps
Exit For
End If
Next
' 印刷を実行(プレビューを表示)します。
FpSpread1.ActiveSheet.PrintInfo = printset
FpSpread1.PrintSheet(0)
ただし、設定する用紙サイズを印刷先のプリンタがサポートしていない場合、別の用紙サイズに印刷されたり、同様の例外が発生する場合があります。プレビュー画面やページ設定ダイアログ上で印刷したい用紙サイズが選択されていることを確認してください。
旧文書番号
83223