You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

300 lines
9.2 KiB

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;
using System.Web.Security;
using Syncfusion.Windows.Forms.PdfViewer;
namespace OnDoc.UIControls
{
public partial class DocPreview : UserControl
{
string PrintDokID = "";
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)
{
PrintDokID= dokumentid;
clsdok dok = new clsdok("", "", "");
if (dokumentid.Length > 25) { dok.dokument = dokumentid; } else { 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;
pdfViewerControl1.ZoomMode = ZoomMode.FitWidth;
}
else
{
}
}
public void show_base64(string image,string Logtext)
{
PrintDokID = "Vorschau Vorlage: " + Logtext; ;
var stream = new MemoryStream(Convert.FromBase64String(image));
if (stream.Length > 0)
{
this.pdfViewerControl1.Load(stream);
this.pdfViewerControl1.Visible = true;
pdfViewerControl1.ZoomMode = ZoomMode.FitWidth;
}
else
{
}
}
public void clear_viewer()
{
pdfViewerControl1.Visible= false;
}
public void Show_Serienbrief_Dokument(int Serienbriefnr, int Eintragnr, string dokumentid)
{
DB db = new DB(AppParams.connectionstring);
db.Get_Tabledata("Select dbo.BinaryToBase64(dokument) from edex_sb_serienbrief_dokument where serienbriefnr=" + Serienbriefnr.ToString() + " and dokumentid='" + dokumentid+"'", false, true);
try
{
var stream = new MemoryStream(Convert.FromBase64String(db.dsdaten.Tables[0].Rows[0][0].ToString()));
if (stream.Length > 0)
{
PrintDokID = "Serienbrief: Nr:" + Serienbriefnr.ToString() + " / " + dokumentid.ToString();
this.pdfViewerControl1.Load(stream);
this.pdfViewerControl1.Visible = true;
pdfViewerControl1.ZoomMode = ZoomMode.FitWidth;
}
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<clsdok>(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();
}
/// <summary>
/// Handles Keydown event of PageNumber Textbox
/// </summary>
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
/// <summary>
/// Loads PDF into PdfViewerControl.
/// </summary>
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.ZoomMode = ZoomMode.FitPage;
}
private void FitWidth_Click(object sender, EventArgs e)
{
pdfViewerControl1.ZoomMode = ZoomMode.FitWidth;
}
private void toolStripButton1_Click(object sender, EventArgs e)
{
pdfViewerControl1.Print(true);
Logging.DocLog.Info("Preview gedruckt", "OnDoc", PrintDokID,"","");
}
public void printpdf()
{
pdfViewerControl1.Print(true);
Logging.DocLog.Info("Preview gedruckt", "OnDoc", PrintDokID, "", "");
}
}
}