Syncfusion PDF 图像 Xamarin.ios

Syncfusion PDF Images Xamarin.ios

目前我正在从我的 Xamarin.ios 应用程序生成动态 PDF。但是,我目前尝试做的是添加一个自定义列表 class,其中包含一个字节数组(图像)和一个图像标题字符串。但是,当我生成 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;
    }

最后,我的自定义列表 class:

public class PhotoResults
    {
        public byte[] ImageByte { get; set; }
        public string Caption { get; set; }
    }

您的要求可以使用 BeginCellLayout 事件处理程序来实现。请在下面找到示例和输出 PDF 以供参考。

示例: http://www.syncfusion.com/downloads/support/directtrac/217022/ze/Sample1494155968

输出PDF: http://www.syncfusion.com/downloads/support/directtrac/217022/ze/output-1577237401

注意:我为 Syncfusion 工作。