이번에 프로젝트를 하면서 사용자가 PDF 문서를 각 ITEM 별로 업로드를 하고, 최종적으로 업로드 한 PDF 파일들을 하나의 PDF 파일로 만들어서 다운로드 받을 수 있게 해달라는 요청이 있었다.
여러 오픈소스 라이브러리를 검색 하던 중 PDFsharp 이라는 아주 괜찮은 라이브러리를 발견하고, 공부를 하기 시작했다. 해당 사이트에 들어가게 되면 다운로드 및 사용법에 대한 샘플도 다양하게 지원한다.
그리고 아주 잘~ 작동이 된다.
<PDFsharp 특징>
1. Open Source 라이브러리
2. .NET 에 쉽게 적용 가능
3. 적용 사례가 많음
4. 한글 지원 안 함
PDFsharp 의 특징은 위와 같이 무료 이면서 쉽고 그리고 구글링 시 예제가 많다는 것이다.
그리고 아주 중요한 것이 이미 만들어진 PDF 문서가 아닌 PDF 문서를 PDFsharp 를 통하여 페이지를 만들경우,
한글은 지원을 하지 않는다!!
우리의 프로젝트 고객님은 업로드한 PDF를 이어 붙히는것만 원하는 것이 아닌 사이사이에 간지의 형태로 그 파일의 파일명을 타이틀처럼 간지에 기입하여 병합을 요구하였다. 이럴경우, PDF 파일명이 한글로 하였을 경우 병합 시 한글은 깨짐 현상이 발생한다.
한글로 페이지를 만들어야 한다면 한글이 지원되는 다른 라이브러리로 PDF 한글 페이지를 만들어서 PDF 문서를 생성하고, PDFsharp 를 통하여 문서를 병합하는 것을 추천한다.
한글 페이지 작성에 대한 포스팅은 차후에 다시 알아보겠다.
아래는 기본적인 PDF 병합 예제 소스이다.
protected void btnTest_Click(object sender, EventArgs e)
{
// Open the input files
string filename1 = "D:/HelloWorld.pdf";
string filename2 = "D:/MP_Report.pdf";
PdfDocument inputDocument1 = PdfReader.Open(filename1, PdfDocumentOpenMode.Import);
PdfDocument inputDocument2 = PdfReader.Open(filename2, PdfDocumentOpenMode.Import);
// Create the output document
PdfDocument outputDocument = new PdfDocument();
CopyPages(inputDocument1, outputDocument);
CopyPages(inputDocument2, outputDocument);
// Save the document...
const string filename = "D:/CompareDocument1_tempfile.pdf";
outputDocument.Save(filename);
}
protected void CopyPages(PdfDocument from, PdfDocument to)
{
for (int i = 0; i < from.PageCount; i++)
{
to.AddPage(from.Pages[i]);
}
}
이렇게 간단히 PDF 문서를 병합해서 하나의 PDF 문서로 만들어 준다.
그리고 PDFsharp 의 사이트로 가면 'Hello, World!' 예제 부터 시작하여 여러 샘플 예제가 존재하기에 무난하게 시스템에 적용이 가능하다.
오픈소스 라이브러리 인 것을 친절하게 알려주고 있고, 다운로드 메뉴 클릭 시 라이브러리를 다운로드 받을 수 있게 링크를 제공 한다.
기초부터 응용까지 샘플소스를 제공하고 있어, 쉽게 따라하기가 가능하다.
아래는 PDFsharp 의 공식 지원 사이트의 링크이다.
오늘도 즐건 코딩 생활이 되길 바랍니다~!!
'찌신이의 공부' 카테고리의 다른 글
[MS SQL] Table Scan 수행 속도에 따라 Index 필요 분석 및 쿼리 생성 (0) | 2019.12.24 |
---|---|
[MS SQL] SSMS DB 링크 생성하기 (0) | 2019.12.24 |
Visual Studio 삭제 후 재 설치 시 설치경로 수정 불가 해결방법 (0) | 2019.12.24 |
[Oracle] JOIN UPDATE - 오라클 JOIN 하여 UPDATE 하기. (0) | 2019.11.25 |
[DBeaver ] 디비버 단축키 정리 (0) | 2019.11.22 |