public Boolean AddCertificates(Certificate certificate,ref PdfDocument pdfDocument) { try { //Add certificate pages from separate pdf files on other pages foreach (Certificate.CertificatePage cert in certificate.CertificatePages) { PdfDocument origDocument = PdfReader.Open(cert.TempFilePath, PdfDocumentOpenMode.Import); //Add certificate pages from current pdf foreach (PdfPage page in origDocument.Pages) { pdfDocument.AddPage(page); } } return true; } catch (Exception ex) { String errorMessage = "Error while adding certificates to new document."; return false; } }
public Boolean GetCertificatesInfo(List<String> certificateDocIds) { foreach (var docId in certificateDocIds) { Certificate certificate = new Certificate(); certificate.CertificatePages = new List<Certificate.CertificatePage>(); certificate.DocId = docId; Stream myStream; String uriString = String.Empty; try { // Get certificate info file WebClient myWebClient = new WebClient(); uriString = String.Format("{0}/archive?info&pVersion={1}&contRep={2}&docId={3}", this.IXOSurl, this.IXOSVersion, this.ArchiveID, docId); Trace.WriteLine(uriString, "GetCertificatesInfo"); myStream = myWebClient.OpenRead(uriString); } catch (Exception ex) { String message = String.Format("Error while retrieving documentinfo from IXOS Server. DocID: {0}", docId); Trace.WriteLine(message, "GetCertificatesInfo"); Trace.WriteLine(ex.Message, "GetCertificatesInfo"); continue; } Certificate.CertificatePage page = new Certificate.CertificatePage(); try { // Open a stream to point to the data stream coming from the Web resource. using (StreamReader sr = new StreamReader(myStream)) { string line; while ((line = sr.ReadLine()) != null) { if (line.StartsWith("--")) { if (!String.IsNullOrEmpty(page.CompId)) if (page.CompId.StartsWith("data")) certificate.CertificatePages.Add(page); page = new Certificate.CertificatePage(); } String key = line.Split(':')[0]; String value = (line.Split(':').Count() > 1) ? line.Split(':')[1].Trim() : String.Empty; switch (key) { case "Content-Type": page.ContentType = value; break; case "X-compId": page.CompId = value; break; } } } this.Certificates.Add(certificate); } catch (Exception ex) { String message = String.Format("Error while reading documentinfo from IXOS Server. DocID: {0}", docId); Trace.WriteLine(message, "GetCertificatesInfo"); Trace.WriteLine(ex.Message, "GetCertificatesInfo"); continue; } // Close the stream. myStream.Close(); } return true; }