使用PDFSharp将多个.rdlc报表呈现为单个PDF

4
我正在运行多个报告并将它们合并到一个PDF文件中。对于每个报告,我将数据源、参数和报告路径传递给以下函数。结果是一个拥有正确页数的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);
    }
}
2个回答

3

1
不确定在哪里放置 "<DeviceInfo><HumanReadablePDF>True</HumanReadablePDF></DeviceInfo>"(如链接中所述)这段代码,有人可以分享一下更改发生的代码吗?谢谢。 - Рахул Маквана

-1

你需要将你的字符串变量deviceInfo=null;修改为deviceInfo="<DeviceInfo><HumanReadablePDF>True</HumanReadablePDF></DeviceInfo>";


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接