2012-03-20 2 views
4

여러 보고서를 실행하고 단일 PDF 파일로 결합했습니다. 각 보고서에 대해 데이터 소스, 매개 변수 및 보고서 경로를 다음에 전달합니다. 결과는 올바른 페이지 수를 가진 PDF 파일이지만 모든 페이지는 비어 있습니다. 내가 뭘 놓치고 있니?PDFSharp를 사용하여 여러 .rdlc 보고서를 단일 PDF로 렌더링

LocalReport report = null; 
PdfDocument pdfDoc = new PdfDocument(); 

private void ProcessReport(
    ReportDataSource reportDS, 
    ReportParameter[] reportParms, 
    string reportPath) 
{ 
    string format = "PDF"; 
    string deviceInfo = null; 
    string encoding = String.Empty; 
    string mimeType = String.Empty; 
    string extension = String.Empty; 
    Warning[] warnings = null; 
    string[] streamIDs = null; 

    report = new LocalReport(); 
    report.EnableExternalImages = true; 
    report.ReportPath = reportPath; 

    if (reportParms != null) 
     report.SetParameters(reportParms); 

    if (reportDS != null) 
     report.DataSources.Add(reportDS); 

    Byte[] pdfArray = report.Render(
     format, 
     deviceInfo, 
     out mimeType, 
     out encoding, 
     out extension, 
     out streamIDs, 
     out warnings); 

    //Stream s = new MemoryStream(pdfArray); 
    MemoryStream ms = new MemoryStream(pdfArray); 

    PdfDocument tempPDFDoc = PdfReader.Open(ms, PdfDocumentOpenMode.Import); 

    for (int i = 0; i < tempPDFDoc.PageCount; i++) 
    { 
     PdfPage page = tempPDFDoc.Pages[i]; 
     pdfDoc.AddPage(page); 
    } 
} 

답변

3

이 스레드에 설명 된대로 다른 설정을 가진 보고서를 생성 시도하십시오 : 당신이 작동하지 않는 일부 파일을 우리에게 제공하는 경우 http://forum.pdfsharp.net/viewtopic.php?p=1613#p1613

것은, 우리가 PDFsharp에서이 문제를 해결하기 위해 시도 할 수 있습니다.

+0

확실하지 어디'넣어 " 진정한"'사람이 이러한 변화가 일어나는 코드를 공유 할 수 있습니다,이 코드 (링크에서 언급 한 바와 같이 주어진)? 감사 –

-1

문자열을 변경해야합니다. deviceInfo = null; deviceInfo="<DeviceInfo><HumanReadablePDF>True</HumanReadablePDF></DeviceInfo>";