public void gestiscoPDF() { //var text = new TikaOnDotNet.TextExtraction.TextExtractor().Extract(path).Text.Trim(); PdfReader reader = new PdfReader(mainI.pdfPath); for (int page = 1; page <= reader.NumberOfPages; page++) { ITextExtractionStrategy its = new iTextSharp.text.pdf.parser.LocationTextExtractionStrategy(); PdfTextExtractor.GetTextFromPage(reader, page, its); string strPage = its.GetResultantText(); IDictionary <string, string> res = this.findDataPdf(strPage); if (!string.IsNullOrEmpty((string)res["nameCognome"]) && !string.IsNullOrEmpty((string)res["data"])) { //Salvo nome e cognome + pdf string nameCognome = ((string)res["nameCognome"].ToLower()).Trim(); string data = ((string)res["data"]).Trim(); if (!mainI.result.ContainsKey(nameCognome)) { mainI.result[nameCognome] = importPage(reader, page, nameCognome); ListViewItem item1 = new ListViewItem("2", 0); item1.SubItems.Add(nameCognome); item1.SubItems.Add("1"); lv1.Items.AddRange(new ListViewItem[] { item1 }); lv1.EnsureVisible(lv1.Items.Count - 1); } else { // PDF DUPLICATO ListViewItem item1 = new ListViewItem("2", 0); item1.SubItems.Add(nameCognome); item1.SubItems.Add("0"); lv1.Items.AddRange(new ListViewItem[] { item1 }); lv1.EnsureVisible(lv1.Items.Count - 1); } if (string.IsNullOrEmpty(mainI.data)) { mainI.data = data.Trim(); } if (mainI.data != data) { // DATE DIVERSE NEL PDF } } } reader.Close(); // EVENTUALMENTE DRIVE if (this.cbDrive.Checked) { var a = GoogleDrive.uploadOnDrive(mainI.result, lv1, checkBoxCreateFolder.Checked, pb); } MessageBox.Show("Procedimento terminato", "PdfDrive"); }
public static Google.Apis.Drive.v3.Data.File uploadOnDrive(IDictionary <string, string> listaPdf, ListView lv, bool createFolder, ToolStripProgressBar pb) { IList <Google.Apis.Drive.v3.Data.File> fldrs = GoogleDrive.listFolderDrive(); if (createFolder) { fldrs = creaCartelleInesistenti(fldrs, listaPdf, lv); } List <string> tmpPdfAggiunti = new List <string>(); List <ListViewItem> lwi = new List <ListViewItem>(); pb.Value = 0; pb.Maximum = listaPdf.Count; foreach (var fld in fldrs) { string name = fld.Name.ToLower(); string tag = fld.Id; if (listaPdf.ContainsKey(name.ToLower())) { string path = listaPdf[name]; Google.Apis.Drive.v3.Data.File body = new Google.Apis.Drive.v3.Data.File(); body.Name = mainI.data + "_" + Program.gestiscoNome(System.IO.Path.GetFileName(@path).ToUpper()) + ".pdf"; body.MimeType = GetMimeType(@path); body.Parents = new List <string> { tag }; byte[] byteArray = System.IO.File.ReadAllBytes(@path); System.IO.MemoryStream stream = new System.IO.MemoryStream(byteArray); try { FilesResource.CreateMediaUpload request = GoogleDrive.service.Files.Create(body, stream, body.MimeType); request.SupportsTeamDrives = true; request.Upload(); ListViewItem item1 = new ListViewItem("3", 0); item1.SubItems.Add(name); item1.SubItems.Add("1"); lwi.Add(item1); tmpPdfAggiunti.Add(name); pb.Value = pb.Value + 1; } catch (Exception e) { ListViewItem item1 = new ListViewItem("3"); item1.SubItems.Add(name); item1.SubItems.Add("0"); lv.Items.AddRange(new ListViewItem[] { item1 }); pb.Value = pb.Value + 1; } } } foreach (var namePDF in listaPdf) { if (!tmpPdfAggiunti.Contains(namePDF.Key)) { ListViewItem i = new ListViewItem("3"); i.SubItems.Add(namePDF.Key); i.SubItems.Add("0"); lwi.Add(i); } } foreach (ListViewItem lw in lwi) { lv.Items.Add(lw); lv.EnsureVisible(lv.Items.Count - 1); } return(null); }