Я пытаюсь создать PDF-документ, который затем можно открыть с помощью внешнего приложения. Пользователь выбирает произвольное количество изображений, которые хранятся в List<byte[]>
. Невзирая на это, я не могу получить следующее, чтобы создать пустой PDF-файл, который можно открыть. Если я попытаюсь открыть сгенерированный PDF-документ, Adobe Reader сообщит, что файл не поддерживается или был поврежден. Я не уверен, где ошибка возникает, поскольку PDF создается. Я предполагаю, что проблема возникает при попытке записать PDF в FileStream. В чем проблема со следующим кодом?Создание PDF с использованием Xamarin Android
private void CreatePDFWithImages(List<byte[]> images)
{
// create PDF
PdfDocument pdf = new PdfDocument();
// create a page description
PdfDocument.PageInfo pageInfo = new PdfDocument.PageInfo.Builder(612, 792, 0).Create();
// draw image to pag
for (int i = 0; i < images.Count; i++)
{
// start page
PdfDocument.Page page = pdf.StartPage(pageInfo);
// create bitmap from each byte[]
byte[] currentByteArray = images[i];
Android.Graphics.BitmapFactory.Options options = new Android.Graphics.BitmapFactory.Options();
options.InMutable = true;
Android.Graphics.Bitmap bitmap = Android.Graphics.BitmapFactory.DecodeByteArray(currentByteArray, 0, currentByteArray.Length, options);
// matrix
Android.Graphics.Matrix matrix = new Android.Graphics.Matrix();
matrix.PreTranslate(300, 300);
matrix.PreScale(2, 2);
// add image to the page
page.Canvas.DrawBitmap(bitmap, matrix, null);
// finish the page
pdf.FinishPage(page);
}
// save PDF
string path = "/mnt/shared/POC_Documents/temp.pdf";
FileStream fileStream = new FileStream(path, FileMode.Create);
pdf.WriteTo(fileStream);
// close PDF
pdf.Close();
// try to open...
this.OpenPDF(path);
}
H предлагая эту же проблему здесь, есть какие-то решения? –