2011-07-14 12 views
3

現在、いくつかのレポートを作成しており、複数のレポートを1つのPDFに追加する必要があります。これを行うために、ReportViewerを使用して別のバイト[]でレポートを取得しています。私は、リスト内のすべてのレポートを持っていたら、私は今、次のような方法C#MemoryStreamからPdfページを追加する

byte[] appendBuffers(List<byte[]> arrays) 
     { 
      List<byte> byteList = new List<byte>(); 

      for (int i = 0; i < arrays.Count; i++) 
      { 
       for (int j = 0; j < arrays[i].Length; j++) 
       { 
       byteList.Add(arrays[i][j]); 
       } 
      } 

     return byteList.ToArray(); 
     } 

を使用して...私は結果のバイトをやっていたら、それらを結合するために進んで[]持っているが、すべてのデータを、私は上のレポートを表示私のウェブサイト私は最後のレポートを画面に表示するだけです。何か案は?

答えて

3

ファイルバイトをマージするだけでは、PDFをマージすることはできません。 PDFには内部形式があります。 PDFページを1つのファイルにマージするには、FoxitやPDFSAMなどのPDFライブラリを使用します。

0

@AresAvatarは言ったように、あなたの仕事のためにPDFライブラリを使用する必要があります。

ここでは、Docotic.Pdf libraryを使用してこれを行う方法のサンプルを示します。

byte[] appendBuffers(List<byte[]> arrays) 
{ 
    using (PdfDocument document = new PdfDocument()) 
    { 
     for (int i = 0; i < arrays.Count; i++) 
      document.Append(arrays[i]); 

     using (MemoryStream ms = new MemoryStream()) 
     { 
      document.Save(ms); 
      return ms.ToArray(); 
     } 
    } 
} 

免責事項:私はBit Miracle(ライブラリのベンダー)の仕事をしています。

関連する問題