static void Main(string[] args) { if (args == null || args.Length == 0) { System.Console.Write("cannot find args"); return; } string atgements = args[0]; // string atgements = "Ref,1,Crystal_OSC_GetTab1.rpt|OSC_Proto Summary.rdlx|OSC_First_Offline_Report.rdlx,21836,,PLMDatabase"; //HybridReportEngine "Ref# 21836 PDP Test 1,1,Crystal_OSC_GetTab1.rpt^21836,,PLMDatabase" string[] inPutPara = atgements.Split(','); if (inPutPara.Length != 5) { return; } Application_Start(); ReportJobDesc aReportJobDesc = new ReportJobDesc(); aReportJobDesc.ReportJobName = inPutPara[0]; aReportJobDesc.UId = ControlTypeValueConverter.ConvertValueToInt(inPutPara[1]); aReportJobDesc.AllReportFileNmae = inPutPara[2]; aReportJobDesc.PdmRequestRegisterID = inPutPara[3]; aReportJobDesc.DataSourceType = inPutPara[4]; aReportJobDesc.MainReferenceID = inPutPara[5]; aReportJobDesc.MasterReferenceID = inPutPara[6]; ReportJobManagement.PrintUserReportJob(aReportJobDesc); // File.WriteAllLines("c:\\Test.txt", new string[] { atgements }); }
// Teckpack Print //http://localhost/ReportPublishCrystal/ReportPdfPrint.aspx?ReportName=2^4489&uid=66e7fed1-1dfc-4003-89ad-f0831a0b4138&MainReferenceID=4489&ReportDataSourceType=PLMDatabase private void PrintUserReaTimeReport(int?aUId, string mutipleReportFiles, string PdmRequestRegisterID, string dataSourceType, string mainreferenceID, string masterReferenceId, string reportBatchNumber) { //allReportFileNmae=ReportName=Crystal_OSC_GetTab1.rpt^21836|OSC_Proto Summary.rdlx^21863 if (mutipleReportFiles != string.Empty) { // only create once !! List <Stream> pdfFileStream = new List <Stream>(); // it is batch print if (!string.IsNullOrWhiteSpace(reportBatchNumber)) { List <string> requestRegistIds = DDSetup.GetPdmRequestRegisterIdsByBatchNimber(reportBatchNumber); foreach (string requestRegisterID in requestRegistIds) { // only for single report !! string singleReportId = mutipleReportFiles; List <Stream> pdfFileStreamFromSearchView = PrintSearchViewPdf(aUId, singleReportId, requestRegisterID, dataSourceType, mainreferenceID, masterReferenceId); pdfFileStream.AddRange(pdfFileStreamFromSearchView); } } else // it is NOT BATCH print, need to process singe request { if (string.IsNullOrWhiteSpace(PdmRequestRegisterID)) { List <Stream> pdfFileStreamTeckpacks = PrintTechPackPdf(aUId, mutipleReportFiles, string.Empty, dataSourceType, mainreferenceID, masterReferenceId); pdfFileStream.AddRange(pdfFileStreamTeckpacks); } else // it is searchView print Calls for each single request PdmRequestRegisterID { string singleReportId = mutipleReportFiles; List <Stream> pdfFileStreamFromSearchView = PrintSearchViewPdf(aUId, singleReportId, PdmRequestRegisterID, dataSourceType, mainreferenceID, masterReferenceId); pdfFileStream.AddRange(pdfFileStreamFromSearchView); } } using (PdfDocument outputPdfDocument = new PdfDocument()) { try { foreach (Stream stream in pdfFileStream) { // Open the document to import pages from it. if (stream.Length > 0) { using (PdfDocument inputDocument = PdfReader.Open(stream, PdfDocumentOpenMode.Import)) { // Iterate pages int count = inputDocument.PageCount; for (int idx = 0; idx < count; idx++) { // Get the page from the external document... PdfPage page = inputDocument.Pages[idx]; // ...and add it to the output document. outputPdfDocument.AddPage(page); } stream.Close(); stream.Dispose(); } } } ApplicationLog.WriteError("IsReportCompressionActivate:" + DDSetup.ReorptSetup.IsReportCompressionActivate); if (DDSetup.ReorptSetup.IsReportCompressionActivate) { string fileID = Guid.NewGuid().ToString(); string FileNameOrigin = DDSetup.ReorptSetup.ReportPdfCompressPath + "Origin_" + fileID + ".pdf"; outputPdfDocument.Save(FileNameOrigin); string FileNameDestination = DDSetup.ReorptSetup.ReportPdfCompressPath + "Dest_" + fileID + ".pdf"; ReportJobManagement.PdfCompression(FileNameOrigin, FileNameDestination); File.Delete(FileNameOrigin); OutputPdfFile(FileNameDestination); } else // need to compress PDF { MemoryStream memoStream = new MemoryStream(); outputPdfDocument.Save(memoStream, false); OutPutResponse(memoStream); } } catch (Exception ex) { Response.Write("Print pdf Failed" + ex.ToString()); } } // need to dispsoe output to release memeory // outputPdfDocument.Dispose(); // need to dispost } }
private void PrintUserReaTimeReport(string aUId, string allReportFileNmae, string PdmRequestRegisterID, string dataSourceType, string mainreferenceID, string masterReferenceId) { //allReportFileNmae=ReportName=Crystal_OSC_GetTab1.rpt^21836|OSC_Proto Summary.rdlx^21863 if (allReportFileNmae != string.Empty) { // only create once !! string[] reportnames = allReportFileNmae.Split('|'); List <KeyValuePair <string, string> > mutipleReportAndReference = new List <KeyValuePair <string, string> >(); List <Stream> pdfFileStream = new List <Stream>(); foreach (String reportFileNameWithRef in reportnames) { string [] reportNameAndRef = reportFileNameWithRef.Split('^'); if (reportNameAndRef.Length != 2) { continue; } string reportFileName = reportNameAndRef[0]; string reportRefId = reportNameAndRef[1]; // Cyrstal report if (reportFileName.EndsWith(".rpt") || reportFileName.EndsWith(".RPT")) { Stream result = CystalReportExport.GetCrystalPdfStream(reportFileName, aUId, reportRefId, PdmRequestRegisterID, dataSourceType, mainreferenceID, masterReferenceId); if (result != null) { pdfFileStream.Add(result); } } // Data Dynamics else if (reportFileName.EndsWith(".rdlx") || reportFileName.EndsWith(".RDLX")) { Stream result = DataDynamicsExport.GetDataDynamicPdfStream(reportFileName, aUId, reportRefId, PdmRequestRegisterID, dataSourceType, mainreferenceID, masterReferenceId); if (result != null) { pdfFileStream.Add(result); } } } using (PdfDocument outputPdfDocument = new PdfDocument()) { foreach (Stream stream in pdfFileStream) { // Open the document to import pages from it. if (stream.Length > 0) { using (PdfDocument inputDocument = PdfReader.Open(stream, PdfDocumentOpenMode.Import)) { // Iterate pages int count = inputDocument.PageCount; for (int idx = 0; idx < count; idx++) { // Get the page from the external document... PdfPage page = inputDocument.Pages[idx]; // ...and add it to the output document. outputPdfDocument.AddPage(page); } stream.Close(); stream.Dispose(); } } } if (DDSetup.ReorptSetup.IsReportCompressionActivate) { string fileID = Guid.NewGuid().ToString(); string FileNameOrigin = DDSetup.ReorptSetup.ReportPdfCompressPath + "Origin_" + fileID + ".pdf"; outputPdfDocument.Save(FileNameOrigin); string FileNameDestination = DDSetup.ReorptSetup.ReportPdfCompressPath + "Dest_" + fileID + ".pdf"; ReportJobManagement.PdfCompression(FileNameOrigin, FileNameDestination); File.Delete(FileNameOrigin); OutputPdfFile(FileNameDestination); } else // need to compress PDF { MemoryStream memoStream = new MemoryStream(); outputPdfDocument.Save(memoStream, false); OutPutResponse(memoStream); } } // need to dispsoe output to release memeory // outputPdfDocument.Dispose(); // need to dispost } }