본문 바로가기

전체 글300

[C++/winrt] Windows::Data::Pdf 이용하여 PDF 파일을 Floyd-Steinberg Dithering 처리 후 LibTiff를 이용하여 MultiTiFF로 저장 예제 입니다. 품질 개선 방안을 계속 모색 해보고 있습니다...! Console 프로그램으로 실행 예시는 아래와 같습니다.#> WindowDataPdf.exe "1" "C:\Users\user\Downloads\test.pdf" "C:\Users\user\Downloads" #include "pch.h"#include #include #include #include #include namespace winrt { using namespace Windows::Foundation; using namespace Windows::Storage; using namespace Windows::Data::Pdf; using namespace Windows::Graphics::Imaging;}winrt::Win.. 2024. 11. 20.
Dialog 생성 AfxBeginThread 이용 Thread 호출 예제 입니다. Thread는 계속 반복 하지 않고 , OnInitDialog가 호출 된 후 한번 만 실행되도록 테스트 하였습니다. ex) CPrinterSetDlg.hpublic: CWinThread* m_pThread; static UINT ThreadFunction(LPVOID _mothod); virtual BOOL OnInitDialog(); ex) CPrinterSetDlg.h/// /// AfxBeginThread를 이용하여 Thread를 생성 하고 호출 합니다./// /// BOOL CPrinterSetDlg::OnInitDialog(){ CDialogEx::OnInitDialog(); // TODO: 여기에 추가 초기화 작업을 추가합니다. m_pThread = AfxBeginThread(ThreadF.. 2024. 11. 9.
[MFC Console] HwpAutomation을 이용한 Print 진행 예제 입니다. [MFC Console] HwpAutomation을 이용한 Print 진행 예제 입니다. 출처 : https://developer.hancom.com/hwpautomation Hwp 파일에 대하여 오픈 메서드를 호출 할때 마다 보안승인을 하겠냐는 메시지 박스가 발생 하는 부분에 대하여 ,보안 승인 모듈에 대하여 Registry에 등록되어있는지 여부를 체크 하고 등록되어 있지 않다면 등록 시도 하게 끔 하였습니다.#include "pch.h"#include "framework.h"#include #include #include #include "CHwpObject.h"#include "CAction.h"#include "CParameterSet.h"#include "CSet.h"#include "CPrin.. 2024. 10. 20.
node net.connect를 이용하여 Blocking TCP Socket Message Send, Receive 테스트 진행 nest.js 가 클라이언트인 상황으로 , TCP Socket을 Listening을 하고 있는 서버에 메시지 전송 예제 입니다.  1. nestjs Client class 작성 진행import { Logger } from "@nestjs/common";export class TcpClient { static logger = new Logger(TcpClient.name); static net = require('net'); static initTcpConnection() { const client = new this.net.Socket(); let result; client.connect(35000 , 'localhost' , (data : stri.. 2024. 10. 9.
SHA256 암호화 알고리즘으로 Text 암호화 예제 (1) 암호화 역할 함수를 작성 하였습니다.//test.encrypt.helper.tsexport class TestEncryptHelper { static async encrypt(password: string): Promise { const { createHash } = require('crypto'); return createHash('sha256').update(`${password}[SaltValue]`).digest('hex'); }} (2) 단위 테스트를 진행해보기 위하여 작성 하였습니다.//test.encrypt.helper.spec.tsimport { TestEncryptHelper } from './test.encrypt.helper' describe('encryptTes.. 2024. 9. 30.
[Ubuntu 20.04] SQL Server Express 설치 진행 및 BAK File Recovery 테스트 진행 출처 : https://learn.microsoft.com/ko-kr/sql/linux/quickstart-install-connect-ubuntu?view=sql-server-ver16&tabs=ubuntu2004 Ubuntu: SQL Server on Linux 설치 - SQL Server이 빠른 시작에서는 Ubuntu에 SQL Server 2017 이상 버전을 설치한 다음, sqlcmd를 사용하여 데이터베이스를 만들고 쿼리하는 방법을 보여 줍니다.learn.microsoft.com 체감은 Windows 에 설치한 버젼 보다 성능이 더 빠른거 같습니다 -0-; 1. 공용 리포지토리 GPG 키를 가져옵니다. $ curl https://packages.microsoft.com/keys/microsoft... 2024. 9. 24.
[WPF] Enum Type 을 ComboBox에 ItemSource로 바인딩 예제 (1). ComboBox에 정의할 Enum을 바인딩 합니다. public enum FaxTransMethodType { [Description("즉시 전송")] Immediately, [Description("예약 전송")] Reservation } (2). Converter를 작성 합니다.using GmSFaxAgentWpf.RestApis;using System;using System.Collections.Generic;using System.ComponentModel;using System.Globalization;using System.Reflection;using System.Windows.Data;namespace GmSFaxA.. 2024. 9. 16.
[JAVA] java.lang.reflect.Field 이용한 ValueObject -> JSONObject 변환 예제 입니다. [JAVA] java.lang.reflect.Field 이용한 ValueObject -> JSONObject 변환 예제 입니다. public JSONObject convertVO(Object vo) throws JSONException { JSONObject jsonObject = new JSONObject(); try { String rowData = "{"; for(Field field : vo.getClass().getDeclaredFields()) { field.setAccessible(true); String value = String.valueOf(field.. 2024. 9. 3.
[C#] Interop 한 Excel API 가 정상적으로 종료 되지 않을 때 처리 방안 [C#] Interop 한 Excel API 가 정상적으로 종료 되지 않을 때 처리 방안 WorkBook , WorkBooks 에 대하여 Close 메서드를 호출 하고ExcelApp를 Quit 메서드를 호출 , Marshal.FinalReleaseComObject 를 호출 하여도 EXCEL.exe가 종료되지 않았습니다 . 도저히 방법이 없어 , GetWindowThreadProcessId WinAPI를 이용하여 PID를 획득한 후 Process를 Kill 처리 하였습니다. [DllImport("user32.dll")]public static extern Int32 GetWindowThreadProcessId(IntPtr hWnd, out uint lpdwProcessId);IntPtr ptr = new .. 2024. 9. 3.