Alte Funktionalität
Code: Select all
    public FileResult DownloadBarcode(string BarCodeString, string CampaignName, string StartDate)
{
try
{
using (WebClient wc = new WebClient())
{
var byteArr = wc.DownloadData(string.Format(
https://foo.InternalStringToBitmapConverter,
BarCodeString));
string fileName = string.Format("{0}-{1}.tiff",
CampaignName.Replace("#", "").Replace(" ", ""),
StartDate.Replace("/", "-").Substring(0, StartDate.IndexOf(" ")));
return File(byteArr, System.Net.Mime.MediaTypeNames.Application.Octet, fileName);
}
}
catch (System.Net.WebException ex)
{
log.Error("Error retrieving barcode from service, error: " + ex.Message, ex);
return null;
}
}
Beim Versuch, dies nun auf 8.0 zu konvertieren, sagt mir VS, dass WebClient veraltet ist und ich HttpClient verwenden soll. Ich habe versucht, die gleiche Funktionalität zum Laufen zu bringen, finde aber keine Möglichkeit, diesen Code auf 8.0 zu migrieren.
Damit dies funktioniert, benötige ich:
Eine Funktion, die eine String-Eingabe aufnimmt (was etwa den Effekt von „AA123456789“ haben wird), die Zeichenfolge in eine Bitmap umwandelt und den resultierenden Barcode in einer TIFF-Datei speichert. Diese Datei muss dann an den Browser zurückgesendet werden.
Ich habe dies bisher durch das Herunterladen einer BMP-Datei erreicht, aber ich benötige die Datei im TIFF-Format. Ich habe keine Möglichkeit gefunden, diesen Code in eine TIFF-Datei herunterzuladen.
Code: Select all
  public ActionResult DownloadBarcode(string item)
{
var bitmapWriter = new BarcodeWriter
{
Format = BarcodeFormat.CODE_128, // change barcode type as needed
Options = new ZXing.Common.EncodingOptions
{
Height = 150,
Width = 1158,
}
};
var height = 150; // These sizes must be stagnant
var width = 1158;
var bitmap = bitmapWriter.Write(item.ToString());
Bitmap barcodeImage = new Bitmap(width, height, PixelFormat.Format32bppRgb);
for (int y = 0; y < height; y++)
{
for (int x = 0; x < width; x++)
{
int i = ((y * width) + x);
Color color = Color.FromArgb(0, bitmap.Pixels[i].Red, bitmap.Pixels[i].Green, bitmap.Pixels[i].Blue);
barcodeImage.SetPixel(x, y, color);
}
}
var now = DateTime.Now;
MemoryStream stream = new MemoryStream();
barcodeImage.Save(stream, System.Drawing.Imaging.ImageFormat.Bmp);
Byte[] bytes = stream.ToArray();
return File(bytes, "image/bmp", "AA" + item + ".Bmp");
}
 Mobile version
 Mobile version