/// <summary> /// 文件加密 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnEncrpt_Click(object sender, EventArgs e) { if (txtMagPDF.Text == "") { string msg = NCMessage.GetInstance(db.Language).GetMessageById("CM0085I", db.Language); MessageBox.Show(msg); return; } string password = getPassword(); if (string.IsNullOrEmpty(password)) { string msg = NCMessage.GetInstance(db.Language).GetMessageById("CM0116I", db.Language); MessageBox.Show(msg); return; } string destFile = Path.Combine(Path.GetDirectoryName(txtMagPDF.Text), "_" + Path.GetFileName(txtMagPDF.Text)); try { NCPDF.DecriptPdfDoc(txtMagPDF.Text, destFile, password); File.Delete(txtMagPDF.Text); File.Move(destFile, txtMagPDF.Text); string msg = NCMessage.GetInstance(db.Language).GetMessageById("CM0117I", db.Language); MessageBox.Show(msg); } catch (Exception ex) { string msg = NCMessage.GetInstance(db.Language).GetMessageById("CM0118I", db.Language); MessageBox.Show(msg); NCLogger.GetInstance().WriteExceptionLog(ex); } }
/// <summary> /// 文件信息取得 /// </summary> /// <param name="file"></param> private IDictionary <string, string> getInforFromFile(string file) { IDictionary <string, string> info = new Dictionary <string, string>(); NCPDF.GetInfor(file, ref info); return(info); }
/// <summary> /// 向PDF文件中加入信息 /// </summary> /// <param name="file"></param> /// <param name="infor"></param> private void AddInforToPDF(string file, IDictionary <string, string> infor) { string dest = file + ".tmp"; if (NCPDF.AddInfor(file, dest, infor)) { File.Copy(dest, file, true); File.Delete(dest); } }
/// <summary> /// 文件合成 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnOuput_Click(object sender, EventArgs e) { if (txtMagPDF.Text == "") { string msg = NCMessage.GetInstance(db.Language).GetMessageById("CM0085I", db.Language); MessageBox.Show(msg); return; } DataSet ds = new DataSet(); String wheresql = "发行编号=" + PublishId.ToString(); if (db.GetFile(0, 0, "*", wheresql, "文件序号", ref ds)) { ArrayList fileList = new ArrayList(); foreach (DataRow dr in ds.Tables[0].Rows) { String fname = dr["文件名称"].ToString(); if (!File.Exists(fname)) { string msg = String.Format(NCMessage.GetInstance(db.Language).GetMessageById("CM0087I", db.Language), fname); MessageBox.Show(msg); return; } fileList.Add(fname); } string[] files = new string[fileList.Count]; fileList.CopyTo(files); if (NCPDF.MergeFiles(txtMagPDF.Text, files)) { string msg = NCMessage.GetInstance(db.Language).GetMessageById("CM0088I", db.Language); MessageBox.Show(msg); } else { string msg = NCMessage.GetInstance(db.Language).GetMessageById("CM0089I", db.Language); MessageBox.Show(msg); } } else { string msg = NCMessage.GetInstance(db.Language).GetMessageById("CM0086I", db.Language); MessageBox.Show(msg); } }
/// <summary> /// 追加当前文件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnAddFile_Click(object sender, EventArgs e) { if (txtFile.Text == "") { string msg = NCMessage.GetInstance(db.Language).GetMessageById("CM0090I", db.Language); MessageBox.Show(msg); return; } string[] files = txtFile.Text.Split(';'); foreach (string file in files) { if (!File.Exists(file)) { string msg = String.Format(NCMessage.GetInstance(db.Language).GetMessageById("CM0087I", db.Language), file); MessageBox.Show(msg); return; } int PageCount = NCPDF.CountPageNo(file); if (PageCount == 0) { string msg = NCMessage.GetInstance(db.Language).GetMessageById("CM0093I", db.Language); MessageBox.Show(msg); return; } int rowNum = getLastRowNum() + 1; int id = 0; String fieldlist = "期刊编号,发行编号,文件序号,文件栏目,文件名称,文件页数,UserID"; String valuelist = MagId.ToString() + "," + PublishId.ToString() + "," + rowNum.ToString() + ",'" + txtCategory.Text + "','" + file + "'," + PageCount.ToString() + ",'" + db.UserID + "'"; if (db.SetFile(0, 0, fieldlist, "", valuelist, out id)) { string msg = NCMessage.GetInstance(db.Language).GetMessageById("CM0094I", db.Language); MessageBox.Show(msg); init(); } else { string msg = NCMessage.GetInstance(db.Language).GetMessageById("CM0095I", db.Language); MessageBox.Show(msg); } } }
/// <summary> /// 文件合并 /// </summary> /// <param name="pdffile"></param> /// <param name="publishid"></param> private void filemerge(string pdffile, string publishid) { if (pdffile == "") { string msg = NCMessage.GetInstance(db.Language).GetMessageById("CM0085I", db.Language); MessageBox.Show(msg); return; } DataSet ds = new DataSet(); String wheresql = "发行编号=" + publishid; if (db.GetFile(0, 0, "*", wheresql, "文件序号", ref ds)) { ArrayList fileList = new ArrayList(); foreach (DataRow dr in ds.Tables[0].Rows) { String fname = dr["文件名称"].ToString(); if (!File.Exists(fname)) { string msg = String.Format(NCMessage.GetInstance(db.Language).GetMessageById("CM0087I", db.Language), fname); MessageBox.Show(msg); return; } fileList.Add(fname); } string[] files = new string[fileList.Count]; fileList.CopyTo(files); if (NCPDF.MergeFiles(pdffile, files)) { string msg = NCMessage.GetInstance(db.Language).GetMessageById("CM0088I", db.Language); MessageBox.Show(msg); } else { string msg = NCMessage.GetInstance(db.Language).GetMessageById("CM0089I", db.Language); MessageBox.Show(msg); } } else { string msg = NCMessage.GetInstance(db.Language).GetMessageById("CM0086I", db.Language); MessageBox.Show(msg); } }
private void btnSplit_Click(object sender, EventArgs e) { DateTime dt_start = System.DateTime.Now; MagickReadSettings settings = new MagickReadSettings(); settings.Density = new MagickGeometry(300, 300); OpenFileDialog dlg = new OpenFileDialog(); if (dlg.ShowDialog() == DialogResult.OK) { string dbt_wfile = dlg.FileName; string pdfFolderPath = Path.Combine(Path.GetDirectoryName(dbt_wfile), Path.GetFileNameWithoutExtension(dbt_wfile)); if (!Directory.Exists(pdfFolderPath)) { Directory.CreateDirectory(pdfFolderPath); } int count = NCPDF.CountPageNo(dbt_wfile); using (MagickImageCollection images = new MagickImageCollection()) { for (int idx = 0; idx < count; idx++) { string pdf_file = Path.Combine(pdfFolderPath, idx.ToString() + ".pdf"); NCPDF.ExtractPages(dbt_wfile, pdf_file, idx + 1, idx + 1); images.Read(pdf_file, settings); //int page = 0; foreach (MagickImage image in images) { if (!File.Exists(pdfFolderPath + "\\image" + idx + ".jpg")) { image.Write(pdfFolderPath + "\\image" + idx + ".jpg"); } //page++; } File.Delete(pdf_file); } } } MessageBox.Show(DateTime.Now.Subtract(dt_start).Duration().Seconds.ToString()); }
/// <summary> /// 文件追加 /// </summary> /// <param name="magFile"></param> /// <param name="magId"></param> /// <param name="publishid"></param> private void addFiles(string magFile, string magId, string publishid) { string[] files = magFile.Split(';'); int rowNum = 1; // 文件追加 foreach (string file in files) { if (!File.Exists(file)) { string msg = String.Format(NCMessage.GetInstance(db.Language).GetMessageById("CM0087I", db.Language), file); MessageBox.Show(msg); return; } int PageCount = NCPDF.CountPageNo(file); if (PageCount == 0) { string msg = NCMessage.GetInstance(db.Language).GetMessageById("CM0093I", db.Language); MessageBox.Show(msg); return; } string category = Path.GetFileName(Path.GetDirectoryName(file)); string fieldlist = "期刊编号,发行编号,文件序号,文件栏目,文件名称,文件页数,UserID"; string valuelist = magId + "," + publishid + "," + rowNum.ToString() + ",'" + category + "','" + file + "'," + PageCount.ToString() + ",'" + db.UserID + "'"; int id = 0; if (db.SetFile(0, 0, fieldlist, "", valuelist, out id)) { rowNum++; } else { string msg = NCMessage.GetInstance(db.Language).GetMessageById("CM0095I", db.Language); MessageBox.Show(msg); return; } } }
/// <summary> /// 创建目录 /// </summary> /// <returns></returns> private String createCategory() { String ret = "目录\r\n"; int totalNum = 2; DataSet ds = new DataSet(); String wheresql = "发行编号=" + PublishId.ToString() + " AND 文件序号>0"; if (db.GetFile(0, 0, "*", wheresql, "文件序号", ref ds)) { string preline = null; String precategory = null; foreach (DataRow dr in ds.Tables[0].Rows) { String fname = dr["文件名称"].ToString(); if (!File.Exists(fname)) { string msg = String.Format(NCMessage.GetInstance(db.Language).GetMessageById("CM0086I", db.Language), fname); MessageBox.Show(msg); return(null); } String category = dr["文件栏目"].ToString(); if (precategory == null || precategory != category) { precategory = category; ret += precategory + "\r\n"; } string line = Path.GetFileNameWithoutExtension(fname); String num = dr["文件序号"].ToString(); if (num == BottomNum.ToString() && line.Length > 8) { line = line.Substring(0, line.Length - 8); } int pos = line.LastIndexOf("_"); if (pos > -1) { line = line.Substring(pos + 1); } if (preline == null || !line.Equals(preline)) { preline = line; int size = Encoding.GetEncoding("UTF-8").GetByteCount(line); if (size >= 35) { ret += line + "\r\n"; line = totalNum.ToString().PadLeft(36, '.'); ret += line + "\r\n"; } else { line = line + totalNum.ToString().PadLeft(36 - size, '.'); ret += line + "\r\n"; } } int rowNum = NCPDF.CountPageNo(fname); totalNum += rowNum; } } else { string msg = NCMessage.GetInstance(db.Language).GetMessageById("CM0086I", db.Language); MessageBox.Show(msg); } return(ret); }