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
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, "", "");
|
|
}
|
|
}
|
|
}
|