2017-02-06 11 views
0

Я пытаюсь распечатать отчет RDL с условиями и условиями PDF. Проблема заключается в том, что сам отчет представляет собой очередь изображений, а T & C - в формате PDF. Поэтому всякий раз, когда я делаю «Enqueue», добавляя к потокам, он рассматривает этот PDF как одно большое изображение, а не две страницы. Это приводит к ошибке GDI + generics. Есть ли в любом случае для меня преобразование PDF в соответствующий формат изображения, чтобы я мог объединить эти документы? Вот код, который я до сих пор:Добавить PDF в Image ReportViewer

internal static void DoPrintInvoice(int orderID, SalesOrderBLL.DocumentType doctype, string printer, int copies, List<string> lines) 
    { 
     using (var context = rempscoDataContext.CreateReadOnlyContext()) 
     using (MiniProfiler.Current.Step("DoPrintInvoice()")) 
     { 
      //Customer Opt-Out 

      // Generate Report 
      using (var report = GetSalesOrderReport(orderID, _DocumentTypeDescriptions[doctype], doctype != DocumentType.InvoiceLetterhead, lines)) 
      { 

       // returns queue of streams. 
       var streams = PrintingBLL.RenderStreams(report, landscape: false); 
       // returns byte array 
       var TermsAndConditions = GetTermsAndConditions(); 

       //convert byte array to memory stream. 
       var TCStream = new MemoryStream(TermsAndConditions); 

       //conditional to add T&C's to stream. 
       if (doctype == DocumentType.OrderAcknowledgement) 
       { 
        streams.Enqueue(TCStream); 
       } 

       ParallelInvoke(
         () => SaveSalesOrderPDF(orderID, doctype, report), 
         () => PrintingBLL.PrintStreams(streams, string.Format("Sales Order ({0})", report.DisplayName), printer, copies, false) 
         ); 
      } 
     } 
    } 

Я попытался преобразовать условия в образ, и обратно в массив байтов, но это дает мне тот же GDI общий вопрос. Любая помощь будет принята с благодарностью!

ответ

0

Вы просматривали PDFSharp? Мне удалась работать с ним в прошлом для рендеринга PDF-файлов.

www.pdfsharp.com