Form上に配置しないSPREAD(FpSpread)からPDFファイルにエクスポートできない

文書番号 : 39001     文書種別 : 不具合     登録日 : 2015/07/09     最終更新日 : 2015/07/23
文書を印刷する
対象製品
SPREAD for Windows Forms 7.0J
状況
修正済み
詳細
Form上に配置しないSPREAD(FpSpread)を生成してPDFファイルにエクスポートしようとすると、エラーメッセージが表示され、PDFファイルにエクスポートできません。

【手順】
1.新規フォームにSPREADとButtonを配置します
2.下記サンプルコードをコピーし、アプリケーションを実行します
3.Buttonをクリックします
  --エラーメッセージが表示され、PDFファイルにエクスポートできません

【サンプルコード】
  Public temp As FarPoint.Win.Spread.FpSpread

  Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    temp = New FarPoint.Win.Spread.FpSpread
    temp.Sheets.Add(New FarPoint.Win.Spread.SheetView())

    ' テストデータの設定
    temp.Sheets(0).Cells(1, 1).Value = "test"
  End Sub

  Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    '' 回避策
    'Dim test As IntPtr = temp.Handle

    ' PDFファイルへエクスポート
    temp.Sheets(0).PrintInfo.PrintToPdf = True
    temp.Sheets(0).PrintInfo.PdfFileName = "..¥..¥spread.pdf"
    temp.PrintSheet(0)
  End Sub
回避方法
Service Pack 5(v7.0.2018.2008)で修正済み。
Service Pack 5(v7.0.2018.2008)より前のバージョンでは次の回避方法が有効です。
------------------------------------------

以下のサンプルコードのように、PDFへのエクスポート前にコントロールのバインド先のウィンドウ ハンドルを取得します。

【サンプルコード】
  Public temp As FarPoint.Win.Spread.FpSpread

  Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    temp = New FarPoint.Win.Spread.FpSpread
    temp.Sheets.Add(New FarPoint.Win.Spread.SheetView())

    ' テストデータの設定
    temp.Sheets(0).Cells(1, 1).Value = "test"
  End Sub

  Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    ' 回避策
    Dim test As IntPtr = temp.Handle

    ' PDFファイルへエクスポート
    temp.Sheets(0).PrintInfo.PrintToPdf = True
    temp.Sheets(0).PrintInfo.PdfFileName = "..¥..¥spread.pdf"
    temp.PrintSheet(0)
  End Sub