如何在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项目中添加了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);
}