Cognos v11 SDK экспорт в PDF - PullRequest
       9

Cognos v11 SDK экспорт в PDF

0 голосов
/ 14 сентября 2018

У кого-нибудь есть пример, который будет генерировать отчет в формате PDF с использованием SDK? В SDK.pdf есть только примеры html. Я не могу понять это. Я использую контроллер C # для вызова Cognos для создания отчета.

Значение runOptionStringArray должно быть в формате PDF.

outputFormat.value = new string[] { "PDF" };

Данные я получить обратно от вызова выглядит следующим образом: «JVBERi0xLjQKJeLjz9MNCjQgMCBvYmoKPDwvTGluZWFyaXplZCAxL0wgICAgIDExOTEyOC9IWyAgICAgICA1ODggICAgICAgIDE2MV0vTyA2L0UgICAgIDExODAzMi9OIDEvVCAgICAgMTE5MDAyPj4KZW5kb2JqCnhyZWYNCjQgMTUNCjAwMDAwMDAwMTYgMDAwMDAgbg0KMDAwMDAwMDc0OSAwMDAwMCBuDQowM»

Я пробовал это, но он все равно не отображается как pdf.

asynchReply res = cBIRS.run( reportPath, parameters, runOptions );
// The report is finished, let's fetch the results and save them to a file.
string data = null;
if( res.status == asynchReplyStatusEnum.complete )
{
    for (int i = 0; i < res.details.Length; i++)
    {
        if (res.details[i] is asynchDetailReportOutput)
        {
            data = ( (asynchDetailReportOutput)res.details[i]).outputPages[0];
        }
    }
    FileStream fs = new FileStream(outputPath, FileMode.Create);
    byte[] hunk_data = UTF8Encoding.UTF8.GetBytes(data);
    fs.Write(hunk_data, 0, hunk_data.Length);
    fs.Close();
}

В конце концов, PDF-файл содержит данные, но он не может быть открыт Adobe.

PS. Я также попытался записать файл, не используя UTF8Encoding.UTF8.GetBytes и просто используя System.IO.File.WriteAllText (outputPath, data); Это тоже не работает.

1 Ответ

0 голосов
/ 17 сентября 2018

Заменить

 byte[] hunk_data = UTF8Encoding.UTF8.GetBytes(data);

На

 byte[] hunk_data = Convert.FromBase64String(data);
...