본문 바로가기

찌신이의 공부

[C#.NET] PDFsharp, PDF 병합, PDF 문서 생성 및 PDF 하나로 만들기

 

이번에 프로젝트를 하면서 사용자가 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 공식 사이트 캡처

오픈소스 라이브러리 인 것을 친절하게 알려주고 있고, 다운로드 메뉴 클릭 시 라이브러리를 다운로드 받을 수 있게 링크를 제공 한다.

기초부터 응용까지 샘플소스를 제공하고 있어, 쉽게 따라하기가 가능하다.

여러가지 샘플 소스 / PDFsharp 공식 사이트 캡처

 

아래는 PDFsharp 의 공식 지원 사이트의 링크이다.

오늘도 즐건 코딩 생활이 되길 바랍니다~!!

 

PDFsharp 바로가기

 

 

PDFsharp & MigraDoc - Home

Welcome to PDFsharpPDFsharp is the Open Source library that easily creates PDF documents from any .NET language. The same drawing routines can be used to create PDF documents, draw on the screen, or send output to any printer. Version 1.30 is now available

pdfsharp.com