В настоящее время я создаю динамический PDF из моего приложения Xamarin.ios.Однако в настоящее время я пытаюсь добавить пользовательский класс списка, который содержит байтовый массив (изображение) и строку для заголовка изображения.Однако, когда я создаю документ PDF, я использую цикл foreach для результатов, содержащихся в списке, чтобы получить каждый байтовый массив изображений и соответствующий заголовок.
Проблема, с которой я сталкиваюсь, заключается в том, что когда я получаю сгенерированный PDF,кажется, что 4 изображения распечатаны в PDF.Я не уверен, что делаю что-то не так, но не вижу, если я?
Создание части изображения в PDF-сетке:
#region ATTACHED IMAGES GRID
PdfGrid imagesGrid = new PdfGrid();
imagesGrid.Columns.Add(2);
imagesGrid.Columns[0].Width = 110;
imagesGrid.Columns[1].Width = 400;
PdfGridRow imagesGridTitle = imagesGrid.Rows.Add();
imagesGridTitle.Cells[0].Value = "Attached Photos";
AddImages(imagesGrid);
#region CUSTOMISE STYLES
imagesGrid.Style.CellPadding = generalPadding;
imagesGridTitle.ApplyStyle(pdfGridHeaderStyle);
imagesGrid.Rows.SetSpan(0, 0, 1, 2);
#endregion
Метод динамического создания дополнительных строк:
private static void AddImages(PdfGrid imagesGrid)
{
foreach (var image in FormResults.photoResults)
{
PdfGridRow newGridRow = imagesGrid.Rows.Add();
newGridRow.Cells[0].Value = image.Caption;
newGridRow.Cells[1].Value = CreatePDFImage(image.ImageByte);
newGridRow.Cells[1].ImagePosition = PdfGridImagePosition.Fit;
}
}
Метод создания pdfimage из байтового массива:
private static PdfImage CreatePDFImage(byte[] byteArray)
{
MemoryStream imageMs = new MemoryStream(byteArray);
PdfImage image = new PdfBitmap(imageMs);
return image;
}
наконец, мой пользовательский список:
public class PhotoResults
{
public byte[] ImageByte { get; set; }
public string Caption { get; set; }
}