如何在Windows Phone 8.1中获取存储文件的十六进制字符串

本文关键字:存储文件 获取 十六进制 字符串 Windows Phone | 更新日期: 2023-09-27 18:37:24

我正在使用PhotoChooser和CameraCapture Taks获取图像,

我将这些图像存储在本地存储中,并以"PDF文档"的形式存储。

的目的是,我必须在"十六进制字符串"中添加此文档。我能够将其转换为十六进制字符串,但不正确。

因为,添加PDF文档后,当我在手机中看到该文档时,它是其他文档。

这是我的字节数组:

MemoryStream ms = new MemoryStream();
WriteableBitmap wbitmp = new WriteableBitmap((BitmapImage)image1.Source);
wbitmp.SaveJpeg(ms, 400, 400, 0, 100);
bytearray = ms.ToArray();

现在,将其创建到本地存储:

StorageFolder folder = Windows.Storage.ApplicationData.Current.LocalFolder;
StorageFile sampleFile = await folder.CreateFileAsync("Test.pdf", CreationCollisionOption.ReplaceExisting);
await FileIO.WriteBytesAsync(sampleFile, bytearray);

然后尝试将其转换为MemoryStream:

MemoryStream itsStream = new MemoryStream();
var outputStream = await sampleFile.OpenAsync(Windows.Storage.FileAccessMode.ReadWrite);
Stream longStream = outputStream.AsStream();
longStream.CopyTo(itsStream);
byte[] allInOne = itsStream.ToArray();

这是我的最后一个"PDF文档"十六进制字符串:

string hexString = BitConverter.ToString(allInOne);

任何帮助将不胜感激!

谢谢!!

如何在Windows Phone 8.1中获取存储文件的十六进制字符串

终于找到了方法。我在Windows Phone 8.1项目中添加了ComponentOne库。

using C1.Phone.Pdf;
using C1.Phone.PdfViewer;
C1PdfDocument pdf = new C1PdfDocument(PaperKind.PrcEnvelopeNumber3Rotated);
pdf.Landscape = true;
var rc = new System.Windows.Rect(20,30,300,200);
pdf.DrawImage(wbitmp, rc);
var fillingName = "Test.pdf";
var gettingFile = IsolatedStorageFile.GetUserStoreForApplication();
using (var loadingFinalStream = gettingFile.CreateFile(fillingName))
{
   pdf.Save(loadingFinalStream);
   MemoryStream leadingMemoryStream = new MemoryStream();
   loadingFinalStream.Position = 0;
   loadingFinalStream.CopyTo(leadingMemoryStream);
   byte[] leadingBytes = leadingMemoryStream.ToArray();
   lastHexString = BitConverter.ToString(leadingBytes);
}