⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ncorehlp.cs

📁 利用C#实现的将Word文件转换为PDF的源代码。其中转换过程分为3步
💻 CS
字号:
/*
 * EBI-Software all rights reserved.
 * webmaster@ebi-software.de
 * This code is only for educational use.
 */
using System;
using System.IO;
using System.Data;
using System.Data.OleDb;
using System.Runtime;
using System.Drawing;
using System.Windows.Forms;
using System.Runtime.InteropServices;

using EBIsagt.Cnv;

namespace EBIsagt.Cnv
{
	public class nCoreHlp
	{
	
		/// <summary>
		/// 
		/// </summary>
		/// <param name="DB"></param>
		public static void EmptyDB(string DB)
		{
			///delete Database-------------------------------------------------------		
			DataTable dt = new DataTable();
			dt.Columns.Add(new DataColumn("ID", Type.GetType("System.String")));

			OleDbConnection aConnection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+ DB);
			OleDbCommand aCommand = new OleDbCommand("select * from DOCS", aConnection);
			try
			{
				aConnection.Open();
				OleDbDataReader aReader = aCommand.ExecuteReader();
				while(aReader.Read())
				{
					DataRow dr = dt.NewRow();
					dr["ID"] = aReader.GetInt32(0).ToString();
					dt.Rows.Add(dr);
				}
				aReader.Close();			
				
				for (int Count=0;Count<dt.Rows.Count;Count++)
				{
					OleDbCommand bCommand = new OleDbCommand("DELETE FROM DOCS WHERE ID = "+dt.Rows[Count]["ID"].ToString(), aConnection);
					OleDbDataReader bReader = bCommand.ExecuteReader();
					bReader.Close();	
				}
				//close the connection Its important.
				aConnection.Close();
			}

				//Some usual exception handling
			catch(OleDbException e)
			{
				nCore.ErrorHalt("Fehler beim Datenbank1 leeren.\n"+e.ToString());
			}
			//////////////////////////////////////////777------
			dt = new DataTable();
			dt.Columns.Add(new DataColumn("ID", Type.GetType("System.String")));

			aConnection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+ DB);
			aCommand = new OleDbCommand("select * from DOCS2", aConnection);
			try
			{
				aConnection.Open();
				OleDbDataReader aReader = aCommand.ExecuteReader();
				while(aReader.Read())
				{
					DataRow dr = dt.NewRow();
					dr["ID"] = aReader.GetInt32(0).ToString();
					dt.Rows.Add(dr);
				}
				aReader.Close();			
				
				for (int Count=0;Count<dt.Rows.Count;Count++)
				{
					OleDbCommand bCommand = new OleDbCommand("DELETE FROM DOCS2 WHERE ID = "+dt.Rows[Count]["ID"].ToString(), aConnection);
					OleDbDataReader bReader = bCommand.ExecuteReader();
					bReader.Close();	
				}
				//close the connection Its important.
				aConnection.Close();
			}

