레이블이 VB인 게시물을 표시합니다. 모든 게시물 표시
레이블이 VB인 게시물을 표시합니다. 모든 게시물 표시

19. 1. 28.

HTML을 PDF로 저장(C#, VB)

Visual Studio 의 솔루션 탐색기에서 우클릭

Nuget 패키지 관리 -> 찾아보기 -> NReco.PdfGenerator -> 설치


C#
using System.IO;
using System.Text;

namespace HtmlToPdf
{
    class Program
    {
        static void Main(string[] args)
        {
            StringBuilder saveHtml = new StringBuilder();
            saveHtml.Append("<!DOCTYPE html>");
            saveHtml.Append("<html lang=\"ko\">");
            saveHtml.Append("<head>");
            saveHtml.Append("<meta charset=\"utf-8\" />");
            saveHtml.Append("<title>Html을 PDF로</title>");
            saveHtml.Append("</head>");
            saveHtml.Append("<body>");
            saveHtml.Append("<h1>Html을 PDF로</h1><p>좋은하루입니다.</p>");
            saveHtml.Append("</body>");
            saveHtml.Append("</html>");

            // NReco 호출
            var converter = new NReco.PdfGenerator.HtmlToPdfConverter();
            // 저장할 파일명
            string pdfFile = @"d:\test.pdf";
            // 파일이 있을경우 삭제
            if (File.Exists(pdfFile))
            {
                File.Delete(pdfFile);
            }
            // saveHtml을 pdf byte 형식으로 반환
            byte[] f = converter.GeneratePdf(saveHtml.ToString());
            // 파일을 저장
            File.WriteAllBytes(pdfFile, f);
        }
    }
}


VB
Imports System.IO
Imports System.Text

Module Module1
    Sub Main()
        Dim saveHtml As StringBuilder = New StringBuilder
        saveHtml.Append("<!DOCTYPE html>")
        saveHtml.Append("<html lang=""ko"">")
        saveHtml.Append("<head>")
        saveHtml.Append("<meta charset=""utf-8"" />")
        saveHtml.Append("<title>Html을 PDF로</title>")
        saveHtml.Append("</head>")
        saveHtml.Append("<body>")
        saveHtml.Append("<h1>Html을 PDF로</h1><p>좋은하루입니다.</p>")
        saveHtml.Append("</body>")
        saveHtml.Append("</html>")

        ' NReco 호출
        Dim Converter = New NReco.PdfGenerator.HtmlToPdfConverter
        ' 저장할 파일명
        Dim pdfFile As String = "d:\test.pdf"
        ' 파일이 있을경우 삭제
        If File.Exists(pdfFile) Then
            File.Delete(pdfFile)
        End If

        ' saveHtml을 pdf byte 형식으로 반환
        Dim f As Byte() = Converter.GeneratePdf(saveHtml.ToString())
        ' 파일을 저장
        File.WriteAllBytes(pdfFile, f)
    End Sub
End Module

18. 11. 23.

ASP.NET AES 암호화 클래스

C#

using System;
using System.IO;
using System.Security.Cryptography;
using System.Text;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            // 클래스 호출
            Security AES = new Security();
            // 키32자리
            string key = "12345678901234567890123456789012";

            // 암호화 문자열
            string str = "암호화할 문자열입니다.";
            // 암호화된 문자열
            string result1 = AES.AES_encrypt(str, key);

            // 암호화된 문자열 출력
            Console.WriteLine(result1);

            // 복호화된 문자열
            string result2 = AES.AES_decrypt(result1, key);
            // 복호화된 문자열 출력
            Console.WriteLine(result2);

        }
    }

    public class Security
    {
        public string AES_encrypt(string input, string key)
        {
            RijndaelManaged aes = new RijndaelManaged();
            aes.KeySize = 256;
            aes.BlockSize = 128;
            aes.Mode = CipherMode.CBC;
            aes.Padding = PaddingMode.PKCS7;
            aes.Key = Encoding.UTF8.GetBytes(key);
            aes.IV = new Byte[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
            var encrypt = aes.CreateEncryptor(aes.Key, aes.IV);
            Byte[] xBuff = null;
            using (MemoryStream ms = new MemoryStream())
            {
                using (CryptoStream cs = new CryptoStream(ms, encrypt, CryptoStreamMode.Write))
                {
                    Byte[] xXml = Encoding.UTF8.GetBytes(input);
                    cs.Write(xXml, 0, xXml.Length);
                }
                xBuff = ms.ToArray();
            }
            return Convert.ToBase64String(xBuff);
        }

        public string AES_decrypt(string input, string key)
        {
            if (input == "") { return ""; }
            RijndaelManaged aes = new RijndaelManaged();
            aes.KeySize = 256;
            aes.BlockSize = 128;
            aes.Mode = CipherMode.CBC;
            aes.Padding = PaddingMode.PKCS7;
            aes.Key = Encoding.UTF8.GetBytes(key);
            aes.IV = new Byte[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
            var decrypt = aes.CreateDecryptor();
            Byte[] xBuff = null;

            using (MemoryStream ms = new MemoryStream())
            {
                try
                {
                    using (CryptoStream cs = new CryptoStream(ms, decrypt, CryptoStreamMode.Write))
                    {
                        Byte[] xXml = Convert.FromBase64String(input);
                        cs.Write(xXml, 0, xXml.Length);
                    }
                }
                catch
                {
                    return "";
                }
                xBuff = ms.ToArray();
            }
            if (xBuff.Length > 0)
            {
                string Output = Encoding.UTF8.GetString(xBuff);
                return Output.Trim();
            }
            else
            {
                return "";
            }
        }
    }
}






Visual Basic

Imports System.IO
Imports System.Security.Cryptography
Imports System.Text

Module Module1

    Sub Main()
        '클래스 호출
        Dim AES As Security = New Security()
        '키32자리
        Dim key As String = "12345678901234567890123456789012"

        '암호화 문자열
        Dim str As String = "암호화할 문자열입니다."

        '암호화된 문자열
        Dim result1 As String = AES.AES_encrypt(str, key)

        '암호화된 문자열 출력
        Console.WriteLine(result1)

        '복호화된 문자열
        Dim result2 As String = AES.AES_decrypt(result1, key)
        '복호화된 문자열 출력
        Console.WriteLine(result2)
    End Sub

    Private Class Security
        Function AES_encrypt(ByVal input As String, ByVal key As String) As String
            Dim aes As RijndaelManaged = New RijndaelManaged
            aes.KeySize = 256
            aes.BlockSize = 128
            aes.Mode = CipherMode.CBC
            aes.Padding = PaddingMode.PKCS7
            aes.Key = Encoding.UTF8.GetBytes(key)
            aes.IV = New Byte() {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
            Dim encrypt = aes.CreateEncryptor(aes.Key, aes.IV)
            Dim xBuff As Byte() = Nothing
            Using ms As MemoryStream = New MemoryStream()
                Using cs As CryptoStream = New CryptoStream(ms, encrypt, CryptoStreamMode.Write)
                    Dim xXml As Byte() = Encoding.UTF8.GetBytes(input)
                    cs.Write(xXml, 0, xXml.Length)
                End Using
                xBuff = ms.ToArray()
            End Using
            Dim Output As String = Convert.ToBase64String(xBuff)
            Return Output
        End Function

        Function AES_decrypt(ByVal input As String, ByVal key As String) As String
            If input = "" Then Return ""
            Dim aes As RijndaelManaged = New RijndaelManaged
            aes.KeySize = 256
            aes.BlockSize = 128
            aes.Mode = CipherMode.CBC
            aes.Padding = PaddingMode.PKCS7
            aes.Key = Encoding.UTF8.GetBytes(key)
            aes.IV = New Byte() {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
            Dim decrypt = aes.CreateDecryptor()
            Dim xBuff As Byte() = Nothing
            Using ms As MemoryStream = New MemoryStream()
                Try
                    Using cs As CryptoStream = New CryptoStream(ms, decrypt, CryptoStreamMode.Write)
                        Dim xXml As Byte() = Convert.FromBase64String(input)
                        cs.Write(xXml, 0, xXml.Length)
                    End Using
                Catch ex As Exception

                End Try
                xBuff = ms.ToArray()
            End Using
            If IsDBNull(xBuff) Then
                Return ""
            Else
                Dim Output As String = Encoding.UTF8.GetString(xBuff)
                Return Output.Trim()
            End If
        End Function
    End Class
End Module

16. 10. 24.

VB로 MS-SQL 연동

insert,update,delete
Imports System.Data
Imports System.Data.SqlClient
Partial Class _Default
    Inherits System.Web.UI.Page
    Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles MyBase.Load
        Dim connectionString As String
        Dim sqlConn As New SqlConnection
        Dim sqlComm As New SqlCommand
        connectionString = "server = 127.0.0.1,1433; uid = sa; pwd = password; database = member;"
        sqlConn = New SqlConnection(connectionString)
        sqlComm = New SqlCommand()
        sqlComm.Connection = sqlConn
        sqlComm.CommandText = "insert into tbl_member (code,id,addr) values (@param1,@param2,param3)"
        'sqlComm.CommandText = "update tbl_member set addr=@param3 where code=@param1 and id=param2"
        'sqlComm.CommandText = "delete tbl_member where code=@param1 and id=param2"
        sqlComm.Parameters.AddWithValue("@param1", "1")
        sqlComm.Parameters.AddWithValue("@param2", "abc")
        sqlComm.Parameters.AddWithValue("@param3", "서울")
        Try
            sqlConn.Open()
            sqlComm.ExecuteNonQuery()
            sqlConn.Close()
        Catch ex As Exception
            Response.Write(ex)
        End Try
    End Sub
End Class


select
Imports System.Data
Imports System.Data.SqlClient
Partial Class _Default
    Inherits System.Web.UI.Page
    Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles MyBase.Load
        Dim connectionString As String
        Dim sqlConn As New SqlConnection
        Dim sqlComm As New SqlCommand
        Dim dt As DataTable
        dt = New DataTable("MEMBER")
        dt.Columns.Add("code", GetType(Integer))
        dt.Columns.Add("id", GetType(String))
        dt.Columns.Add("addr", GetType(String))
        connectionString = "server = 127.0.0.1,1433; uid = sa; pwd = password; database = member;"
        sqlConn = New SqlConnection(connectionString)
        sqlComm = New SqlCommand()
        sqlComm.Connection = sqlConn
        sqlComm.CommandText = "select top 10 code,id,addr from tbl_member where m_id=@param1 order by m_id asc"
        sqlComm.Parameters.AddWithValue("@param1", "master")
        Try
            sqlConn.Open()
            Dim rs As SqlDataReader = sqlComm.ExecuteReader()
            If rs.HasRows Then
                Do While rs.Read()
                    dt.Rows.Add(rs(0), rs(1), rs(2))
                Loop
            End If
            rs.Close()
            sqlConn.Close()
        Catch ex As Exception
            Response.Write(ex)
        End Try
        Response.Write("<table border=""1""><thead><tr><th>CODE</th><th>ID</th><th>ADDR</th></tr></thead><tbody>")
        For i As Integer = 0 To dt.Rows.Count - 1
            Response.Write(String.Format("<tr><td>{0}</td><td>{1}</td><td>{2}</td></tr>", dt.Rows(i).Item("code"), dt.Rows(i).Item("id"), dt.Rows(i).Item("addr")))
        Next
        Response.Write("</tbody></table>")
    End Sub
End Class

VB.NET Email 전송

    Function eMailCDOSend(MailTitle As String, MailTag As String, Sender As String, Receiver As String, addFile As String) As Boolean
        ' MailTitle : 제목
         ' MailTag : html내용
         ' Sender : 보내는 사람
         ' Receiver : 받는사람

        Dim eMailObject, eMailConfig
        Dim SchemaPath

        eMailObject = Server.CreateObject("CDO.Message")
        eMailConfig = Server.CreateObject("CDO.Configuration")
        SchemaPath = "http://schemas.microsoft.com/cdo/configuration/"
        Try
            With eMailConfig.Fields
                .Item(SchemaPath & "sendusing") = 2  'CDOSendUsingPort
                .Item(SchemaPath & "smtpserver") = "127.0.0.1"  'CDOSendUsingPort [ServerIP]
                .Item(SchemaPath & "smtpserverport") = "325"     'Port
                .Update
            End With
            eMailObject.Configuration = eMailConfig

            eMailConfig = Nothing
            If addFile <> "" Then
                eMailObject.To = Receiver
                eMailObject.From = Sender
                eMailObject.Subject = MailTitle
                eMailObject.HTMLBody = MailTag
                eMailObject.BodyPart.Charset = "ks_c_5601-1987"
                eMailObject.HTMLBodyPart.Charset = "ks_c_5601-1987"
                eMailObject.HTMLBodyPart.ContentTransferEncoding = "quoted-printable"
                eMailObject.AddAttachment(addFile)
                eMailObject.fields.update
                eMailObject.Send
            Else
                With eMailObject
                    .From = Sender
                    .To = Receiver
                    .Subject = MailTitle
                    .HTMLBody = MailTag
                    .BodyPart.Charset = "ks_c_5601-1987"
                    .HTMLBodyPart.Charset = "ks_c_5601-1987"
                    .HTMLBodyPart.ContentTransferEncoding = "quoted-printable"
                    .Send
                End With
           End If
            eMailObject = Nothing
        Catch ex As Exception
            Return False
        End Try
        Return True
    End Function