예제 #1
0
        private void btnMerge_Click(object sender, EventArgs e)
        {
            DialogResult dr = this.saveFileDialog1.ShowDialog();

            if (dr == System.Windows.Forms.DialogResult.OK)
            {
                if (!isValid())
                {
                    return;
                }

                string   path        = this.saveFileDialog1.InitialDirectory;
                var      newFileName = this.saveFileDialog1.FileName;
                string[] files       = _Files.OrderBy(o => o.Order).ThenBy(f => f.FileName).Select(x => x.Filepath).ToArray();

                PdfDocumentBase doc = PdfDocument.MergeFiles(files);
                if (File.Exists(newFileName))
                {
                    File.Delete(newFileName);
                }
                doc.Save(newFileName, FileFormat.PDF);
                changeStepColor(this.btnStep3, false, Color.DarkSeaGreen, Color.White);
                lblSuccess.Visible = true;
                lblStatus.Text     = "Status : Files merged and saved";
                if (this.chkOpen.Checked)
                {
                    Process.Start(newFileName);
                }
            }
        }
예제 #2
0
파일: Form1.cs 프로젝트: jumpmayday/test2
        private void button1_Click(object sender, EventArgs e)
        {
            String[]        files      = new String[] { @"F:\360Downloads\22.pdf", @"F:\360Downloads\11.pdf" };
            string          outputFile = "result.pdf";
            PdfDocumentBase doc        = PdfDocument.MergeFiles(files);

            doc.Save(outputFile, FileFormat.PDF);


            //save text

            //PdfReader pdfReader = new PdfReader(@"F:\360Downloads\100个最著名的标题 杰亚伯拉罕.pdf");
            //int numberOfPages = pdfReader.NumberOfPages;
            //StringBuilder text = new StringBuilder();
            //for (int i = 1; i <= numberOfPages; ++i)
            //{
            //    text.Append(iTextSharp.text.pdf.parser.PdfTextExtractor.GetTextFromPage(pdfReader, i));
            //}
            //pdfReader.Close();
            //PDFOperation pdf = new PDFOperation();
            //pdf.Open(new FileStream(@"F:\360Downloads\11.pdf", FileMode.Append, FileAccess.Write));
            ////pdf.AddParagraph(text.ToString(), 15);
            //pdf.AddParagraph("测试文档(生成时间:" + DateTime.Now + ")", 15);
            //pdf.AddImage(@"C:\Users\Mayo\Pictures\timg.jpg",1,100,100);
            //pdf.Close();
        }
예제 #3
0
        private void button1_Click(object sender, EventArgs e)
        {
            String[]        files      = new String[] { @"D:\Comparar\1.pdf", @"D:\Comparar\2.pdf", @"D:\Comparar\3.pdf" };
            string          outputFile = @"D:\Comparar\result.pdf";
            PdfDocumentBase doc        = PdfDocument.MergeFiles(files);

            doc.Save(outputFile, FileFormat.PDF);
        }
예제 #4
0
        static void Main(string[] args)
        {
            //Initialize an array,and the elements are the PDF documents that you want to merge
            String[] files = new String[] { "sample1.pdf", "sample2.pdf", "sample3.pdf" };

            //Call MergeFiles() method to merge the files
            PdfDocumentBase doc = PdfDocument.MergeFiles(files);

            //Save the file
            doc.Save("Merged.pdf", FileFormat.PDF);
        }
예제 #5
0
        private void MergePdf(string foldPath, string destPath)
        {
            string name = Path.GetFileName(foldPath);

            string[] files = Directory.GetFiles(foldPath);

            string          mergePath = Path.Combine(destPath, $"{name}.pdf");
            PdfDocumentBase doc       = PdfDocument.MergeFiles(files);

            //保存文档
            doc.Save(mergePath, FileFormat.PDF);
        }
