using DOCGEN; using OnDoc.Klassen; using Model; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.IO; using System.Linq; using System.Net; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using Database; using System.Linq.Expressions; namespace OnDoc.UIControls { public partial class DocPreview : UserControl { public int ZoomPercentage { get; set; } public DocPreview() { InitializeComponent(); } public DocPreview(bool Show_Editfunctions) { InitializeComponent(); if (Show_Editfunctions) { this.pnlEdit.Visible = true; } else { this.pnlEdit.Visible = false; } } public void Show_Editbuttons() { this.pnlEdit.Visible= true; } public void Hide_Editbuttons() { this.pnlEdit.Visible = false; } public void Show_Doc(string dokumentid) { clsdok dok = new clsdok("", "", ""); dok = GetDoc(true, dokumentid); var stream = new MemoryStream(Convert.FromBase64String(dok.dokument)); //clsGetDoc gd = new clsGetDoc(AppParams.connectionstring); if (stream.Length > 0) { this.pdfViewerControl1.Load(stream); this.pdfViewerControl1.Visible = true; } else { } } public void clear_viewer() { pdfViewerControl1.Visible= false; } public void Show_Serienbrief_Dokument(int Serienbriefnr, int Eintragnr) { DB db = new DB(AppParams.connectionstring); db.Get_Tabledata("Select dbo.BinaryToBase64(dokument) from edex_sb_serienbrief_dokument where serienbriefnr=" + Serienbriefnr.ToString() + " and inteintragnr=" + Eintragnr.ToString(), false, true); try { var stream = new MemoryStream(Convert.FromBase64String(db.dsdaten.Tables[0].Rows[0][0].ToString())); if (stream.Length > 0) { this.pdfViewerControl1.Load(stream); this.pdfViewerControl1.Visible = true; } else { } } catch { } db = null; } private clsdok GetDoc(bool AsPDF, string dokumentid) { clsdok dok = new clsdok("", "", ""); if (dokumentid == "") { return dok; ; } if (AppParams.UseAPI == "YES") { string URL = AppParams.RESTURI + "api/GetDocument?dokid=" + dokumentid; if (AsPDF == true) { URL = AppParams.RESTURI + "api/GetDocumentPDF?dokid=" + dokumentid; } HttpWebRequest webRequest = HttpWebRequest.Create(URL) as HttpWebRequest; webRequest.Method = WebRequestMethods.Http.Get; webRequest.Headers["Authorization"] = "Bearer " + AppParams.apikey; //webRequest.Credentials = new NetworkCredential(Username, Password); //webRequest.ContentType = "application/x-www-form-urlencoded"; using (HttpWebResponse response = webRequest.GetResponse() as HttpWebResponse) { if (response.StatusCode == HttpStatusCode.OK) { StreamReader reader = new StreamReader(response.GetResponseStream()); string responseContent = reader.ReadToEnd(); dok = Newtonsoft.Json.JsonConvert.DeserializeObject(responseContent); } else { Logging.Logging.Error(URL + ": " + response.StatusCode.ToString() + " / " + response.StatusDescription, "Clinet - DokList GetDocument", ""); } } } else { DocGet gd = new DocGet(AppParams.connectionstring); if (AsPDF == true) { dok = gd.GetDocAsPDF(dokumentid); } else { dok = gd.GetDoc(dokumentid); } } if (dok.extension.ToString() == "") { return dok; } Logging.DocLog.Info("Dokument-Vorschau", "OnDoc.DocPreview", dokumentid, "", "Dokument-Vorschau"); return dok; } private void pdfViewerControl1_Click(object sender, EventArgs e) { } private void btnFirst_Click(object sender, EventArgs e) { pdfViewerControl1.GoToPageAtIndex(1); SetPageNumber(); } private void btnLast_Click(object sender, EventArgs e) { pdfViewerControl1.GoToPageAtIndex(pdfViewerControl1.PageCount); SetPageNumber(); } private void btnPrevious_Click(object sender, EventArgs e) { if (pdfViewerControl1.CurrentPageIndex != 1) { pdfViewerControl1.GoToPageAtIndex(pdfViewerControl1.CurrentPageIndex - 1); } SetPageNumber(); } private void btnNext_Click(object sender, EventArgs e) { if (pdfViewerControl1.CurrentPageIndex != pdfViewerControl1.PageCount) { pdfViewerControl1.GoToPageAtIndex(pdfViewerControl1.CurrentPageIndex + 1); } SetPageNumber(); } private void timer_Tick(object sender, EventArgs e) { SetPageNumber(); } /// /// Handles Keydown event of PageNumber Textbox /// private void txtPageNumber_KeyDown(object sender, KeyEventArgs e) { int pageNumber = 1; if (txtPageNumber.Text != "") { pageNumber = Convert.ToInt16(txtPageNumber.Text); } if (e.KeyCode == Keys.Enter) { pdfViewerControl1.GoToPageAtIndex(pageNumber); } } #region Helper methods /// /// Loads PDF into PdfViewerControl. /// private void LoadDocument(string fileName) { pdfViewerControl1.Load(fileName); } void SetPageNumber() { txtPageNumber.Text = pdfViewerControl1.CurrentPageIndex.ToString(); } #endregion private void zoomIn_Click(object sender, EventArgs e) { if (zoomComboBox.SelectedIndex != 0) zoomComboBox.SelectedIndex = zoomComboBox.SelectedIndex - 1; } private void zoomComboBox_SelectedIndexChanged(object sender, EventArgs e) { int ZoomLevel = Convert.ToInt32(zoomComboBox.SelectedItem.ToString().Replace("%", "")); pdfViewerControl1.ZoomTo(ZoomLevel); ZoomPercentage = ZoomLevel; } private void zoomOut_Click(object sender, EventArgs e) { if (zoomComboBox.SelectedIndex != zoomComboBox.Items.Count - 1) zoomComboBox.SelectedIndex = zoomComboBox.SelectedIndex + 1; ZoomPercentage = Convert.ToInt32(zoomComboBox.SelectedItem.ToString().Replace("%", "")); } private void FitPage_Click(object sender, EventArgs e) { pdfViewerControl1.ZoomTo(57); ZoomPercentage = 57; zoomComboBox.Text = ZoomPercentage.ToString() + "%"; } private void FitWidth_Click(object sender, EventArgs e) { pdfViewerControl1.ZoomTo(169); ZoomPercentage = 169; zoomComboBox.Text = ZoomPercentage.ToString() + "%"; } } }