Summary1.データによる事象:テキスト領域は正しく印刷されるが、イメージ領域が白紙となるデータがある。(このデータは個人情報が含まれており、残念ながら添付できません。)それと同様のデータ(数万枚)は、問題なく印刷できている。イメージが類似しているものの問題ない。
2.CrystalReportsのエラーは発生していない。(全てのExceptionを Catch するように印刷処理を囲っています。)
3.Java環境で利用する機能では該当データを印刷できる。
何か解決策はありますか。
パッチ情報などがあるかも知れないので、Forumを「印刷」「白紙」「エラーなし」「データ」などキーワード検索してみましたが、見つかりませんでした。
補足:
VB.Net Crystal Reports 11 R2 ServicePack4 ではタイトルの事象が発生。
Java Reporting Component(Crystal Reports 11)では再現しない。
補足として、ソース(抜粋)を記載します。
ソース:
Crystal Report 印刷部分の抜粋
Dim IraisyoImage As New KESho010p1
'レポート用のデータセットの作成
Dim DsIraisyoImage As New DsIraiSyoImage 'データセット
Dim dTblIraisyoImage As New DataTable 'データテーブル
Dim dRow As DataRow 'データROW
'画面のイメージデータを印刷用イメージにコピー
Dim drwAsDrawing.Image=Nothing
Dim ImageViewerAsLeadtools.WinForms.RasterImageViewer 'イメージビューア
ImageViewer=(NewLeadtools.WinForms.RasterImageViewer) 'イメージビューア
dTblIraisyoImage=DsIraisyoImage.Tables("印刷用テーブル")
'新しい行の新規作成
dRow=dTblIraisyoImage.NewRow
イメージロード/保存用RasterCodecsを宣言します。20090331
Dim CodecsT1 As New RasterCodecs
'指定した画像ファイルをロード
ImageViewer.Image=CodecsT1.Load(ImagePath,Riv_IraishoIMG.Image.BitsPerPixel,CodecsLoadByteOrder.Rgb,1,1)
①ログ出力 依頼書印刷
'Leadtools.RasterImageをGDI+ System.Drawing.Imageに変更
drw = ImageViewer.Image.ChangeToGdiPlusImage(ChangeToGdiPlusImageFlags.ForceChange) '20090220
②ログ出力 依頼書印刷(1_1:drw)
'指定した値オブジェクトを、指定した型(Byte)に変換
bytImage = CType(imgconv.ConvertTo(drw, GetType(Byte())), Byte())
③ログ出力 依頼書印刷(2:bytImage)
'クリスタルレポートの印刷項目に設定
dRow("イメージ")=bytImage
④ログ出力 依頼書印刷(3:dRow(イメージ))
'各種項目の設定
dRow("?????")=???????????
・・・・・・・・
'新規行を追加
dTblIraisyoImage.Rows.Add(dRow)
'レポートにデータセットとパラメータの設定
IraisyoImage.SetDataSource(DsIraisyoImage)
'パラメータ名と値を設定する。
IraisyoImage.SetParameterValue("???",??????????????)
・・・・・・・・
⑤ログ出力 印刷直前
IraisyoImage.PrintToPrinter(1,False,0,0)
⑥ログ出力 印刷直後
IraisyoImage.Close()
⑦ログ出力 印刷完了
尚、全てのExceptionを Catch するように印刷処理を囲っています。
Catchされた場合は、Catchした内容をログに出力しで印刷を行わずに処理を終了します。
上記の①~⑦のログ出力結果では、サイズが大きいので要約しますと、印刷直前・印刷直後などでイメージ領域のサイズが変わっていないか確認しました。(例えば、印刷の前後でサイズが小さくなり白紙となっていない等)サイズは変わっていませんでした。