私はAmazonの出荷ラベルからリクエストしています。圧縮された "GZIP"ファイルの文字列を返信しています。これを ".gz"私はそれを解凍することができます(またはそれを抽出する)、時には "PNG"形式の文字列であり、いくつかは "PDF"形式です。 しかし、毎回「PNG」形式でプリントアウトしたいのですが、「PDF」形式を返信するときに、圧縮解除された(GZIPSTREAM)ファイルを「PNG」に変換することはできません! はサードパーティのライブラリをインストールしないと助けになりますか?"PDF"を "PNG"に変換します。C#
は、ここでは、ストリームの最初の4つのバイトを見て、PNGを検出することができますマイコード
public async Task PrintLabel(string imageLabelString)
{
var byteStream = Convert.FromBase64String(imageLabelString);
GZipStream gzip = null;
Image image = null;
using (MemoryStream memoryStream = new MemoryStream(byteStream))
{
image = null;
//File.WriteAllBytes("temp.gz", byteStream);
using (gzip = new GZipStream(memoryStream, CompressionMode.Decompress))
{
image = Image.FromStream(gzip);
};
memoryStream.Position = 0;
image.RotateFlip(RotateFlipType.Rotate90FlipNone);
PrintDocument pd = new PrintDocument();
pd.PrintPage += (object o, PrintPageEventArgs e) =>
{
Rectangle rectangle = new Rectangle(0, 0, 500, 750);
e.Graphics.DrawImage(image, rectangle);
};
pd.PrinterSettings.PrinterName = "PrinterName";
pd.Print();
}
this.Close();
}
これは、第三者のライブラリなしでは自明ではありません。 * c#pdfの画像には多くのヒットがあります。* –
最初の4バイトを確認して、デコードされたストリームがPNGであるかどうかを検出できます。 PNGには、文字列 "PNG"がASCIIで含まれます。 –