protected void Page_Load(object sender, EventArgs e) { DocsPAWA.DocsPaWR.FileDocumento result = null; Response.Expires = -1; FirmaDigitale.FirmaDigitaleMng firmaDigitaleMng = new FirmaDigitale.FirmaDigitaleMng(); DocsPAWA.DocsPaWR.FileDocumento fileFirmato = firmaDigitaleMng.GetSignedDocument(this); firmaDigitaleMng = null; // Se ho un file fisico da poter convertire if (fileFirmato != null) { // procedo con la conversione sincrona result = new DocsPAWA.DocsPaWR.DocsPaWebService().GeneratePDFInSyncMod(fileFirmato); } if (result != null) { this.Response.ContentType = "application/pdf"; this.Response.AddHeader("content-length", result.content.Length.ToString()); this.Response.BinaryWrite(result.content); } else { this.Response.StatusCode = 500; this.Response.StatusDescription = "Non è stato possibile convertire il documento in PDF lato server"; } }
private void Page_Load(object sender, System.EventArgs e) { Response.Expires = -1; bool getHash = false; string signType = this.Request.QueryString["signType"]; if (!String.IsNullOrEmpty(signType)) { if (signType == "P" || signType == "C") { getHash = true; } } bool cosign = false; string cosignStr = this.Request.QueryString["tipoFirma"]; if (!String.IsNullOrEmpty(cosignStr)) { if (cosignStr.ToLower().Equals("cosign")) { cosign = true; } } FirmaDigitale.FirmaDigitaleMng firmaDigitaleMng = new FirmaDigitale.FirmaDigitaleMng(); if (!getHash) { DocsPAWA.DocsPaWR.FileDocumento fileFirmato = firmaDigitaleMng.GetSignedDocument(this); firmaDigitaleMng = null; if (fileFirmato != null) { Response.BinaryWrite(fileFirmato.content); } } else { if (!cosign) { bool pades = (signType == "P"); Response.BinaryWrite(System.Text.ASCIIEncoding.ASCII.GetBytes(firmaDigitaleMng.GetSignedDocumentHash(this, pades))); } else { Response.BinaryWrite(System.Text.ASCIIEncoding.ASCII.GetBytes(firmaDigitaleMng.GetCoSignDocumentHash(this))); } } }
/// <summary> /// Funzione per la conversione dei documenti in PDF /// </summary> /// <param name="documentsInfo">La lista con le informazioni sui documenti da convertire</param> /// <returns>Il report dell'elaborazione</returns> public MassiveOperationReport ConvertInPdf(List <BaseInfoDoc> documentsInfo) { DocsPaWebService ws = new DocsPaWebService(); ws.Timeout = System.Threading.Timeout.Infinite; // Il report da restituire MassiveOperationReport report; // Il risultato della messa in conversione di un documento MassiveOperationReport.MassiveOperationResultEnum tempResult; // Il messaggio da inserire nel report string message; // Informazioni sull'utente che ha lanciato la procedura InfoUtente userInfo; // Il file associato al documento byte[] content = null; // Inizializzazione del report report = new MassiveOperationReport(); // Recupero delle informazioni sull'utente userInfo = UserManager.getInfoUtente(this); foreach (BaseInfoDoc doc in documentsInfo) { // Inizializzazione del messaggio string codice = MassiveOperationUtils.getItem(doc.IdProfile).Codice; message = "Documento inserito correttamente nella coda di conversione PDF."; //Recupero i diritti sul documento string ar = ws.getAccessRightDocBySystemID(doc.IdProfile, UserManager.getInfoUtente(this)); // Verifica delle informazioni sul documento tempResult = this.ValidateDocumentInformation(doc, out message); if (ar.Equals("20")) { message = "Il documento è in attesa di accettazione, quindi non può essere convertito"; tempResult = MassiveOperationReport.MassiveOperationResultEnum.KO; } //Verifico che il documento non sia consolidato FirmaDigitale.FirmaDigitaleMng mng = new FirmaDigitale.FirmaDigitaleMng(); DocsPaWR.SchedaDocumento schedaDocumento = mng.GetSchedaDocumento(doc.DocNumber); if (schedaDocumento != null) { if (schedaDocumento.ConsolidationState != null && schedaDocumento.ConsolidationState.State > DocsPaWR.DocumentConsolidationStateEnum.None) { // Il documento risulta consolidato, non può essere firmato digitalmente message = "Il documento risulta consolidato"; tempResult = MassiveOperationReport.MassiveOperationResultEnum.KO; } } // Se il risultato di validazione delle informazioni è OK, si pruò procedere if (tempResult == MassiveOperationReport.MassiveOperationResultEnum.OK) { try { // Recupero delle informazioni sul file da convertire content = FileManager.getInstance(Session.SessionID).GetFile( this, doc.VersionId, doc.VersionNumber.ToString(), doc.DocNumber, doc.Path, doc.FileName, false).content; } catch (Exception e) { message = "Errore durante il reperimento del file associato al documento."; tempResult = MassiveOperationReport.MassiveOperationResultEnum.KO; } } // Se si può procedere si mette in coda il file da convertire if (tempResult == MassiveOperationReport.MassiveOperationResultEnum.OK) { try { // Avvio della conversione FileManager.EnqueueServerPdfConversionAM( this, userInfo, content, doc.FileName, new SchedaDocumento() { systemId = doc.IdProfile, docNumber = doc.DocNumber }); } catch (Exception e) { tempResult = MassiveOperationReport.MassiveOperationResultEnum.KO; message = "Errore durante l'inserimento del documento nella coda di conversione."; } } // Inserimento di una nuova riga nel report report.AddReportRow( codice, tempResult, message); } // Restituzione del report return(report); }