C# 使用PDFSharp将多个.rdlc报告呈现为单个PDF

C# 使用PDFSharp将多个.rdlc报告呈现为单个PDF,c#,pdf,rendering,rdlc,pdfsharp,C#,Pdf,Rendering,Rdlc,Pdfsharp,我正在运行多个报告,并将它们合并到一个PDF文件中。对于每个报表,我将数据源、参数和报表路径传递给以下人员。结果是一个具有正确页数的PDF文件,但所有页面均为空白。我错过了什么 LocalReport report = null; PdfDocument pdfDoc = new PdfDocument(); private void ProcessReport( ReportDataSource reportDS, ReportParameter[] reportParms

我正在运行多个报告,并将它们合并到一个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);
    }
}
LocalReport=null;
PdfDocument pdfDoc=新的PdfDocument();
私人作废处理报告(
ReportDataSource reportDS,
ReportParameter[]reportParms,
字符串报告路径)
{
string format=“PDF”;
字符串deviceInfo=null;
字符串编码=string.Empty;
string mimeType=string.Empty;
字符串扩展名=string.Empty;
警告[]警告=null;
字符串[]streamIDs=null;
report=newlocalreport();
report.EnableExternalImages=true;
report.ReportPath=ReportPath;
if(reportParms!=null)
report.SetParameters(reportParms);
if(reportDS!=null)
report.DataSources.Add(reportDS);
字节[]pdfArray=report.Render(
格式,
deviceInfo,
输出mimeType,
输出编码,
外接分机,
在流线外,
发出警告);
//流s=新内存流(pdfArray);
MemoryStream ms=新的MemoryStream(pdfArray);
PdfDocument tempdfdoc=PdfReader.Open(ms,PdfDocumentOpenMode.Import);
对于(int i=0;i
请尝试使用此线程中所述的不同设置生成报告:


如果您向我们提供了一些不起作用的文件,我们可以尝试在PDFsharp中修复此问题。

您需要更改字符串deviceInfo=null; 至
deviceInfo=“True”

不确定将
“True”
(如所给链接中所述)放置在何处此代码,任何人都可以共享发生这些更改的代码吗?谢谢