public FileItemDTO CompressFile(FileItemEntity fileItem) { fileItem.FileFullPath = FileUtils.GetDefaultInputPath() + fileItem.FileName; File.WriteAllBytes(fileItem.FileFullPath, fileItem.Bytes); var fileItemDTO = new FileItemDTO() { Id = fileItem.Id, FileFullPath = FileUtils.GetNewFileName(fileItem.FileName, FileNameOptionEnum.Compress) }; fileItemDTO.FileName = FileUtils.GetSafeFileName(fileItemDTO.FileFullPath); using (PDFDoc in_doc = new PDFDoc(fileItem.FileFullPath)) { Optimizer.Optimize(in_doc); using (PDFDoc doc = new PDFDoc()) { doc.InsertPages(doc.GetPageCount() + 1, in_doc, 1, in_doc.GetPageCount(), PDFDoc.InsertFlag.e_none); in_doc.Save(fileItemDTO.FileFullPath, SDFDoc.SaveOptions.e_linearized); } } return(fileItemDTO); }
public FileItemDTO ProtectFile(FileItemEntity fileItem) { fileItem.FileFullPath = FileUtils.GetDefaultInputPath() + fileItem.FileName; File.WriteAllBytes(fileItem.FileFullPath, fileItem.Bytes); var fileItemDTO = new FileItemDTO() { Id = fileItem.Id, FileFullPath = FileUtils.GetNewFileName(fileItem.FileName, FileNameOptionEnum.Protect) }; fileItemDTO.FileName = FileUtils.GetSafeFileName(fileItemDTO.FileFullPath); using (PDFDoc doc = new PDFDoc(fileItem.FileFullPath)) { SecurityHandler new_handler = new SecurityHandler(SecurityHandler.AlgorithmType.e_AES_256); string my_password = "******"; new_handler.ChangeUserPassword(my_password); new_handler.SetPermission(SecurityHandler.Permission.e_print, true); new_handler.SetPermission(SecurityHandler.Permission.e_extract_content, false); doc.SetSecurityHandler(new_handler); doc.Save(fileItemDTO.FileFullPath, SDFDoc.SaveOptions.e_linearized); } return(fileItemDTO); }
public FileItemDTO ConvertFileToPDF(FileItemEntity fileItem) { fileItem.FileFullPath = FileUtils.GetDefaultInputPath() + fileItem.FileName; File.WriteAllBytes(fileItem.FileFullPath, fileItem.Bytes); var fileItemDTO = new FileItemDTO() { Id = fileItem.Id, FileFullPath = FileUtils.GetNewFileName(fileItem.FileName, FileNameOptionEnum.Convert) }; fileItemDTO.FileName = FileUtils.GetSafeFileName(fileItemDTO.FileFullPath); using (PDFDoc doc = new PDFDoc()) { try { switch (FileUtils.GetFileType(fileItem.FileFullPath)) { case FileType.MSOffice: pdftron.PDF.Convert.OfficeToPDF(doc, fileItem.FileFullPath, null); break; case FileType.HTML: HTML2PDF converter = new HTML2PDF(); var htmlString = File.ReadAllText(fileItem.FileFullPath); converter.InsertFromHtmlString(htmlString); converter.Convert(doc); break; case FileType.Other: pdftron.PDF.Convert.ToPdf(doc, fileItem.FileFullPath); break; case FileType.NotMapped: throw new ArgumentException($"Extensão {FileUtils.GetFileExtension(fileItem.FileFullPath)} não mapeada"); default: break; } doc.Save(fileItemDTO.FileFullPath, SDFDoc.SaveOptions.e_linearized); return(fileItemDTO); } catch (PDFNetException ex) { throw; } catch (Exception ex) { throw; } } }
public FileItemDTO CombineFiles(List <FileItemEntity> fileItems) { try { using (PDFDoc doc = new PDFDoc()) { doc.InitSecurityHandler(); var fileNewName = new StringBuilder(); foreach (var fileItem in fileItems) { if (fileNewName.Length > 0) { fileNewName.Append("_"); } fileNewName.Append(fileItem.FileName.TrimEnd(".pdf".ToCharArray())); fileItem.FileFullPath = FileUtils.GetDefaultInputPath() + fileItem.FileName; File.WriteAllBytes(fileItem.FileFullPath, fileItem.Bytes); using (PDFDoc in_doc = new PDFDoc(fileItem.FileFullPath)) { in_doc.InitSecurityHandler(); doc.InsertPages(doc.GetPageCount() + 1, in_doc, 1, in_doc.GetPageCount(), PDFDoc.InsertFlag.e_none); } } #region Teste //Era pra funcionar, mas lança uma exceção no método "new_doc.ImportPages" //ArrayList copy_pages = new ArrayList(); //for (PageIterator itr = in_doc.GetPageIterator(); itr.HasNext(); itr.Next()) //{ // copy_pages.Add(itr.Current()); //} //var imported_pages = new_doc.ImportPages(copy_pages, false); //for (int i = 0; i != imported_pages.Count; ++i) //{ // new_doc.PagePushBack((Page)imported_pages[i]); //} #endregion var fileItemDTO = new FileItemDTO() { Id = new Random().Next(1, 100), FileFullPath = FileUtils.GetNewFileName(fileNewName.ToString(), FileNameOptionEnum.Combine) }; fileItemDTO.FileName = FileUtils.GetSafeFileName(fileItemDTO.FileFullPath); doc.Save(fileItemDTO.FileFullPath, SDFDoc.SaveOptions.e_linearized); return(fileItemDTO); } } catch (PDFNetException ex) { throw; } catch (Exception ex) { throw; } }