Tae*_*aeV 6 c# pdf rdlc pdfsharp
我尝试连接rdlc报告中的2个PDF数据.
问题是结果是空白页面.
我不知道为什么,请有人帮助我.
这是我的代码:
private ActionResult ConcatPdf(byte[] pdfData1, byte[] pdfData2)
{
MemoryStream ms1 = new MemoryStream(pdfData1);
MemoryStream ms2 = new MemoryStream(pdfData2);
PdfDocument inputDoc1 = PdfReader.Open(ms1, PdfDocumentOpenMode.Import);
PdfDocument inputDoc2 = PdfReader.Open(ms2, PdfDocumentOpenMode.Import);
PdfDocument outputDoc = new PdfDocument();
foreach (PdfPage page in inputDoc1.Pages)
{
outputDoc.AddPage(page);
}
foreach (PdfPage page in inputDoc2.Pages)
{
outputDoc.AddPage(page);
}
MemoryStream outputMs = new MemoryStream();
outputDoc.Save(outputMs);
return File(outputMs.ToArray(), "application/pdf");
}
Run Code Online (Sandbox Code Playgroud)
在生成报告功能时看起来像这样:
public ActionResult TestPDF(int id)
{
// Set report path.
LocalReport rep = viewer.LocalReport;
rep.ReportPath = Server.MapPath("~/Reports/rptExternalTransferIndividual.rdlc");
rep.DataSources.Clear();
//
// Set data and parameter to report.
//
...
...
return ConcatPdf(viewer.LocalReport.Render("PDF"), viewer.LocalReport.Render("PDF"));
}
Run Code Online (Sandbox Code Playgroud)
我知道这是旧的,但添加HumanReadablePDF:
string deviceInfo = "<DeviceInfo>" +
" <OutputFormat>PDF</OutputFormat>" +
" <PageWidth>29.7cm</PageWidth>" +
" <PageHeight>21cm</PageHeight>" +
" <MarginTop>0cm</MarginTop>" +
" <MarginLeft>0cm</MarginLeft>" +
" <MarginRight>0cm</MarginRight>" +
" <MarginBottom>0cm</MarginBottom>" +
" <HumanReadablePDF>True</HumanReadablePDF>" +
"</DeviceInfo>";
byte[] reportBytes = LocalReport.Render(
"PDF", deviceInfo, out mimeType, out encoding,
out extension,
out streamids, out warnings);
Run Code Online (Sandbox Code Playgroud)
然后将字节数组返回到PdfSharp.
也许从报表查看器生成的 PDF 文件有一些不寻常的地方。我们需要样本文件来检查它。
也可以看看:
http://forum.pdfsharp.net/viewtopic.php?f=3&t=1818&p=5174
http://forum.pdfsharp.net/viewtopic.php?f=3&t=1730