using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using iTextSharp.text.pdf;
using iTextSharp.text;
using iTextSharp.text.xml;
using iTextSharp.text.pdf.events;
using System.IO;
public class FileAttachmentEvent : PdfPCellEventForwarder
{
protected PdfWriter writer;
protected PdfFileSpecification fs;
protected String description;
public FileAttachmentEvent(PdfWriter Writer, PdfFileSpecification Fs, String Description)
{
this.writer = Writer;
this.fs = Fs;
this.description = Description;
}
public void cellLayout(PdfPCell cell, Rectangle position, PdfContentByte[] canvases)
{
try
{
PdfAnnotation annonation = PdfAnnotation.CreateFileAttachment(writer, new Rectangle(position.GetLeft(20f), position.GetTop(15f),
position.GetLeft(5f), position.GetTop(5f)), description, fs);
annonation.Name = description;
writer.AddAnnotation(annonation);
}
catch (IOException)
{
throw;
}
}
}
26 Temmuz 2011 Salı
Compress JSON Decompress JSON
using System.Text;
using System.IO;
using System.IO.Compression;
using System.IO;
using System.IO.Compression;
public static void CompressJson(string json, string path)
{
byte[] bytes = Encoding.UTF8.GetBytes(json);
using (FileStream fs = new FileStream(path, FileMode.Create, FileAccess.Write))
{
using (GZipStream gzs = new GZipStream(fs, CompressionMode.Compress))
{
gzs.Write(bytes, 0, bytes.Length);
}
}
}
public static string DecompressJson(string path){
byte[] bytes = Encoding.UTF8.GetBytes(json);
using (FileStream fs = new FileStream(path, FileMode.Create, FileAccess.Write))
{
using (GZipStream gzs = new GZipStream(fs, CompressionMode.Compress))
{
gzs.Write(bytes, 0, bytes.Length);
}
}
}
{
using (FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read))
{
using (GZipStream gzs = new GZipStream(fs, CompressionMode.Decompress))
{
return gzs.GetString(Encoding.UTF8);
}
}
}
TripleDES Encryption Methods
TripleDES de şifreleme ve deşifreleme yapmak için yazmış olduğum method...
using System;
using System.IO;
using System.Security.Cryptography;
using System.Text;
public static class TripleDESEncryption
{
public static string Encrypt(string Input, string Key)
{
if (string.IsNullOrEmpty(Input) || string.IsNullOrEmpty(Key))
{
throw new ArgumentNullException("The input/key string can not be empty.");
}
ASCIIEncoding Encoding = new ASCIIEncoding();
byte[] Hash = Encoding.GetBytes(Key);
byte[] KeyArray = new byte[24];
byte[] Key2Array = new byte[8];
for (int x = 0; x < 24; ++x)
{
KeyArray[x] = Hash[x];
}
for (int x = 0; x < 8; ++x)
{
Key2Array[x] = Hash[x + 8];
}
byte[] Text = null;
TripleDESCryptoServiceProvider Encryptor = new TripleDESCryptoServiceProvider();
using (MemoryStream Stream = new MemoryStream())
{
using (CryptoStream DESStream = new CryptoStream(Stream, Encryptor.CreateEncryptor(KeyArray, Key2Array), CryptoStreamMode.Write))
{
using (StreamWriter Writer = new StreamWriter(DESStream))
{
Writer.Write(Input);
Writer.Flush();
DESStream.FlushFinalBlock();
Writer.Flush();
Text = Stream.GetBuffer();
}
}
}
Encryptor.Clear();
return Convert.ToBase64String(Text, 0, (int)Text.Length);
}
public static string Decrypt(string Input, string Key)
{
if (string.IsNullOrEmpty(Input) || string.IsNullOrEmpty(Key))
{
throw new ArgumentNullException("The input/key string can not be empty.");
}
ASCIIEncoding Encoding = new ASCIIEncoding();
byte[] Hash = Encoding.GetBytes(Key);
byte[] KeyArray = new byte[24];
byte[] Key2Array = new byte[8];
for (int x = 0; x < 24; ++x)
{
KeyArray[x] = Hash[x];
}
for (int x = 0; x < 8; ++x)
{
Key2Array[x] = Hash[x + 8];
}
string Text = "";
TripleDESCryptoServiceProvider Decryptor = new TripleDESCryptoServiceProvider();
using (MemoryStream Stream = new MemoryStream(Convert.FromBase64String(Input)))
{
using (CryptoStream DESStream = new CryptoStream(Stream, Decryptor.CreateDecryptor(KeyArray, Key2Array), CryptoStreamMode.Read))
{
using (StreamReader Reader = new StreamReader(DESStream))
{
Text = Reader.ReadToEnd();
}
}
}
Decryptor.Clear();
return Text;
}
}
21 Temmuz 2011 Perşembe
Convert String to 64bit Integer
static Int64 GetInt64HashCode(string strText)
{
Int64 hashCode = 0;
if (!string.IsNullOrEmpty(strText))
{
byte[] byteContents = Encoding.Unicode.GetBytes(strText);
System.Security.Cryptography.SHA256 hash =
new System.Security.Cryptography.SHA256CryptoServiceProvider();
byte[] hashText = hash.ComputeHash(byteContents);
Int64 hashCodeStart = BitConverter.ToInt64(hashText, 0);
Int64 hashCodeMedium = BitConverter.ToInt64(hashText, 8);
Int64 hashCodeEnd = BitConverter.ToInt64(hashText, 24);
hashCode = hashCodeStart ^ hashCodeMedium ^ hashCodeEnd;
}
return (hashCode);
}
Itextsharp swf view methods
Itextsharp dll i kullanarak oluşturduğumuz pdf te istenilen swf dosyaları oynatmak için yazmış olduğum method örneği
public void PdfFlash(string file)
{
string day = DateTime.Now.ToString("dd/MM/yyyy");
Document document = new Document();
PdfWriter writer = PdfWriter.GetInstance(document, new FileStream(file, FileMode.Create));
writer.SetPdfVersion(PdfWriter.PDF_VERSION_1_7);
writer.AddDeveloperExtension(PdfDeveloperExtension.ADOBE_1_7_EXTENSIONLEVEL3);
document.Open();
RichMediaAnnotation richMedia = new RichMediaAnnotation(writer, new Rectangle(36, 400, 559, 806));
PdfFileSpecification fs = PdfFileSpecification.FileEmbedded(writer, @"C:\1.swf", "1.swf", null);
PdfIndirectReference asset = richMedia.AddAsset("1.swf", fs);
RichMediaConfiguration configuration = new RichMediaConfiguration(PdfName.FLASH);
RichMediaInstance instance = new RichMediaInstance(PdfName.FLASH);
RichMediaParams flashVars = new RichMediaParams();
String vars = day;
flashVars.FlashVars = vars;
instance.Params = flashVars;
instance.Asset = asset;
configuration.AddInstance(instance);
PdfIndirectReference configurationRef = richMedia.AddConfiguration(configuration);
RichMediaActivation activation = new RichMediaActivation();
activation.Configuration = configurationRef;
richMedia.Activation = activation;
PdfAnnotation richMediaAnnotation = richMedia.CreateAnnotation();
richMediaAnnotation.Flags = PdfAnnotation.FLAGS_PRINT;
writer.AddAnnotation(richMediaAnnotation);
document.Close();
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using iTextSharp.text.pdf;
using iTextSharp.text;
using iTextSharp.text.xml;
using System.IO;
using System.Xml;
using iTextSharp.text.pdf.codec;
using iTextSharp.text.pdf.parser;
using iTextSharp.text.pdf.richmedia;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using iTextSharp.text.pdf;
using iTextSharp.text;
using iTextSharp.text.xml;
using System.IO;
using System.Xml;
using iTextSharp.text.pdf.codec;
using iTextSharp.text.pdf.parser;
using iTextSharp.text.pdf.richmedia;
{
string day = DateTime.Now.ToString("dd/MM/yyyy");
Document document = new Document();
PdfWriter writer = PdfWriter.GetInstance(document, new FileStream(file, FileMode.Create));
writer.SetPdfVersion(PdfWriter.PDF_VERSION_1_7);
writer.AddDeveloperExtension(PdfDeveloperExtension.ADOBE_1_7_EXTENSIONLEVEL3);
document.Open();
RichMediaAnnotation richMedia = new RichMediaAnnotation(writer, new Rectangle(36, 400, 559, 806));
PdfFileSpecification fs = PdfFileSpecification.FileEmbedded(writer, @"C:\1.swf", "1.swf", null);
PdfIndirectReference asset = richMedia.AddAsset("1.swf", fs);
RichMediaConfiguration configuration = new RichMediaConfiguration(PdfName.FLASH);
RichMediaInstance instance = new RichMediaInstance(PdfName.FLASH);
RichMediaParams flashVars = new RichMediaParams();
String vars = day;
flashVars.FlashVars = vars;
instance.Params = flashVars;
instance.Asset = asset;
configuration.AddInstance(instance);
PdfIndirectReference configurationRef = richMedia.AddConfiguration(configuration);
RichMediaActivation activation = new RichMediaActivation();
activation.Configuration = configurationRef;
richMedia.Activation = activation;
PdfAnnotation richMediaAnnotation = richMedia.CreateAnnotation();
richMediaAnnotation.Flags = PdfAnnotation.FLAGS_PRINT;
writer.AddAnnotation(richMediaAnnotation);
document.Close();
}
Rijndael Extensions Methods
Rijndael şifreleme tekniniğinin kullanımı için extensions method haline getirilmiş hali...
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Security.Cryptography;
using System.IO;
namespace EncryptionExtensions
{
public class EncryptionExtensions
{
private byte[] Encrypt(byte[] inputData, byte[] pwd, byte[] value)
{
MemoryStream stream = new MemoryStream();
Rijndael rij = Rijndael.Create();
rij.Key = pwd;
rij.IV = value;
CryptoStream cStream = new CryptoStream(stream, rij.CreateEncryptor(), CryptoStreamMode.Write);
cStream.Write(inputData, 0, inputData.Length);
cStream.Close();
byte[] encryptedData = stream.ToArray();
return encryptedData;
}
public string Encrypt(string inputData, string pwd, int bits)
{
byte[] Bytes = System.Text.Encoding.Unicode.GetBytes(inputData);
PasswordDeriveBytes pwdBytes = new PasswordDeriveBytes(pwd, new byte[] { 0x10, 0x40, 0x00, 0x34, 0x1A, 0x70, 0x01, 0x34, 0x56, 0xFF, 0x99, 0x77, 0x4C, 0x22, 0x49 });
if (bits == 128)
{
byte[] encryptedData = Encrypt(Bytes, pwdBytes.GetBytes(16), pwdBytes.GetBytes(16));
return Convert.ToBase64String(encryptedData);
}
else if (bits == 192)
{
byte[] encryptedData = Encrypt(Bytes, pwdBytes.GetBytes(24), pwdBytes.GetBytes(16));
return Convert.ToBase64String(encryptedData);
}
else if (bits == 256)
{
byte[] encryptedData = Encrypt(Bytes, pwdBytes.GetBytes(32), pwdBytes.GetBytes(16));
return Convert.ToBase64String(encryptedData);
}
else
{
// append all bits
return string.Concat(bits);
}
}
private byte[] Decrypt(byte[] outputData, byte[] pwd, byte[] value)
{
MemoryStream stream = new MemoryStream();
Rijndael rij = Rijndael.Create();
rij.Key = pwd;
rij.IV = value;
CryptoStream cStream = new CryptoStream(stream, rij.CreateDecryptor(), CryptoStreamMode.Write);
cStream.Write(outputData, 0, outputData.Length);
cStream.Close();
byte[] decryptedData = stream.ToArray();
return decryptedData;
}
public string Decrypt(string str, string pwd, int bits)
{
byte[] Bytes = Convert.FromBase64String(str);
PasswordDeriveBytes pwdBytes = new PasswordDeriveBytes(pwd,
new byte[] { 0x10, 0x40, 0x00, 0x34, 0x1A, 0x70, 0x01, 0x34, 0x56, 0xFF, 0x99, 0x77, 0x4C, 0x22, 0x49 });
if (bits == 128)
{
byte[] decryptedData = Decrypt(Bytes, pwdBytes.GetBytes(16), pwdBytes.GetBytes(16));
return System.Text.Encoding.Unicode.GetString(decryptedData);
}
else if (bits == 192)
{
byte[] decryptedData = Decrypt(Bytes, pwdBytes.GetBytes(24), pwdBytes.GetBytes(16));
return System.Text.Encoding.Unicode.GetString(decryptedData);
}
else if (bits == 256)
{
byte[] decryptedData = Decrypt(Bytes, pwdBytes.GetBytes(32), pwdBytes.GetBytes(16));
return System.Text.Encoding.Unicode.GetString(decryptedData);
}
else
{
return string.Concat(bits);
}
}
}
}
Windows Service Extensions Methods
Windows service lerinde yaptığımız işlemleri extensions method halinde yazdım iyi günlerde kullanmanız dileğiyle...
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceProcess;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceProcess;
{
public class WindowsServices
{
#region Start Service
public static void StartService(string serviceName, int timeoutMilliseconds)
{
ServiceController service = new ServiceController(serviceName);
try
{
TimeSpan timeout = TimeSpan.FromMilliseconds(timeoutMilliseconds);
service.Start();
service.WaitForStatus(ServiceControllerStatus.Running, timeout);
}
catch
{
throw;
}
}
#endregion
#region Shutdown Service
public static void ShutdownService(string serviceName, int timeoutMilliseconds)
{
ServiceController service = new ServiceController(serviceName);
try
{
TimeSpan timeout = TimeSpan.FromMilliseconds(timeoutMilliseconds);
service.Close();
service.WaitForStatus(ServiceControllerStatus.Stopped, timeout);
}
catch (Exception)
{
throw;
}
}
#endregion
#region Stop Service
public static void StopService(string serviceName, int timeoutMilliseconds)
{
ServiceController service = new ServiceController(serviceName);
try
{
TimeSpan timeout = TimeSpan.FromMilliseconds(timeoutMilliseconds);
service.Stop();
service.WaitForStatus(ServiceControllerStatus.Stopped, timeout);
}
catch
{
throw;
}
}
#endregion
#region Restart Service
public static void RestartService(string serviceName, int timeoutMilliseconds)
{
ServiceController service = new ServiceController(serviceName);
try
{
int millisec1= Environment.TickCount;
TimeSpan timeout = TimeSpan.FromMilliseconds(timeoutMilliseconds);
service.Stop();
service.WaitForStatus(ServiceControllerStatus.Stopped, timeout);
int millisec2 = Environment.TickCount;
timeout = TimeSpan.FromMilliseconds(timeoutMilliseconds - (millisec2 - millisec1));
service.Start();
service.WaitForStatus(ServiceControllerStatus.Running, timeout);
}
catch
{
throw;
}
}
#endregion
#region Get List of Windows Services
public static bool IsServiceInstalled(string serviceName)
{
ServiceController[] services = ServiceController.GetServices();
foreach (ServiceController service in services)
{
if (service.ServiceName == serviceName)
return true;
}
return false;
}
#endregion
}
}
5 Temmuz 2011 Salı
Itextsharp'da 3d işlemleri
u3d dosya türlerini itextsharp kütüphanesini kullanarak açmamıza yarayan yazmış olduğum bir class güle güle kullanmanız dileğiyle.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using iTextSharp.text.pdf;
using iTextSharp.text;
using System.IO;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using iTextSharp.text.pdf;
using iTextSharp.text;
using System.IO;
{
Document doc = new Document();
PdfWriter writer = PdfWriter.GetInstance(doc, new FileStream(filePath,FileMode.Create));
doc.Open();
Rectangle rect = new Rectangle(100, 400, 500, 800);
rect.Border = Rectangle.BOX;
rect.BorderWidth = 0.5F;
rect.BorderColor = new BaseColor(0xFF, 0x00, 0x00);
doc.Add(rect);
PdfStream stream3D = new PdfStream(new FileStream(Files3D, FileMode.Open), writer);
stream3D.Put(PdfName.TYPE, new PdfName("3D"));
stream3D.Put(PdfName.SUBTYPE, new PdfName("U3D"));
stream3D.FlateCompress();
PdfIndirectObject streamObject = writer.AddToBody(stream3D);
stream3D.WriteLength();
PdfDictionary dict3D = new PdfDictionary();
dict3D.Put(PdfName.TYPE, new PdfName("3DView"));
dict3D.Put(new PdfName("XN"), new PdfString("Default"));
dict3D.Put(new PdfName("IN"), new PdfString("Unnamed"));
dict3D.Put(new PdfName("MS"), PdfName.M);
dict3D.Put(new PdfName("C2W"),
new PdfArray(new float[] { 1, 0, 0, 0, 0, -1, 0, 1, 0, 3, -235, 28 }));
dict3D.Put(PdfName.CO, new PdfNumber(235));
PdfIndirectObject dictObject = writer.AddToBody(dict3D);
PdfAnnotation annot = new PdfAnnotation(writer, rect);
annot.Put(PdfName.CONTENTS, new PdfString("3D Model"));
annot.Put(PdfName.SUBTYPE, new PdfName("3D"));
annot.Put(PdfName.TYPE, PdfName.ANNOT);
annot.Put(new PdfName("3DD"), streamObject.IndirectReference);
annot.Put(new PdfName("3DV"), dictObject.IndirectReference);
PdfAppearance ap = writer.DirectContent.CreateAppearance(rect.Width, rect.Height);
annot.SetAppearance(PdfAnnotation.APPEARANCE_NORMAL, ap);
annot.SetPage();
writer.AddAnnotation(annot);
// step 5
doc.Close();
}
Kullanımı :
Pdf3D pdf3d = new Pdf3D();pdf3d.ThreeDPdf("C:\\3d.pdf", "c:\\teapot.u3d");
Kaydol:
Kayıtlar (Atom)