У кого-нибудь есть пример, который будет генерировать отчет в формате 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); Это тоже не работает.