예제 #6
0
        /// <summary>
        /// 合并指定文件夹下所有PDF文件
        /// </summary>
        /// <param name="foldPath">原PDF文件夹</param>
        /// <param name="destPath">合并保存文件夹</param>
        /// <returns>合并后的PDF名称</returns>
        public static string MergePdf(string foldPath, string destPath)
        {
            string name = Path.GetFileName(foldPath);

            string[] files = Directory.GetFiles(foldPath);

            string mergePath = Path.Combine(destPath, $"{name}.pdf");

            using (PdfDocumentBase doc = PdfDocument.MergeFiles(files))
            {
                //保存文档
                doc.Save(mergePath, FileFormat.PDF);
                return(name);
            }
        }
예제 #7
0
 /// <summary>
 /// 合并多个pdf
 /// </summary>
 /// <param name="fileList">要合并的pdf数组</param>
 /// <param name="toFile">目标文件路径</param>
 /// <returns></returns>
 public bool MergeBySpire(object[] fileList, string toFile)
 {
     try
     {
         string[] fList;
         fList = classLims_NPOI.dArray2String1(fileList);
         PdfDocumentBase doc = PdfDocument.MergeFiles(fList);
         doc.Save(toFile, FileFormat.PDF);
         return(true);
     }
     catch (Exception ex)
     {
         classLims_NPOI.WriteLog(ex, "");
         return(false);
     }
 }
        private void button1_Click(object sender, EventArgs e)
        {
            FileStream stream1 = File.OpenRead(@"..\..\..\..\..\..\Data\MergePdfsTemplate_1.pdf");
            FileStream stream2 = File.OpenRead(@"..\..\..\..\..\..\Data\MergePdfsTemplate_2.pdf");
            FileStream stream3 = File.OpenRead(@"..\..\..\..\..\..\Data\MergePdfsTemplate_3.pdf");

            //Pdf document streams
            Stream[] streams = new Stream[] { stream1, stream2, stream3 };

            //Also can merge files by filename
            //Merge files by stream
            PdfDocumentBase doc = PdfDocument.MergeFiles(streams);

            //Save and launch
            doc.Save("MergeFilesByStream_result.pdf", FileFormat.PDF);
            PDFDocumentViewer("MergeFilesByStream_result.pdf");
        }
예제 #9
0
 private void button2_Click(object sender, EventArgs e)
 {
     string ext = string.Empty;
     List<Stream> filesStreams = new List<Stream>();
     MemoryStream ms1 = new MemoryStream();
     MemoryStream ms2 = new MemoryStream();
     MemoryStream ms3 = new MemoryStream();
     foreach (object item in listBox1.Items)
     {
         ext = Path.GetExtension(item.ToString());
         switch (ext)
         {
             case ".docx":
                 Document doc = new Document(item.ToString());
                 doc.SaveToStream(ms1, Spire.Doc.FileFormat.PDF);
                 filesStreams.Add(ms1);
                 break;
             case ".pdf":
                 filesStreams.Add(File.OpenRead(item.ToString()));
                 break;
             case ".pptx":
                 Presentation ppt = new Presentation(item.ToString(), Spire.Presentation.FileFormat.Auto);
                 ppt.SaveToFile(ms2, Spire.Presentation.FileFormat.PDF);
                 filesStreams.Add(ms2);
                 break;
             case ".xlsx":
                 Workbook xls = new Workbook();
                 xls.LoadFromFile(item.ToString());
                 xls.SaveToStream(ms3, Spire.Xls.FileFormat.PDF);
                 filesStreams.Add(ms3);
                 break;
             default:
                 break;
         }
     }
     string outputFile = "result.pdf";
     PdfDocumentBase result = PdfDocument.MergeFiles(filesStreams.ToArray());
     result.Save(outputFile, Spire.Pdf.FileFormat.PDF);
     ms1.Close();
     ms2.Close();
     ms3.Close();            
 }