				//Some usual exception handling
			catch(OleDbException e)
			{
				nCore.ErrorHalt("Fehler beim Datenbank2 leeren.\n"+e.ToString());
			}	
		}

		/// <summary>
		/// F黦t in die standadisierte Datenbank (einseitig)
		/// eine binary Datei an der angegbene ID Positon ein
		/// </summary>
		/// <param name="DB">String der Datenbank Datei z.B."c:\\1.mdb"</param>
		/// <param name="Doc">String der Binary Datei die eingef黦t werden soll z.B. "C:\\1.bmp"</param>
		/// <param name="ID">Possition der "Seite" in der DB</param>
		public static void InsertDB1(string DB,string Doc,int ID)
		{
			OleDbConnection aConnection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+ DB);
			try
			{
				aConnection.Open();

				OleDbCommand aCommand =  new OleDbCommand("INSERT INTO DOCS (ID,DOCOMENT) VALUES ("+ID.ToString()+",@BLOBData)", aConnection); //achtung, geht nach 1
				String strBLOBFilePath = Doc;

				FileStream fsBLOBFile =  new FileStream(strBLOBFilePath,FileMode.Open, FileAccess.Read);
				Byte[] bytBLOBData = new Byte[fsBLOBFile.Length]; 
				fsBLOBFile.Read(bytBLOBData, 0, bytBLOBData.Length);
				fsBLOBFile.Close();


				aCommand.Parameters.Add("@BLOBData", OleDbType.Binary, bytBLOBData.Length).Value = bytBLOBData;
				aCommand.ExecuteNonQuery();
				
				aConnection.Close();
			}

			catch(OleDbException e)
			{
				nCore.ErrorHalt("Fehler beim DatenBank einf黦en\n"+e.ToString());
			}

		}
		

		//
		// TODO: InsertDB1-2 zusammenfassen +ID
		//
		/// <summary>
		/// 
		/// </summary>
		/// <param name="DB"></param>
		/// <param name="Doc"></param>
		/// <param name="ID"></param>
		public static void InsertDB2(string DB,string Doc,int ID)
		{
			OleDbConnection aConnection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+ DB);
			try
			{
				aConnection.Open();

				OleDbCommand aCommand =  new OleDbCommand("INSERT INTO DOCS2 (ID,DOCOMENT) VALUES ("+ID.ToString()+",@BLOBData)", aConnection); //achtung, geht nach 1
				String strBLOBFilePath = Doc;

				FileStream fsBLOBFile =  new FileStream(strBLOBFilePath,FileMode.Open, FileAccess.Read);
				Byte[] bytBLOBData = new Byte[fsBLOBFile.Length]; 
				fsBLOBFile.Read(bytBLOBData, 0, bytBLOBData.Length);
				fsBLOBFile.Close();


				aCommand.Parameters.Add("@BLOBData", OleDbType.Binary, bytBLOBData.Length).Value = bytBLOBData;
				aCommand.ExecuteNonQuery();
				
				aConnection.Close();
			}

			catch(OleDbException e)
			{
				nCore.ErrorHalt("Fehler beim DatenBank einf黦en\n"+e.ToString());
			}

		}



		/// <summary>
		/// 
		/// </summary>
		/// <param name="WorkDir"></param>
		/// <param name="Database"></param>
		public static void PPTInsertHelper1(string WorkDir,string Database)
		{
			string[] TempEnt = Directory.GetFiles(WorkDir + "\\temp\\", "*.emf");
			string head = TempEnt[0].Substring(TempEnt[0].LastIndexOf("\\")+1);
			head = head.Substring(0,head.IndexOf("."));
			for (int i=head.Length;i>0;i--)
			{
				if (head[head.Length-1] == '0' ||
					head[head.Length-1] == '1' ||
					head[head.Length-1] == '2' ||
					head[head.Length-1] == '3' ||
					head[head.Length-1] == '4' ||
					head[head.Length-1] == '5' ||
					head[head.Length-1] == '6' ||
					head[head.Length-1] == '7' ||
					head[head.Length-1] == '8' ||
					head[head.Length-1] == '9') {head = head.Substring(0,head.Length-1);}
			}
			
			int eins =1;
			for (int insertnr=1;insertnr<=TempEnt.Length;insertnr++)
			{
				string wmfFile = WorkDir +  "\\temp\\" + head + insertnr.ToString() + ".emf";
				//Console.WriteLine(wmfFile);
				nCoreHlp.InsertDB1(WorkDir + "\\" + Database,wmfFile,eins);eins++;
			}
			Directory.Delete(WorkDir + "\\temp\\", true);
		}

		/// <summary>
		/// 
		/// </summary>
		/// <param name="WorkDir"></param>
		/// <param name="Database"></param>
		public static void PPTInsertHelper2(string WorkDir,string Database)
		{
			string[] TempEnt = Directory.GetFiles(WorkDir + "\\temp\\", "*.emf");
			string head = TempEnt[0].Substring(TempEnt[0].LastIndexOf("\\")+1);
			head = head.Substring(0,head.IndexOf("."));
			for (int i=head.Length;i>0;i--)
			{
				if (head[head.Length-1] == '0' ||
					head[head.Length-1] == '1' ||
					head[head.Length-1] == '2' ||
					head[head.Length-1] == '3' ||
					head[head.Length-1] == '4' ||
					head[head.Length-1] == '5' ||
					head[head.Length-1] == '6' ||
					head[head.Length-1] == '7' ||
					head[head.Length-1] == '8' ||
					head[head.Length-1] == '9') {head = head.Substring(0,head.Length-1);}
			}
			
			int eins =1;
			int zwei =1;
			for (int insertnr=1;insertnr<=TempEnt.Length;insertnr++)
			{
				string wmfFile = WorkDir +  "\\temp\\" + head + insertnr.ToString() + ".emf";
				//Console.WriteLine(wmfFile);
				if ((insertnr % 2) == 1) 
				{
					nCoreHlp.InsertDB1(WorkDir + "\\" + Database,wmfFile,eins);eins++;}
				else 
				{
					nCoreHlp.InsertDB2(WorkDir + "\\" + Database,wmfFile,zwei);zwei++;}
			}
			Directory.Delete(WorkDir + "\\temp\\", true);
		}
	
		
	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -