using ComponentFactory.Krypton.Toolkit; using FabitArchiwum.App.Model; using iTextSharp.text; using Newtonsoft.Json; using PdfiumViewer; using System; using System.Collections.Generic; using System.Data; using System.Drawing; using System.IO; using System.Linq; using System.Reflection; using System.Runtime.InteropServices; using System.Windows.Forms; using WIA; using static System.Net.Mime.MediaTypeNames; using static System.Windows.Forms.VisualStyles.VisualStyleElement; namespace FabitArchiwum.App { public partial class AppForm : ComponentFactory.Krypton.Toolkit.KryptonForm { LoginForm loginForm; List tree = new List(); KryptonTreeView _fieldsTreeCache = new KryptonTreeView(); DeviceManager deviceManager = new DeviceManagerClass(); DeviceInfo selectedScanner = null; Device device; WIA.CommonDialog dialog; public AppForm() { InitializeComponent(); //for (int i = 1; i <= deviceManager.DeviceInfos.Count; i++) //{ // if (deviceManager.DeviceInfos[i].Type != WiaDeviceType.ScannerDeviceType) // { // continue; // } // kryptonComboBox1.Items.Add(deviceManager.DeviceInfos[i].Properties["Name"].get_Value().ToString()); //} //if (kryptonComboBox1.Items.Count > 0) //{ // kryptonComboBox1.SelectedIndex = 0; // selectedScanner = deviceManager.DeviceInfos[kryptonComboBox1.SelectedIndex + 1]; //} try { dialog = new WIA.CommonDialogClass(); device = dialog.ShowSelectDevice(AlwaysSelectDevice: true); } catch (Exception ex) { MessageBox.Show("Brak skanera lub sterowników WIA", "Błąd"); } bindTreeView(); treeView1.Nodes[0].Expand(); } private void bindTreeView() { tree = JsonConvert.DeserializeObject>(AppHelper.GetInstance().getTree()); treeView1.Nodes.Clear(); _fieldsTreeCache.Nodes.Clear(); TreeNodeCollection tnc = treeView1.Nodes; bindTreeViewReq(0, tnc); TreeNodeCollection tncCache = _fieldsTreeCache.Nodes; bindTreeViewReq(0, tncCache); //treeView1.ExpandAll(); kryptonButton1.Enabled = false; kryptonButton2.Enabled = false; kryptonButton3.Enabled = false; kryptonButton4.Enabled = false; kryptonButton5.Enabled = false; kryptonButton9.Enabled = false; kryptonButton10.Enabled = false; kryptonButton6.Enabled = false; kryptonButton7.Enabled = false; kryptonButton8.Enabled = false; listBox1.ClearSelected(); kryptonLabel1.Text = ""; pdfViewer1.Document?.Dispose(); var pdf = PdfDocument.Load(Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + "\\None.pdf"); pdfViewer1.Document = pdf; } private void bindTreeViewReq(int parentKey, TreeNodeCollection n) { var st = tree.Where(a => a.ParentId == parentKey).ToList(); foreach (var item in st) { n.Add(item.Id.ToString(), item.Text); var subtree = tree.Where(a => a.ParentId == item.Id).ToList(); if (subtree.Count() > 0) bindTreeViewReq((int)item.Id, n[n.Count - 1].Nodes); } treeView1.Scrollable = true; } private void AppForm_Shown(object sender, EventArgs e) { // this.Visible = false; // loginForm = new LoginForm(); // loginForm.ShowDialog(); if (AppHelper.GetInstance().isLogged()) { //bindTreeView(); } else { this.Close(); } } public byte[] ImageToByteArray(System.Drawing.Image imageIn) { using (var ms = new MemoryStream()) { imageIn.Save(ms, imageIn.RawFormat); return ms.ToArray(); } } private void button1_Click(object sender, EventArgs e) { } private void treeView1_AfterSelect(object sender, TreeViewEventArgs e) { listBox1.Items.Clear(); int treeId = int.Parse(treeView1.SelectedNode.Name); var doc = JsonConvert.DeserializeObject>(AppHelper.GetInstance().getDocumentsByTreeId(treeId)); var ds = doc.Where(d => d.TreeId == treeId).ToList(); foreach (var d in ds) { listBox1.Items.Add(d); } kryptonButton1.Enabled = true; kryptonButton2.Enabled = true; kryptonButton3.Enabled = true; kryptonButton6.Enabled = true; kryptonButton7.Enabled = true; kryptonButton8.Enabled = true; kryptonButton4.Enabled = false; kryptonButton5.Enabled = false; kryptonButton9.Enabled = false; kryptonButton10.Enabled = true; listBox1.ClearSelected(); kryptonLabel1.Text = ""; pdfViewer1.Document?.Dispose(); var pdf = PdfDocument.Load(Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + "\\None.pdf"); pdfViewer1.Document = pdf; } private void kryptonPanel1_Resize(object sender, EventArgs e) { } private void kryptonButton2_Click(object sender, EventArgs e) { if (MessageBox.Show("Usunąć?", "Potwierdzenie", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.Yes) { try { TreeNode tn = treeView1.SelectedNode; AppHelper.GetInstance().deleteTree(int.Parse(tn.Name)); bindTreeView(); } catch (UnauthorizedAccessException) { KryptonMessageBox.Show("Brak dostępu", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } catch (Exception ex) { KryptonMessageBox.Show("Błąd: " + ex.Message + ex.InnerException + ex.StackTrace, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } private void plikToolStripMenuItem_Click(object sender, EventArgs e) { this.Close(); } private void listBox1_SelectedIndexChanged(object sender, EventArgs e) { if (listBox1.SelectedIndex != -1) { kryptonButton4.Enabled = true; kryptonButton5.Enabled = true; kryptonButton9.Enabled = true; kryptonButton10.Enabled = true; kryptonButton6.Enabled = true; kryptonButton7.Enabled = true; kryptonButton8.Enabled = true; } else { kryptonButton4.Enabled = false; kryptonButton5.Enabled = false; kryptonButton9.Enabled = false; kryptonButton10.Enabled = true; kryptonButton6.Enabled = false; kryptonButton7.Enabled = false; kryptonButton8.Enabled = false; } } private void listBox1_SelectedValueChanged(object sender, EventArgs e) { if (listBox1.SelectedIndex != -1) { kryptonButton4.Enabled = true; kryptonButton5.Enabled = true; kryptonButton9.Enabled = true; kryptonButton10.Enabled = true; DocumentModel d = AppHelper.GetInstance().getDocumentById(((DocumentModel)listBox1.SelectedItem).Id); if (d != null && d.Image != null) { try { using (MemoryStream ms = new MemoryStream(d.Image)) { kryptonLabel1.Text = d.Name; pdfViewer1.Document?.Dispose(); var pdf = PdfDocument.Load(ms); pdf.Save(Path.GetTempPath()+"\\temp.pdf"); pdf = PdfDocument.Load(Path.GetTempPath() + "\\temp.pdf"); pdfViewer1.Document = pdf; } } catch { kryptonLabel1.Text = ""; pdfViewer1.Document?.Dispose(); var pdf = PdfDocument.Load(Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + "\\None.pdf"); pdfViewer1.Document = pdf; } } } else { kryptonButton4.Enabled = false; kryptonButton5.Enabled = false; kryptonButton9.Enabled = false; kryptonButton10.Enabled = true; } } private void kryptonButton1_Click(object sender, EventArgs e) { var sn = treeView1.SelectedNode; var nowyFolder = KryptonInputBox.Show("Wpisz nazwę nowego folderu:", "Nowy folder", ""); if (nowyFolder != "") { try { AppHelper.GetInstance().putTree(int.Parse(treeView1.SelectedNode.Name), nowyFolder); bindTreeView(); treeView1.Focus(); KryptonMessageBox.Show("Zapisano", "OK", MessageBoxButtons.OK, MessageBoxIcon.Information); } catch (UnauthorizedAccessException) { KryptonMessageBox.Show("Brak dostępu", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } catch (Exception ex) { KryptonMessageBox.Show("Błąd zapisu: " + ex.Message + ex.InnerException + ex.StackTrace, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } treeView1.SelectedNode = treeView1.Nodes.Find(sn.Name, true)[0]; treeView1.SelectedNode.Expand(); } private void kryptonButton3_Click(object sender, EventArgs e) { var nowaNazwa = KryptonInputBox.Show("Wpisz nową nazwę folderu:", "Zmiana nazwy", treeView1.SelectedNode.Text); if (nowaNazwa != "") { try { TreeNode tn = treeView1.SelectedNode; AppHelper.GetInstance().renameTree(int.Parse(tn.Name), nowaNazwa); bindTreeView(); treeView1.SelectedNode = treeView1.Nodes.Find(tn.Name, true)[0]; treeView1.Focus(); KryptonMessageBox.Show("Zapisano", "OK", MessageBoxButtons.OK, MessageBoxIcon.Information); } catch (Exception ex) { KryptonMessageBox.Show("Błąd zapisu: " + ex.Message + ex.InnerException + ex.StackTrace, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } private void AppForm_SizeChanged(object sender, EventArgs e) { kryptonPanel3.Height = (kryptonPanel1.Height / 2) - 6; kryptonPanel2.Height = (kryptonPanel1.Height / 2) - 3; kryptonPanel2.Top = 3; kryptonPanel3.Top = (kryptonPanel1.Height / 2); kryptonPanel3.Width = kryptonPanel1.Width - 6; kryptonPanel2.Width = kryptonPanel1.Width - 6; treeView1.Height = (kryptonPanel1.Height / 2) - 35; listBox1.Height = (kryptonPanel1.Height / 2) - 38; kryptonButton1.Top = (kryptonPanel1.Height / 2) - 32; kryptonButton2.Top = (kryptonPanel1.Height / 2) - 32; kryptonButton3.Top = (kryptonPanel1.Height / 2) - 32; kryptonButton11.Top = (kryptonPanel1.Height / 2) - 32; kryptonButton4.Top = (kryptonPanel1.Height / 2) - 32; kryptonButton5.Top = (kryptonPanel1.Height / 2) - 32; kryptonButton9.Top = (kryptonPanel1.Height / 2) - 32; kryptonButton10.Top = (kryptonPanel1.Height / 2) - 32; } private void kryptonButton5_Click(object sender, EventArgs e) { var nowaNazwa = KryptonInputBox.Show("Wpisz nową nazwę dokumentu:", "Zmiana nazwy", ((DocumentModel)listBox1.SelectedItem).Name); var si = (DocumentModel)listBox1.SelectedItem; if (nowaNazwa != "") { try { AppHelper.GetInstance().renameDocument(si.Id, nowaNazwa); listBox1.Items.Clear(); int treeId = int.Parse(treeView1.SelectedNode.Name); var doc = JsonConvert.DeserializeObject>(AppHelper.GetInstance().getDocumentsByTreeId(treeId)); var ds = doc.Where(d => d.TreeId == treeId).ToList(); foreach (var d in ds) { listBox1.Items.Add(d); } kryptonButton4.Enabled = false; kryptonButton5.Enabled = false; kryptonButton9.Enabled = false; kryptonButton10.Enabled = true; KryptonMessageBox.Show("Zapisano", "OK", MessageBoxButtons.OK, MessageBoxIcon.Information); } catch (Exception ex) { KryptonMessageBox.Show("Błąd zapisu: " + ex.Message + ex.InnerException + ex.StackTrace, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } private void kryptonButton4_Click(object sender, EventArgs e) { if (MessageBox.Show("Usunąć?", "Potwierdzenie", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.Yes) { try { var si = (DocumentModel)listBox1.SelectedItem; AppHelper.GetInstance().deleteDocument(si.Id); listBox1.Items.Clear(); int treeId = int.Parse(treeView1.SelectedNode.Name); var doc = JsonConvert.DeserializeObject>(AppHelper.GetInstance().getDocumentsByTreeId(treeId)); var ds = doc.Where(d => d.TreeId == treeId).ToList(); foreach (var d in ds) { listBox1.Items.Add(d); } kryptonButton4.Enabled = false; kryptonButton5.Enabled = false; kryptonButton9.Enabled = false; kryptonButton10.Enabled = true; kryptonLabel1.Text = ""; pdfViewer1.Document?.Dispose(); var pdf = PdfDocument.Load(Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + "\\None.pdf"); pdfViewer1.Document = pdf; } catch (UnauthorizedAccessException) { KryptonMessageBox.Show("Brak dostępu", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } catch (Exception ex) { KryptonMessageBox.Show("Błąd: " + ex.Message + ex.InnerException + ex.StackTrace, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } private void oToolStripMenuItem_Click(object sender, EventArgs e) { OProgramieForm oProgramieForm = new OProgramieForm(); oProgramieForm.ShowDialog(); } const string wiaFormatBMP = "{B96B3CAB-0728-11D3-9D7B-0000F81EF32E}"; const string wiaFormatJPEG = "{B96B3CAE-0728-11D3-9D7B-0000F81EF32E}"; class WIA_DPS_DOCUMENT_HANDLING_SELECT { public const uint FEEDER = 0x00000001; public const uint FLATBED = 0x00000002; } class WIA_DPS_DOCUMENT_HANDLING_STATUS { public const uint FEED_READY = 0x00000001; } class WIA_PROPERTIES { public const uint WIA_RESERVED_FOR_NEW_PROPS = 1024; public const uint WIA_DIP_FIRST = 2; public const uint WIA_DPA_FIRST = WIA_DIP_FIRST + WIA_RESERVED_FOR_NEW_PROPS; public const uint WIA_DPC_FIRST = WIA_DPA_FIRST + WIA_RESERVED_FOR_NEW_PROPS; // // Scanner only device properties (DPS) // public const uint WIA_DPS_FIRST = WIA_DPC_FIRST + WIA_RESERVED_FOR_NEW_PROPS; public const uint WIA_DPS_DOCUMENT_HANDLING_STATUS = WIA_DPS_FIRST + 13; public const uint WIA_DPS_DOCUMENT_HANDLING_SELECT = WIA_DPS_FIRST + 14; } public static List Scan(string scannerId) { List images = new List(); // select the correct scanner using the provided scannerId parameter WIA.DeviceManager manager = new WIA.DeviceManager(); WIA.Device device = null; foreach (WIA.DeviceInfo info in manager.DeviceInfos) { if (info.DeviceID == scannerId) { // connect to scanner device = info.Connect(); break; } } // device was not found if (device == null) { // enumerate available devices string availableDevices = ""; foreach (WIA.DeviceInfo info in manager.DeviceInfos) { availableDevices += info.DeviceID + "\n"; } // show error with available devices throw new Exception("The device with provided ID could not be found. Available Devices:\n" + availableDevices); } WIA.Item item = null; WIA.CommonDialog dialog = new WIA.CommonDialog(); WIA.Items items = dialog.ShowSelectItems(device); if (items == null) return images; item = items[1]; bool hasMorePages = true; while (hasMorePages) { try { // scan image WIA.ICommonDialog wiaCommonDialog = new WIA.CommonDialog(); WIA.ImageFile image = (WIA.ImageFile)wiaCommonDialog.ShowTransfer(item); // save to temp file string fileName = Path.GetTempFileName(); File.Delete(fileName); image.SaveFile(fileName); try { Marshal.FinalReleaseComObject(image); } finally { image = null; } // add file to output list images.Add(System.Drawing.Image.FromFile(fileName)); } finally { //determine if there are any more pages waiting WIA.Property documentHandlingSelect = null; WIA.Property documentHandlingStatus = null; foreach (WIA.Property prop in device.Properties) { if (prop.PropertyID == WIA_PROPERTIES.WIA_DPS_DOCUMENT_HANDLING_SELECT) documentHandlingSelect = prop; if (prop.PropertyID == WIA_PROPERTIES.WIA_DPS_DOCUMENT_HANDLING_STATUS) documentHandlingStatus = prop; } // assume there are no more pages hasMorePages = false; // may not exist on flatbed scanner but required for feeder if (documentHandlingSelect != null) { // check for document feeder if ((Convert.ToUInt32(documentHandlingSelect.get_Value()) & WIA_DPS_DOCUMENT_HANDLING_SELECT.FEEDER) != 0) { hasMorePages = ((Convert.ToUInt32(documentHandlingStatus.get_Value()) & WIA_DPS_DOCUMENT_HANDLING_STATUS.FEED_READY) != 0); } } } } return images; } private void setItem(IItem item, object property, object value) { WIA.Property aProperty = item.Properties.get_Item(ref property); aProperty.set_Value(ref value); } private void kryptonButton6_Click(object sender, EventArgs e) { if (device != null) { Document doc = new Document(PageSize.A4, 10f, 10f, 10f, 10f); var output = new MemoryStream(); var writer = iTextSharp.text.pdf.PdfWriter.GetInstance(doc, output); doc.Open(); bool firstTime = true; int ilosc_stron = 0; Items items; items = dialog.ShowSelectItems(device, SingleSelect: false); //items = device.Items; do { WIA.Item item; try { item = items[1] as WIA.Item; //setItem(item, "6146", 1); //setItem(item, "3097", 0); //setItem(item, "6148", 200); } catch { break; } bool hasMorePages = true; while (hasMorePages) { if (!firstTime) doc.NewPage(); ImageFile imageFile = null; // List s = Scan(device.DeviceID); object res = null; if (items.Count >= 1) { try { //res = item.Transfer(wiaFormatJPEG); res = dialog.ShowTransfer(item, wiaFormatJPEG); } catch { break; } //List i = (List)dialog.ShowTransfer(items[1]); imageFile = (ImageFile)res; } if (imageFile != null) { iTextSharp.text.Rectangle pageSize = null; pageSize = new iTextSharp.text.Rectangle(0, 0, imageFile.Width, imageFile.Height); var imageBytes = (byte[])imageFile.FileData.get_BinaryData(); var ms = new MemoryStream(imageBytes); var img = System.Drawing.Image.FromStream(ms); var image = iTextSharp.text.Image.GetInstance(ImageToByteArray(img)); image.SetAbsolutePosition(0, 0); image.ScaleAbsoluteHeight(doc.PageSize.Height); image.ScaleAbsoluteWidth(doc.PageSize.Width); doc.Add(image); firstTime = false; ilosc_stron++; } Marshal.FinalReleaseComObject(res); WIA.Property documentHandlingSelect = null; WIA.Property documentHandlingStatus = null; foreach (WIA.Property prop in device.Properties) { if (prop.PropertyID == WIA_PROPERTIES.WIA_DPS_DOCUMENT_HANDLING_SELECT) documentHandlingSelect = prop; if (prop.PropertyID == WIA_PROPERTIES.WIA_DPS_DOCUMENT_HANDLING_STATUS) documentHandlingStatus = prop; } // assume there are no more pages hasMorePages = false; // may not exist on flatbed scanner but required for feeder if (documentHandlingSelect != null) { // check for document feeder if ((Convert.ToUInt32(documentHandlingSelect.get_Value()) & WIA_DPS_DOCUMENT_HANDLING_SELECT.FEEDER) != 0) { hasMorePages = ((Convert.ToUInt32(documentHandlingStatus.get_Value()) & WIA_DPS_DOCUMENT_HANDLING_STATUS.FEED_READY) != 0); object obj = new object(); obj = (WIA_DPS_DOCUMENT_HANDLING_SELECT.FEEDER); documentHandlingSelect.set_Value(ref obj); } } } } while (items != null && MessageBox.Show("Następna strona", "Następna strona", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.Yes); //while (MessageBox.Show("Następna strona", "Następna strona", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.Yes); if (ilosc_stron > 0) { doc.Close(); var nazwaDokumentu = KryptonInputBox.Show("Wpisz nazwę dokumentu:", "Nowy dokument", ""); if (nazwaDokumentu != "") { DocumentModel docModel = new DocumentModel(); docModel.TreeId = int.Parse(treeView1.SelectedNode.Name); docModel.Name = nazwaDokumentu + ".pdf"; docModel.Image = output.ToArray(); output.Close(); DocumentModel d = AppHelper.GetInstance().putDocument(docModel); TreeNode tn = treeView1.SelectedNode; bindTreeView(); treeView1.SelectedNode = treeView1.Nodes.Find(tn.Name, true)[0]; treeView1.Focus(); using (MemoryStream ms = new MemoryStream(d.Image)) { pdfViewer1.Document?.Dispose(); var pdf = PdfDocument.Load(ms); pdfViewer1.Document = pdf; } } else { MessageBox.Show("Błędna nazwa dokumentu. Dokument nie zapisany!", "Błąd"); } } } else { MessageBox.Show("Brak wyboru skanera!", "Błąd"); } } private void kryptonButton7_Click(object sender, EventArgs e) { } private void wybórSkaneraToolStripMenuItem_Click(object sender, EventArgs e) { try { dialog = new WIA.CommonDialog(); device = dialog.ShowSelectDevice(AlwaysSelectDevice: true); } catch (Exception ex) { MessageBox.Show("Brak skanera lub sterowników WIA", "Błąd"); } } private void kryptonButton7_Click_1(object sender, EventArgs e) { OpenFileDialog openFileDialog = new OpenFileDialog(); openFileDialog.Filter = "PDF Files|*.PDF"; openFileDialog.Multiselect = false; DialogResult res = openFileDialog.ShowDialog(); DocumentModel docModel = new DocumentModel(); docModel.TreeId = int.Parse(treeView1.SelectedNode.Name); docModel.Name = openFileDialog.SafeFileName; pdfViewer1.Document?.Dispose(); PdfDocument pdf = PdfDocument.Load(openFileDialog.FileName); pdfViewer1.Document = pdf; MemoryStream m = new MemoryStream(); pdfViewer1.Document.Save(m); docModel.Image = m.ToArray(); DocumentModel d = AppHelper.GetInstance().putDocument(docModel); TreeNode tn = treeView1.SelectedNode; bindTreeView(); treeView1.SelectedNode = treeView1.Nodes.Find(tn.Name, true)[0]; treeView1.Focus(); using (MemoryStream ms = new MemoryStream(d.Image)) { pdfViewer1.Document?.Dispose(); var p = PdfDocument.Load(ms); pdf.Save(Path.GetTempPath() + "\\temp.pdf"); pdf = PdfDocument.Load(Path.GetTempPath() + "\\temp.pdf"); pdfViewer1.Document = pdf; } } private void pdfViewer1_Load(object sender, EventArgs e) { } private void listBox1_DragDrop(object sender, DragEventArgs e) { string[] files = (string[])e.Data.GetData(DataFormats.FileDrop); foreach (var file in files) { DocumentModel docModel = new DocumentModel(); docModel.TreeId = int.Parse(treeView1.SelectedNode.Name); docModel.Name = Path.GetFileName(file); docModel.Image = File.ReadAllBytes(file); DocumentModel d = AppHelper.GetInstance().putDocument(docModel); } listBox1.Items.Clear(); int treeId = int.Parse(treeView1.SelectedNode.Name); var doc = JsonConvert.DeserializeObject>(AppHelper.GetInstance().getDocumentsByTreeId(treeId)); var ds = doc.Where(d => d.TreeId == treeId).ToList(); foreach (var d in ds) { listBox1.Items.Add(d); } kryptonButton1.Enabled = true; kryptonButton2.Enabled = true; kryptonButton3.Enabled = true; kryptonButton6.Enabled = true; kryptonButton7.Enabled = true; kryptonButton8.Enabled = true; kryptonButton4.Enabled = false; kryptonButton5.Enabled = false; kryptonButton9.Enabled = false; kryptonButton10.Enabled = true; listBox1.ClearSelected(); kryptonLabel1.Text = ""; pdfViewer1.Document?.Dispose(); var pdf = PdfDocument.Load(Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + "\\None.pdf"); pdfViewer1.Document = pdf; } private void listBox1_DragEnter(object sender, DragEventArgs e) { if (e.Data.GetDataPresent(DataFormats.FileDrop) && treeView1.SelectedNode != null) { e.Effect = DragDropEffects.Copy; } else { e.Effect = DragDropEffects.None; } } private void kryptonButton8_Click(object sender, EventArgs e) { Document doc = new Document(PageSize.A4, 10f, 10f, 10f, 10f); var output = new MemoryStream(); var writer = iTextSharp.text.pdf.PdfWriter.GetInstance(doc, output); doc.Open(); bool firstTime = true; int ilosc_stron = 0; do { OpenFileDialog openFileDialog = new OpenFileDialog(); openFileDialog.Filter = "Image Files|*.JPG"; DialogResult res = openFileDialog.ShowDialog(); if (res == DialogResult.OK) { if (!firstTime) doc.NewPage(); var img = System.Drawing.Image.FromFile(openFileDialog.FileName); if (img != null) { iTextSharp.text.Rectangle pageSize = null; pageSize = new iTextSharp.text.Rectangle(0, 0, img.Width, img.Height); var image = iTextSharp.text.Image.GetInstance(ImageToByteArray(img)); image.SetAbsolutePosition(0, 0); image.ScaleAbsoluteHeight(doc.PageSize.Height); image.ScaleAbsoluteWidth(doc.PageSize.Width); doc.Add(image); firstTime = false; ilosc_stron++; } } } while (MessageBox.Show("Następna strona", "Następna strona", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.Yes); if (ilosc_stron > 0) { doc.Close(); var nazwaDokumentu = KryptonInputBox.Show("Wpisz nazwę dokumentu:", "Nowy dokument", ""); if (nazwaDokumentu != "") { DocumentModel docModel = new DocumentModel(); docModel.TreeId = int.Parse(treeView1.SelectedNode.Name); docModel.Name = nazwaDokumentu + ".pdf"; docModel.Image = output.ToArray(); output.Close(); DocumentModel d = AppHelper.GetInstance().putDocument(docModel); TreeNode tn = treeView1.SelectedNode; bindTreeView(); treeView1.SelectedNode = treeView1.Nodes.Find(tn.Name, true)[0]; treeView1.Focus(); using (MemoryStream ms = new MemoryStream(d.Image)) { pdfViewer1.Document?.Dispose(); var pdf = PdfDocument.Load(ms); pdfViewer1.Document = pdf; } } else { MessageBox.Show("Błędna nazwa dokumentu. Dokument nie zapisany!", "Błąd"); } } } private void kryptonButton9_Click(object sender, EventArgs e) { var si = (DocumentModel)listBox1.SelectedItem; SaveFileDialog saveFileDialog = new SaveFileDialog(); saveFileDialog.FileName = si.Name; saveFileDialog.Filter = "All|*.*"; var res = saveFileDialog.ShowDialog(); if (res == DialogResult.OK) { var doc = AppHelper.GetInstance().getDocumentById(si.Id); File.WriteAllBytes(saveFileDialog.FileName, doc.Image); } } private void kryptonButton11_Click(object sender, EventArgs e) { bindTreeView(); } private void kryptonButton10_Click(object sender, EventArgs e) { OpenFileDialog openFileDialog = new OpenFileDialog(); openFileDialog.Filter = "All|*.*"; openFileDialog.Multiselect = true; DialogResult res = openFileDialog.ShowDialog(); foreach (var file in openFileDialog.FileNames) { DocumentModel docModel = new DocumentModel(); docModel.TreeId = int.Parse(treeView1.SelectedNode.Name); docModel.Name = Path.GetFileName(file); docModel.Image = File.ReadAllBytes(file); DocumentModel d = AppHelper.GetInstance().putDocument(docModel); } listBox1.Items.Clear(); int treeId = int.Parse(treeView1.SelectedNode.Name); var doc = JsonConvert.DeserializeObject>(AppHelper.GetInstance().getDocumentsByTreeId(treeId)); var ds = doc.Where(d => d.TreeId == treeId).ToList(); foreach (var d in ds) { listBox1.Items.Add(d); } kryptonButton1.Enabled = true; kryptonButton2.Enabled = true; kryptonButton3.Enabled = true; kryptonButton6.Enabled = true; kryptonButton7.Enabled = true; kryptonButton8.Enabled = true; kryptonButton4.Enabled = false; kryptonButton5.Enabled = false; kryptonButton9.Enabled = false; kryptonButton10.Enabled = true; listBox1.ClearSelected(); kryptonLabel1.Text = ""; pdfViewer1.Document?.Dispose(); var pdf = PdfDocument.Load(Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + "\\None.pdf"); pdfViewer1.Document = pdf; } private void AppForm_FormClosing(object sender, FormClosingEventArgs e) { pdfViewer1.Document?.Dispose(); File.Delete(Path.GetTempPath() + "\\temp.pdf"); } private void treeView1_ItemDrag(object sender, ItemDragEventArgs e) { treeView1.DoDragDrop(e.Item, DragDropEffects.Move); } private void treeView1_DragEnter(object sender, DragEventArgs e) { e.Effect = DragDropEffects.Move; } private void treeView1_DragDrop(object sender, DragEventArgs e) { TreeNode aNode; if (e.Data.GetDataPresent("System.Windows.Forms.TreeNode", false)) { Point apoint; TreeNode targetNode; apoint = ((ComponentFactory.Krypton.Toolkit.KryptonTreeView)sender).PointToClient(new Point(e.X, e.Y)); targetNode = ((ComponentFactory.Krypton.Toolkit.KryptonTreeView)sender).GetNodeAt(apoint); aNode = (TreeNode)e.Data.GetData("System.Windows.Forms.TreeNode"); targetNode.Nodes.Add((TreeNode)aNode.Clone()); targetNode.Expand(); aNode.Remove(); } } } }