예제 #10
0
        private void btnApilar_Click(object sender, EventArgs e)
        {
            if (txtRutaDir.Text != "")
            {
                string rutaDir = txtRutaDir.Text;

                if (Directory.Exists(rutaDir))
                {
                    string[] subDir = Directory.GetDirectories(rutaDir);
                    progressBar1.Maximum = subDir.Length;

                    foreach (string dir in subDir)
                    {
                        string[] pdfs     = Directory.GetFiles(dir);
                        string   finalPDF = dir + @"PDFinal.pdf";

                        if (pdfs.Length != 0)
                        {
                            PdfDocumentBase doc = PdfDocument.MergeFiles(pdfs);
                            doc.Save(finalPDF, FileFormat.PDF);
                        }

                        Console.WriteLine("Apilando en el Directorio: " + dir);
                        progressBar1.Value += 1;
                    }

                    MessageBox.Show("Proceso Completado", "", MessageBoxButtons.OK);
                    progressBar1.Value = 0;
                }
                else
                {
                    MessageBox.Show("Esta ruta no existe", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            else
            {
                MessageBox.Show("Seleccione un directorio", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
예제 #11
0
        public static bool PrintForm2()
        {
            try
            {
                projname = _importProjectName;
                String[] files      = new String[2 + _Form2Number + _Form3Number];
                string   _blankPath = System.IO.Directory.GetCurrentDirectory() + "\\blank.pdf";
                string   _filename  = System.IO.Directory.GetCurrentDirectory() + "\\Project\\" + projname + "\\Forms\\";

                if (_Form2Number == 1)
                {
                    files = new String[] { _filename + "Cover.pdf", _filename + "F1.pdf", _blankPath, _filename + "F3-1.pdf" };
                }
                else if (_Form2Number == 2 && _Form3Number == 2)
                {
                    files = new String[] { _filename + "Cover.pdf", _filename + "F1.pdf", _blankPath, _blankPath, _filename + "F3-1.pdf", _filename + "F3-2.pdf" };
                }
                else
                {
                    files = new String[] { _filename + "Cover.pdf", _filename + "F1.pdf", _blankPath, _filename + "F3-1.pdf", _filename + "F3-2.pdf" };
                }

                string          outputFile = _filename + "Print.pdf";
                PdfDocumentBase doc2       = PdfDocument.MergeFiles(files);
                doc2.Save(outputFile, FileFormat.PDF);
                PdfDocument doc = new PdfDocument();
                doc.LoadFromFile(_filename + "Print.pdf");
                doc.PrintDocument.DefaultPageSettings.PrinterSettings.Duplex = System.Drawing.Printing.Duplex.Vertical;
                doc.PrintDocument.Print();
                doc.Close();
                return(true);
            }
            catch (Exception e)
            {
                var s = e.ToString();
                return(false);
            }
        }
예제 #12
0
        public void PrintTT()
        {
            Document      acDoc     = Application.DocumentManager.MdiActiveDocument;
            Database      acCurDb   = acDoc.Database;
            Editor        ed        = Application.DocumentManager.MdiActiveDocument.Editor;
            List <String> imagelist = new List <String>();

            string directory = @"D:\";//磁盘路径
            string MediaName = comboBoxMedia.SelectedItem.ToString().Replace(" ", "_").Replace("毫米", "MM").Replace("英寸", "Inches").Replace("像素", "Pixels");

            try
            {
                if (PlotFactory.ProcessPlotState == ProcessPlotState.NotPlotting)
                {
                    using (Transaction acTrans = acCurDb.TransactionManager.StartTransaction())
                    {
                        int flag = 0;
                        //获取当前布局管理器变量
                        LayoutManager acLayoutMgr = LayoutManager.Current;
                        //获取当前布局变量
                        Layout acLayout = (Layout)acTrans.GetObject(acLayoutMgr.GetLayoutId(acLayoutMgr.CurrentLayout), OpenMode.ForRead);
                        //Layout acLayout = (Layout)acTrans.GetObject(acLayoutMgr.GetLayoutId(acLayoutMgr.CurrentLayout), OpenMode.ForWrite);
                        //获取当前布局的打印信息
                        PlotInfo acPlInfo = new PlotInfo()
                        {
                            Layout = acLayout.ObjectId
                        };



                        //提示用户输入打印窗口的两个角点
                        PromptPointResult resultp = ed.GetPoint("\n指定第一个角点");
                        if (resultp.Status != PromptStatus.OK)
                        {
                            return;
                        }
                        Point3d basePt = resultp.Value;
                        resultp = ed.GetCorner("指定对角点", basePt);
                        if (resultp.Status != PromptStatus.OK)
                        {
                            return;
                        }
                        Point3d cornerPt = resultp.Value;

                        //选择实体对象
                        // PromptSelectionOptions result1 = new PromptSelectionOptions();

                        SelectionFilter frameFilter = new SelectionFilter(
                            new TypedValue[]
                            { new TypedValue(0, "LWPOLYLINE"),
                              new TypedValue(90, 4),
                              new TypedValue(70, 1) });


                        PromptSelectionResult selectedFrameResult = ed.SelectWindow(basePt, cornerPt, frameFilter);
                        // PromptSelectionResult selectedFrameResult = ed.GetSelection(result1, frameFilter);
                        PromptSelectionResult selectedFrameResult1 = ed.SelectAll(frameFilter);
                        if (selectedFrameResult.Status == PromptStatus.OK)
                        {
                            List <ObjectId> selectedObjectIds = new List <ObjectId>(selectedFrameResult.Value.GetObjectIds());
                            List <ObjectId> resultObjectIds   = new List <ObjectId>(selectedFrameResult.Value.GetObjectIds());
                            RemoveInnerPLine(acTrans, ref selectedObjectIds, ref resultObjectIds);
                            foreach (ObjectId frameId in resultObjectIds)
                            {
                                Polyline framePline = acTrans.GetObject(frameId, OpenMode.ForRead) as Polyline;
                                framePline.Highlight();
                            }


                            PlotSettings acPlSet = new PlotSettings(acLayout.ModelType);
                            acPlSet.CopyFrom(acLayout);
                            //着色打印选项,设置按线框进行打印
                            acPlSet.ShadePlot = PlotSettingsShadePlotType.Wireframe;
                            PlotSettingsValidator acPlSetVdr = PlotSettingsValidator.Current;
                            //打印比例
                            //用户标准打印
                            acPlSetVdr.SetUseStandardScale(acPlSet, true);
                            acPlSetVdr.SetStdScaleType(acPlSet, StdScaleType.ScaleToFit);

                            //居中打印
                            acPlSetVdr.SetPlotCentered(acPlSet, true);
                            //调用GetPlotStyleSheetList之后才可以使用SetCurrentStyleSheet
                            System.Collections.Specialized.StringCollection sc = acPlSetVdr.GetPlotStyleSheetList();
                            //设置打印样式表
                            if (comboBoxStyleSheet.SelectedItem.ToString() == "无")
                            {
                                acPlSetVdr.SetCurrentStyleSheet(acPlSet, "acad.ctb");
                            }

                            else
                            {
                                acPlSetVdr.SetCurrentStyleSheet(acPlSet, comboBoxStyleSheet.SelectedItem.ToString());
                            }

                            //选择方向
                            if (radioButtonHorizontal.Checked)
                            {
                                //横向
                                acPlSetVdr.SetPlotConfigurationName(acPlSet, "DWG To PDF.pc3", MediaName);
                                acPlSetVdr.SetPlotRotation(acPlSet, PlotRotation.Degrees090);
                            }

                            //竖向
                            if (radioButtonVertical.Checked)
                            {
                                acPlSetVdr.SetPlotConfigurationName(acPlSet, "DWG To PDF.pc3", MediaName);//获取打印图纸尺寸ComboxMedia
                                acPlSetVdr.SetPlotRotation(acPlSet, PlotRotation.Degrees000);
                            }
                            PlotProgressDialog acPlProgDlg = new PlotProgressDialog(false, resultObjectIds.Count, true);
                            string             imagename   = "";
                            string[]           files       = new string[] { };
                            List <string>      listfile    = new List <string>();
                            foreach (var frame in resultObjectIds)
                            {
                                if (!Directory.Exists(directory))
                                {
                                    Directory.CreateDirectory(directory);
                                }
                                flag++;

                                Entity ent = acTrans.GetObject(frame, OpenMode.ForRead) as Entity;

                                imagename = string.Format("{0}-{1}.pdf", frame, flag);
                                //imagelist.Add(directory + imagename);
                                listfile.Add(directory + imagename);


                                //设置是否使用打印样式
                                acPlSet.ShowPlotStyles = true;
                                //设置打印区域
                                Extents3d extents3d = ent.GeometricExtents;

                                Extents2d E2d = new Extents2d(extents3d.MinPoint.X, extents3d.MinPoint.Y, extents3d.MaxPoint.X, extents3d.MaxPoint.Y);
                                acPlSetVdr.SetPlotWindowArea(acPlSet, E2d);
                                acPlSetVdr.SetPlotType(acPlSet, Autodesk.AutoCAD.DatabaseServices.PlotType.Window);
                                //重载和保存打印信息
                                acPlInfo.OverrideSettings = acPlSet;
                                //验证打印信息设置,看是否有误
                                PlotInfoValidator acPlInfoVdr = new PlotInfoValidator();
                                acPlInfoVdr.MediaMatchingPolicy = MatchingPolicy.MatchEnabled;
                                acPlInfoVdr.Validate(acPlInfo);

                                while (PlotFactory.ProcessPlotState != ProcessPlotState.NotPlotting)
                                {
                                    continue;
                                }
                                #region BackUpCode

                                //保存App的原参数
                                short bgPlot = (short)Application.GetSystemVariable("BACKGROUNDPLOT");
                                //设定为前台打印,加快打印速度
                                Application.SetSystemVariable("BACKGROUNDPLOT", 0);
                                PlotEngine acPlEng1 = PlotFactory.CreatePublishEngine();
                                // acPlProgDlg.set_PlotMsgString(PlotMessageIndex.DialogTitle, "图片输出");
                                // acPlProgDlg.set_PlotMsgString(PlotMessageIndex.CancelSheetButtonMessage, "取消输出");
                                //acPlProgDlg.set_PlotMsgString(PlotMessageIndex.SheetProgressCaption, "输出进度");
                                acPlProgDlg.LowerPlotProgressRange = 0;
                                acPlProgDlg.UpperPlotProgressRange = 100;
                                acPlProgDlg.PlotProgressPos        = 0;
                                acPlProgDlg.OnBeginPlot();
                                acPlProgDlg.IsVisible = true;
                                acPlEng1.BeginPlot(acPlProgDlg, null);
                                acPlEng1.BeginDocument(acPlInfo, "", null, 1, true, directory + imagename);
                                //  acPlProgDlg.set_PlotMsgString(PlotMessageIndex.Status, string.Format("正在输出文件"));
                                acPlProgDlg.OnBeginSheet();
                                acPlProgDlg.LowerSheetProgressRange = 0;
                                acPlProgDlg.UpperSheetProgressRange = 100;
                                acPlProgDlg.SheetProgressPos        = 0;
                                PlotPageInfo acPlPageInfo = new PlotPageInfo();
                                acPlEng1.BeginPage(acPlPageInfo, acPlInfo, true, null);
                                acPlEng1.BeginGenerateGraphics(null);
                                acPlEng1.EndGenerateGraphics(null);
                                acPlEng1.EndPage(null);
                                acPlProgDlg.SheetProgressPos = 100;
                                acPlProgDlg.OnEndSheet();
                                acPlEng1.EndDocument(null);
                                acPlProgDlg.PlotProgressPos = 100;
                                acPlProgDlg.OnEndPlot();
                                acPlEng1.EndPlot(null);
                                acPlEng1.Dispose();
                                acPlEng1.Destroy();
                                Application.SetSystemVariable("BACKGROUNDPLOT", bgPlot);

                                #endregion
                            }


                            files = listfile.ToArray();
                            PlotConfig config = PlotConfigManager.CurrentConfig;
                            //获取去除扩展名后的文件名(不含路径)
                            string fileName = SymbolUtilityServices.GetSymbolNameFromPathName(acDoc.Name, "dwg");
                            //定义保存文件对话框
                            PromptSaveFileOptions opt = new PromptSaveFileOptions("文件名")
                            {
                                //保存文件对话框的文件扩展名列表
                                Filter           = "*" + config.DefaultFileExtension + "|*" + config.DefaultFileExtension,
                                DialogCaption    = "浏览打印文件",                            //保存文件对话框的标题
                                InitialDirectory = @"D:\",                              //缺省保存目录
                                InitialFileName  = fileName + "-" + acLayout.LayoutName //缺省保存文件名
                            };
                            //根据保存对话框中用户的选择,获取保存文件名
                            PromptFileNameResult result = ed.GetFileNameForSave(opt);
                            if (result.Status != PromptStatus.OK)
                            {
                                return;
                            }
                            fileName = result.StringResult;

                            //string fileName = @"D:\输出.pdf";
                            PdfDocumentBase docx = PdfDocument.MergeFiles(files);
                            docx.Save(fileName, FileFormat.PDF);
                            System.Diagnostics.Process.Start(fileName);



                            //保存App的原参数
                            short bgPlot1 = (short)Application.GetSystemVariable("BACKGROUNDPLOT");
                            //设定为前台打印,加快打印速度
                            Application.SetSystemVariable("BACKGROUNDPLOT", 0);
                            PlotEngine acPlEng = PlotFactory.CreatePublishEngine();
                            acPlProgDlg.set_PlotMsgString(PlotMessageIndex.DialogTitle, "图片输出");
                            acPlProgDlg.set_PlotMsgString(PlotMessageIndex.CancelSheetButtonMessage, "取消输出");
                            acPlProgDlg.set_PlotMsgString(PlotMessageIndex.SheetProgressCaption, "输出进度");
                            acPlProgDlg.LowerPlotProgressRange = 0;
                            acPlProgDlg.UpperPlotProgressRange = 100;
                            acPlProgDlg.PlotProgressPos        = 0;
                            acPlProgDlg.OnBeginPlot();
                            acPlProgDlg.IsVisible = true;
                            acPlEng.BeginPlot(acPlProgDlg, null);
                            acPlEng.BeginDocument(acPlInfo, "", null, 1, true, directory + imagename);
                            acPlProgDlg.set_PlotMsgString(PlotMessageIndex.Status, string.Format("正在输出文件"));
                            acPlProgDlg.OnBeginSheet();
                            acPlProgDlg.LowerSheetProgressRange = 0;
                            acPlProgDlg.UpperSheetProgressRange = 100;
                            acPlProgDlg.SheetProgressPos        = 0;
                            PlotPageInfo acPlPageInfo1 = new PlotPageInfo();
                            acPlEng.BeginPage(acPlPageInfo1, acPlInfo, true, null);
                            acPlEng.BeginGenerateGraphics(null);
                            acPlEng.EndGenerateGraphics(null);
                            acPlEng.EndPage(null);
                            acPlProgDlg.SheetProgressPos = 100;
                            acPlProgDlg.OnEndSheet();
                            acPlEng.EndDocument(null);
                            acPlProgDlg.PlotProgressPos = 100;
                            acPlProgDlg.OnEndPlot();
                            acPlEng.EndPlot(null);
                            acPlEng.Dispose();
                            acPlEng.Destroy();
                            Application.SetSystemVariable("BACKGROUNDPLOT", bgPlot1);

                            acPlProgDlg.Dispose();
                            acPlProgDlg.Destroy();

                            for (int i = 0; i < files.Length; i++)
                            {
                                File.Delete(files[i]);
                            }
                        }
                        while (PlotFactory.ProcessPlotState != ProcessPlotState.NotPlotting)
                        {
                            continue;
                        }
                        //MessageBox.Show("打印完成!");
                    }
                }
                else
                {
                    ed.WriteMessage("\n另一个打印进程正在进行中.");
                }
            }



            catch (System.Exception)
            {
                throw;
            }
        }
예제 #13
0
        private async void button1_Click(object sender, EventArgs e)
        {
            button1.Enabled = false;

            List <string> rr = default;

            try
            {
                DiarioDisponivel = null;
                label1.ForeColor = Color.Black;
                label2.ForeColor = Color.Black;
                //rr = await GetSiteSTJNum(dateTimePicker1.Value);
                rr = await GetSiteSTJNumCaptcha();

                if (rr == null)
                {
                    throw new Exception("Não existem ocorrências nesse dia.");
                }
                if (DiarioDisponivel == null)
                {
                    throw new Exception("Não foi possivel pegar a data do diário.");
                }



                var DiarioDt = DateTime.ParseExact(DiarioDisponivel, "dd/MM/yyyy", System.Globalization.CultureInfo.InvariantCulture);
                if (!File.Exists($"stj_dje_{ DiarioDt.ToString("yyyyMMdd")}.zip"))
                {
                    using (WebClient wc = new WebClient())
                    {
                        wc.DownloadProgressChanged += Wc_DownloadProgressChanged;
                        await wc.DownloadFileTaskAsync(new Uri($"https://ww2.stj.jus.br/docs_internet/processo/dje/zip/stj_dje_{DiarioDt.ToString("yyyyMMdd")}.zip"), $"stj_dje_{DiarioDt.ToString("yyyyMMdd")}.zip");
                    }
                }

                //ZipFile.ExtractToDirectory("test.zip", "PDF");
                await Task.Run(() =>
                {
                    using (ZipFile zip = new ZipFile($"stj_dje_{DiarioDt.ToString("yyyyMMdd")}.zip"))
                    {
                        if (!Directory.Exists("PDF"))
                        {
                            Directory.CreateDirectory("PDF");
                        }
                        foreach (var file in new DirectoryInfo("PDF").EnumerateFiles())
                        {
                            file.Delete();
                        }
                        totalZip             = iZip = 0;
                        zip.ExtractProgress += Zip_ExtractProgress;
                        zip.ExtractAll("PDF", ExtractExistingFileAction.InvokeExtractProgressEvent);

                        updateProgressBar(tpb, 100, "Processo de Extração finalizado.");
                    }
                    // Merge PDF
                    updateProgressBar(tpb, 0, "Processo de Merge Iniciado");
                    var pdfMerges = new List <string>();
                    var files     = new DirectoryInfo("PDF").EnumerateFiles();
                    int iMerge    = default;

                    var intersect = files.ToList().Where(x => rr.Contains(Path.GetFileNameWithoutExtension(x.FullName).Split('_')[4]));

                    foreach (var file in intersect)
                    {
                        pdfMerges.Add(file.FullName);
                        updateProgressBar(tpb, Convert.ToInt32(iMerge++ / (0.01 * intersect.Count())), $"Jutando as informações {file.Name}");
                    }
                    updateProgressBar(tpb, 0, $"Processando...");
                    using (PdfDocumentBase doc = PdfDocument.MergeFiles(pdfMerges.ToArray()))
                    {
                        updateProgressBar(tpb, 0, "Salvando Arquivo.");
                        doc.Save("mergepdf.pdf", FileFormat.PDF);
                        MessageBox.Show("Arquivo salvo com sucesso!");
                        updateProgressBar(tpb, 100, "Arquivo Salvo");
                    }
                }).ConfigureAwait(false);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
                button1.Enabled = true;
            }
            button1.Invoke(new Action(() =>
            {
                button1.Enabled = true;
            }));
        }