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); } } }
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(); }
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); }
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); }
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); }
/// <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); } }
/// <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"); }
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(); }
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); } }
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); } }
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; } }
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; })); }