Показать сообщение отдельно
Старый 27.07.2016, 10:27   #3  
Sada is offline
Sada
Программатор
Аватар для Sada
 
1,450 / 153 (8) ++++++
Регистрация: 29.03.2005
Адрес: Толи Барнаул, толи Москва
Вот как то так
X++:
public void processInExcelAfter()
{
    DataMatrix.net.DmtxImageEncoder                 encoder;
    DataMatrix.net.DmtxImageEncoderOptions          options;
    System.Drawing.Bitmap                           bitmap;
    BinData                                         bindata;
    System.IO.MemoryStream                          memoryStream;
    Binary                                          binary;
    SCMDeliverySchedId                              deliverySchedId;
    SetEnumerator                                   se;
    ;
    if (!QRCodeContainerSet.empty())
    {
        new InteropPermission(InteropKind::ClrInterop).assert();
        bindata = new BinData();        
        encoder = new DataMatrix.net.DmtxImageEncoder();
        options = new DataMatrix.net.DmtxImageEncoderOptions();
        options.set_Encoding(System.Text.Encoding::get_UTF8());        
        
        se      = QRCodeContainerSet.getEnumerator();
        
        while (se.moveNext())
        {
            [currentRow, deliverySchedId] = se.current();

            try
            {
                memoryStream    = new System.IO.MemoryStream();
                bitmap          = new System.Drawing.Bitmap(encoder.EncodeImage(deliverySchedId, options));
                bitmap.Save(memoryStream, System.Drawing.Imaging.ImageFormat::get_Bmp());

                binary          = Binary::constructFromMemoryStream(memoryStream);
                bindata.setBinaryData(binary);

                excelDocument.insertImage(ComExcelDocument_RU::numToNameCell(2, currentRow), bindata.getData(), 5,5);
            }
            catch (Exception::CLRError)
            {
                //BP Deviation documented
                error(CLRInterop::getLastException().ToString());
            }
        }
        CodeAccessPermission::revertAssert();
    }
}