我正在使用Xamarin Android并在线" document.WriteTo(outPut);"我收到编译时错误。等效代码用Java编译,但是使用Xamarin和c#我有一些类型的转换/转换问题。有谁知道如何解决这一问题?我想要做的是将我创建的pdf转换为字节数组。
Byte[] MakePDFFromImages(){
// open a new document
PrintAttributes printAttributes = new PrintAttributes.Builder().
SetColorMode(Android.Print.PrintColorMode.Color).
SetMediaSize(PrintAttributes.MediaSize.IsoA4).
SetResolution(new PrintAttributes.Resolution("zooey","test", 450, 700)).
SetMinMargins(PrintAttributes.Margins.NoMargins).
Build();
PrintedPdfDocument document = new PrintedPdfDocument (Activity.BaseContext, printAttributes);
// start a page
Android.Graphics.Pdf.PdfDocument.Page page = document.StartPage(0);
ImageView imageView = new ImageView (Activity.BaseContext);
imageView.SetImageBitmap (_imageArray [0]);
imageView.Draw(page.Canvas);
document.FinishPage(page);
ByteArrayOutputStream outPut = new ByteArrayOutputStream();
try {
document.WriteTo(outPut);
document.Close();
outPut.Close();
}
catch(Exception){
}
return outPut.ToByteArray();
}
答案 0 :(得分:1)
PrintedPdfDocument.Write
期望.NET Stream
,而您传递Java ByteArrayOutputStream
。要修复,请使用.NET MemoryStream
:
Byte[] MakePDFFromImages()
{
// open a new document
PrintAttributes printAttributes = new PrintAttributes.Builder().
SetColorMode(Android.Print.PrintColorMode.Color).
SetMediaSize(PrintAttributes.MediaSize.IsoA4).
SetResolution(new PrintAttributes.Resolution("zooey", "test", 450, 700)).
SetMinMargins(PrintAttributes.Margins.NoMargins).
Build();
PrintedPdfDocument document = new PrintedPdfDocument(Activity.BaseContext, printAttributes);
// start a page
Android.Graphics.Pdf.PdfDocument.Page page = document.StartPage(0);
ImageView imageView = new ImageView(Activity.BaseContext);
imageView.SetImageBitmap(_imageArray[0]);
imageView.Draw(page.Canvas);
document.FinishPage(page);
var outPut = new MemoryStream();
try
{
document.WriteTo(outPut);
document.Close();
outPut.Close();
}
catch (Exception)
{
}
return outPut.ToArray();
}
答案 1 :(得分:0)
如果您阅读了Xamarin API文档,WriteTo()的PDFDocument方法需要.NET System.IO.Stream,而不是Java流。
这个sample显示了如何在Xamarin中使用PDFDocument类