private void createCombinedPdf_Acrobat(List <CockleFilePdf> selectedPdfFiles, string new_file_name) { Acrobat.CAcroApp app = new Acrobat.AcroApp(); // Acrobat Acrobat.CAcroPDDoc doc = new Acrobat.AcroPDDoc(); // First document Acrobat.CAcroPDDoc docToAdd = new Acrobat.AcroPDDoc(); // Next documents try { int numPages = 0, numPagesToAdd = 0; foreach (var _f in selectedPdfFiles) { var f = _f.FullName; if (_f == selectedPdfFiles.First()) // both 0 { doc.Open(f); numPages = doc.GetNumPages(); } else { if (!docToAdd.Open(f)) { break; } numPagesToAdd = docToAdd.GetNumPages(); if (!doc.InsertPages(numPages - 1, docToAdd, 0, numPagesToAdd, 0)) { break; } if (!docToAdd.Close()) { break; } numPages = doc.GetNumPages(); } } doc.Save(1, new_file_name); } catch (Exception ex) { System.Diagnostics.Debug.WriteLine(ex.Message); } finally { doc.Close(); app.CloseAllDocs(); app.Exit(); doc = null; docToAdd = null; app = null; GC.Collect(); } }
private void carryOutPdfExtractPages(string new_file_name, int lo, int hi) { Acrobat.CAcroApp app = new Acrobat.AcroApp(); // Acrobat Acrobat.CAcroPDDoc doc = new Acrobat.AcroPDDoc(); // First document // use reflection to center the pdf try { var opened = doc.Open(selectedPdfFile.FullName); if (opened) { object js_object = doc.GetJSObject(); Type js_type = js_object.GetType(); //object[] js_param = { 0, 0, "/c/scratch/blah.pdf" }; object[] js_param = { lo - 1, hi - 1, new_file_name }; // subtract 1 to make base 0 string script_name = Models.Utilities.AcrobatJS.Javascripts [Models.Utilities.LocalJavascripts.extractPagesFromDocument]; js_type.InvokeMember(script_name, System.Reflection.BindingFlags.InvokeMethod | System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance, null, js_object, js_param); } } catch (Exception ex) { UpdateLabelPdf = ex.Message; } finally { doc.Close(); app.CloseAllDocs(); app.Exit(); doc = null; app = null; GC.Collect(); } }