1
データソースとしてクラスを持つCrystal Reportがあります。ビットマップを渡すバイト配列がありますが、Crystalレポートには印刷されません。以下の私のコードを見てください。Crystalバイト配列のレポート画像が印刷されない
var d = new Label();
var eanCreator = new CreateEan();
var bf = new BinaryFormatter();
using (var ms = new MemoryStream())
{
bf.Serialize(ms, eanCreator.createBitmap(1.5f, "1234567890"));
var byteArray = ms.ToArray();
var ld = new LabelData
{
PartNumber = "123",
EanData = byteArray
};
d.SetDataSource(new List<LabelData> {ld});
d.PrintOptions.PrinterName = @"\\SERVER\Printer";
d.PrintToPrinter(1, false, 0, 0);
}
画像を除くすべてのデータが存在します。私はクラスを使用してEANバーコードを作成していますが、この部分はイメージファイルに正しくレンダリングされますが、Crystal Reportsでは認識されません。
正しくエンコードされ、ヘッダーフィールドを含む、何らかの種類のオンディスクイメージ形式(bmp、jpg)を表すバイナリデータが必要です。 – Arvo
私はこのメソッドを使って、バイト配列を 'var byteArray =(byte [])new ImageConverter()。ConvertTo(efCreator.createBitmap(1.5f、appData.EanNumber)、typeof(byte []));'この結果、汎用GDIエラー –
バイト配列ではなく、内部ビットマップから一部のイメージ形式(Crystalが少なくともbmpおよびjpgを処理します)に変換する必要があります。 – Arvo