Form上に配置しないSPREAD(FpSpread)からPDFファイルにエクスポートできない
対象製品
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
【手順】
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
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