[Android] 안드로이드 앱에서 PDF 파일 생성하기 (PDFBox)

앞선 글에서는 iText7 라이브러리를 이용하는 PDF 생성 방법을 알아보았습니다. 하지만 AGPL 라이센스 정책으로는 수익을 목적으로 하는 상용 앱에서는 사용할 수 없습니다. 무료로 사용하고자 한다면 라이브러리를 이용한 소스코드 전체를 공개해야 하기 때문입니다. 따라서, PDF 생성기능을 프로그램 내에서 주된 기능으로 사용한다면 유료로 사용하는 것도 나쁘지 않지만 단순한 PDF 출력만을 사용하고자 한다면 다른 라이브러리를 찾는 것이 좋을것 같습니다. … Read more

[Android] 안드로이드 앱에서 PDF 파일 생성하기 (IText7)

안드로이드 앱에서 PDF 파일로 출력하는 방법을 정리하여 공유합니다. 여러 블로그를 돌아다녀 봤으나 마음에 드는 방법을 찾을 수 없어 itextpdf.com 에서 제공하는 라이브러리를 사용해보았습니다. 하지만 itext5, 7은 사이트상에서 명기하길 AGPL 라이센스 정책을 따른다고 표기되어있습니다. 따라서 상업용 앱개발을 하시는 분들은 유료로 사용하셔야 할 것 같습니다. 이제 사용법을 알아보겠습니다. 새프로젝트를 하나 만들고, 각각의 파일에 다음과 같이 코드를 추가합니다. … Read more

[C#] 윈도우폼의 최소, 최대, 닫기버튼 없애기

Windows form 혹은 WPF에서 윈도우 우측 상단의 닫기 버튼을 없애는 속성은 존재하지 않습니다. 이것을 없애려면 결국 Win32API 방식으로 해결해야 합니다. Window Class의 파생클래스에 다음 소스코드를 추가합니다. 그 다음 Window 파생클래스의 Loaded Event 함수 안에 다음 소스코드를 추가하면 됩니다. [이전글] [C#] SQL Server Compact 3.5 를 활용한 로컬 데이터베이스 연결하기

[C#] SQL Server Compact 3.5 를 활용한 로컬 데이터베이스 연결하기

작은 응용프로그램이나 모바일 프로그램을 개발할때 DB가 필요할때가 있습니다. 그럴땐 보통 엑세스의 MDB나 SqlLite를 많이 쓰시는데요. Microsoft사의 SQL Server Compact 3.5 라는것도 있습니다. 확장자는 SDF로 되어있는 로컬데이터베이스입니다. MSDN의 관련 자료는 http://msdn.microsoft.com/ko-kr/library/aa983321.aspx 위 페이지로 들어가시면 자세한 설명이 나와있습니다. 읽어보시면 드래그앤 드롭으로 윈폼에서 쉽게 DB를 연결할 수 있습니다. 하지만 순수하게 SQL 쿼리를 사용해서 데이터를 가져오는 방법은 나와있지 않아서 … Read more

[C#] 폴더 경로 가져오기

C#에서 윈도우즈의 폴더나 로그온사용자 이름등을 가져다 쓰고 싶을때는 Environment 클래스를 살펴보면 됩니다. 관련 자료가 있는 MSDN 주소는 Environment 클래스 : https://docs.microsoft.com/ko-kr/dotnet/api/system.environment?view=net-5.0 열거형 : https://docs.microsoft.com/ko-kr/dotnet/api/system.environment.specialfolder?view=net-5.0 아래의 예제에 부족함을 느낀다면 위 주소로 들어가셔서 살펴보시면 됩니다. [이전글] [C#] UTF-8과 EUC-KR 인코딩 [다음글] [C#] SQL Server Compact 3.5 를 활용한 로컬 데이터베이스 연결하기

[C#] UTF-8과 EUC-KR 인코딩

C#에서 UTF-8과 EUC-KR을 바이트코드로 변환하는 방법입니다. 항상 개발을 하거나, 혹은 프로그래밍 공부를 하다보면 한글을 어떻게 표현하고, 어떻게 조작해야하는지 고민할때가 많습니다. C#에서도 예외는 아니었는데, 웹브라우저 컨트롤을 쓰다가 한글이 포함된 주소가 먹히지 않는 사이트를 발견하고, 삽질을 시작했더랬습니다…^^ 조금은 어렵게, 혹은 쉽게 문제를 해결하였습니다. 인터넷 주소를 살펴보면 한글이 바이트코드로 전달되는데, UTF-8로 전달될때가 있고, EUC-KR로 전달될때가 있어서 전달되는 바이트코드가 … Read more

[Shell] Linux에서 쉘 프로그래밍을 이용한 통합압축프로그램

리눅스 환경을 처음 접하게되면 가장 막히는 작업은 압축, 압축해제 명령어입니다. 필자만 그런건지는 잘 모르겠지만, 아무리 익혀도 잘 숙지가 되지 않습니다. 리눅스에서는 보통 tar를 이용하여 여러개의 파일을 묶고, bzip, gzip, ZIP, compress 등의 압축포멧으로 압축을 하게 되는데 압축하는 것은 본인이 자주 쓰는 형태로 압축하면 되지만 압축을 풀때는 각각의 명령어가 다르기 때문에 지속적으로 쓰지 않으면 잊어버리기 쉽습니다. … Read more

[Java] 복사생성자를 이용한 깊은 복사, 얕은 복사

개발하다보면 객체를 똑같이 복사해서 사용해야 할 때가 있습니다. 이때 기존 객체와 새로 복사항 객체가 완전히 분리를 시켜야 할때 어떤 것을 신경써야 하는지 알아보겠습니다. 먼저 예제로 복사할 클래스를 만들어 보겠습니다. 위와 같이 Teacher 클래스와 Student 클래스를 만들고, Teacher 클래스가 Student의 리스트를 멤버로 가진다고 가정하겠습니다. 그럼 우리는 Teacher를 이렇게 복사를 하고 싶습니다. 그래서 클래스에 구현을 합니다. 하지만 … Read more

[강의] 코딩 훈련 교본 (코틀린편) – 15. 다음 단계로…

Next… 답답하여 이 글을 먼저 보셨다면 굳건히 의지를 다지시고, 정답을 검색하지 마시고, 고민하여 끝내 혼자서 해결하시기 바랍니다. 만약 개미수열 까지 오롯이 혼자 푸셨다면 드디어 중급자에 길에 오르신걸 축하드립니다. 이제부턴 자유롭게 공부하시면 됩니다. 코틀린의 문법책을 보면서 차근차근 공부하셔도 되고, 알고리즘 문제를 더 풀어보셔도 됩니다. 항상 현실세계를 프로그래밍과 접목시켜서 생각해보시기 바랍니다. 택시기사의 동전통은 스택인가? 은행의 번호표와 윈도위 … Read more

[강의] 코딩 훈련 교본 (코틀린 편) – 14. 여섯번째 퀴즈

본 강의는 코틀린(Kotlin)의 문법강의가 아닌, 프로그래밍 훈련을 위한 강의입니다. 따라서, 본 강의에서 알려드리는 내용만으로 코딩훈련에 임하시기 바랍니다. ※ 퀴즈는 “프로그래머의 길(PWAY)”에서 발췌하였습니다. – 저도 이 책으로 입문했습니다. Kotlin Playground에서 풀기 [Quiz 1] 문제 : 홀수 마방진 프로그램을 작성하시오. 조건 : 예상 결과와 결과값이 같아야 한다. 예상 결과: 홀수 마방진 규칙 마방진에 값을 넣는 방식은 아래와 … Read more