다른 파일 형식을 PDF로 변환하기 in .NET

개요

이 문서에서는 C#을 사용하여 다양한 다른 유형의 파일 형식을 PDF로 변환하는 방법에 대해 설명합니다. 다음 주제를 다룹니다.

다음 코드 스니펫은 Aspose.PDF.Drawing 라이브러리와 함께 사용할 수도 있습니다.

형식: EPUB

형식: Markdown

형식: MD

형식: PCL

형식: Text

형식: TXT

형식: Plain Text

포맷: Preformatted TXT

포맷: Pre Text

포맷: XPS

EPUB을 PDF로 변환

Aspose.PDF for .NET을 사용하면 EPUB 파일을 PDF 형식으로 쉽게 변환할 수 있습니다.

EPUB은 국제 디지털 출판 포럼(IDPF)에서 제공하는 무료이자 개방된 전자책 표준입니다. EPUB(전자 출판을 위한 약어)는 국제 디지털 출판 포럼(IDPF)에서 제공하는 무료이자 개방된 전자책 표준입니다.

EPUB는 고정 레이아웃 콘텐츠도 지원합니다. 이 포맷은 출판사와 변환 업체가 내부적으로 사용할 수 있는 단일 포맷으로 의도되었으며, 배포 및 판매를 위해서도 사용됩니다. 이는 오픈 이북 표준을 대체합니다. EPUB 3 버전은 콘텐츠의 패키징을 위한 표준화된 최선의 관행, 연구, 정보 및 이벤트를 위한 주요 도서 업계 협회인 Book Industry Study Group(BISG)에 의해서도 지지받고 있습니다.

단계: C#에서 EPUB를 PDF로 변환 단계: C#에서 EPUB를 PDF로 변환하기

  1. EpubLoadOptions 클래스의 인스턴스를 생성합니다.
  2. 출처 파일명과 옵션을 명시하여 Document 클래스의 인스턴스를 생성합니다.
  3. 원하는 파일 이름으로 문서를 저장합니다.

다음 코드 스니펫은 C#을 사용하여 EPUB 파일을 PDF 형식으로 변환하는 방법을 보여줍니다.

public static void ConvertEPUBtoPDF()
{
    EpubLoadOptions option = new EpubLoadOptions();
    Document pdfDocument = new Document(_dataDir + "WebAssembly.epub", option);
    pdfDocument.Save(_dataDir + "epub_test.pdf");
}

또한 변환 시 페이지 크기를 설정할 수 있습니다. 새 페이지 크기를 정의하려면 SizeF 객체를 생성하고 EpubLoadOptions 생성자에 전달합니다.

public static void ConvertEPUBtoPDFAdv()
{
    EpubLoadOptions option = new EpubLoadOptions(new SizeF(1190, 1684));
    Document pdfDocument = new Document(_dataDir + "WebAssembly.epub", option);
    pdfDocument.Save(_dataDir + "epub_test.pdf");
}

Markdown을 PDF로 변환

이 기능은 버전 19.6 이상에서 지원됩니다.

Aspose.PDF for .NET은 입력 Markdown 데이터 파일을 기반으로 PDF 문서를 생성하는 기능을 제공합니다. Markdown을 PDF로 변환하기 위해 DocumentMdLoadOptions을 사용하여 초기화해야 합니다.

다음 코드 스니펫은 Aspose.PDF 라이브러리를 사용하여 이 기능을 사용하는 방법을 보여줍니다:

단계: C#에서 Markdown을 PDF로 변환 | 단계: C#에서 마크다운을 PDF로 변환 | 단계: C#에서 MD를 PDF로 변환

  1. MdLoadOptions 클래스의 인스턴스를 생성합니다.
  2. 원본 파일명과 옵션을 명시하여 Document 클래스의 인스턴스를 생성합니다.
  3. 원하는 파일 이름으로 문서를 저장합니다.
// 문서 디렉토리 경로.
string dataDir = RunExamples.GetDataDir_AsposePdf_DocumentConversion();
// 마크다운 문서 열기
Document pdfDocument= new Document(dataDir + "sample.md", new MdLoadOptions());
// PDF 형식으로 문서 저장
pdfDocument.Save(dataDir + "MarkdownToPDF.pdf");

PCL을 PDF로 변환

PCL (Printer Command Language)은 표준 프린터 기능에 접근하기 위해 개발된 Hewlett-Packard 프린터 언어입니다. PCL (Printer Command Language)은 표준 프린터 기능에 접근하기 위해 개발된 Hewlett-Packard 프린터 언어입니다.

현재는 PCL5 및 이전 버전만 지원됩니다

``` ```
  • 사용자 정의 심볼 세트.
  • 명령어 세트 지원 예외 설명
    작업 제어 명령어
    작업 제어 명령 + 양면 인쇄 모드 인쇄 프로세스 제어: 복사본 수, 출력함, 단면/양면 인쇄, 왼쪽 및 상단 오프셋 등
    페이지 제어 명령 + 퍼포레이션 스킵 명령 페이지 크기, 여백, 페이지 방향, 줄 간격, 글자 간격 등을 지정.
    커서 위치 지정 명령 +   커서 위치를 지정하고, 따라서 텍스트, 래스터 또는 벡터 이미지 및 세부 정보의 원점을 지정.
    커서 위치를 지정하고 따라서 텍스트, 래스터 또는 벡터 이미지 및 세부 정보의 기원을 설정합니다.
    글꼴 선택 명령 +
    1. 투명 인쇄 데이터 명령.
    2. 임베디드 소프트 글꼴. 현재 버전에서는 소프트 글꼴을 생성하는 대신 우리 라이브러리는 대상 기기에 설치된 기존 "하드" 트루타입 글꼴 중 적합한 글꼴을 선택합니다.
      적합성은 너비/높이 비율에 의해 정의됩니다.
      이 기능은 비트맵 및 트루타입 글꼴에만 작동하며 소프트 글꼴로 인쇄된 텍스트가 원본 파일의 해당 텍스트와 관련이 있음을 보장하지 않습니다.
      왜냐하면 소프트 글꼴의 문자 코드가 기본 코드와 일치하지 않을 수 있기 때문입니다.
    3. 사용자 정의 심볼 세트.
    PCL 파일에서 소프트(내장된) 폰트를 로드하고 메모리에서 관리할 수 있습니다.
    래스터 그래픽 명령어 + 흑백만 가능 PCL 파일에서 래스터 이미지를 메모리로 로드하고, 너비, 높이, 압축 유형, 해상도 등의 래스터 매개변수를 지정할 수 있습니다.
    색상 명령어 +   모든 인쇄 가능한 객체에 대한 색상 지정이 가능합니다.
    프린트 모델 명령어 ```

    모델 명령 인쇄

    • 텍스트, 래스터 이미지 및 사각형 영역을 래스터 사전 정의 및 사용자 정의 패턴으로 채울 수 있습니다. 패턴과 소스 래스터 이미지에 대한 투명도 모드를 지정합니다. 사전 정의된 패턴은 해칭, 크로스 해치 및 음영입니다.

    사각형 영역 채우기 명령

    • 패턴으로 사각형 영역을 생성하고 채울 수 있습니다.

    HP-GL/2 벡터 그래픽 명령

    • 스크린 벡터 명령 (SV), 투명도 모드 명령 (TR), 투명 데이터 명령 (TD), RO
    SV(스크린 벡터 명령), TR(투명 모드 명령), TD(투명 데이터 명령), RO(좌표 시스템 회전), SB(확장 또는 비트맵 폰트 명령), SL(문자 기울기 명령) 및 ES(추가 공간)는 구현되지 않았으며 DV(가변 텍스트 경로 정의) 명령은 베타 버전에서 실현되었습니다.
    
    HP-GL/2 벡터 이미지를 PCL 파일에서 메모리로 로드를 허용합니다. 벡터 이미지는 인쇄 가능 영역의 왼쪽 하단에 원점을 가지며, 크기 조정, 이동, 회전 및 클리핑이 가능합니다. 벡터 이미지는 레이블로서의 텍스트와 직사각형, 원, 타원, 선, 호, 베지어 곡선 및 간단한 도형으로 구성된 복잡한 도형을 포함할 수 있습니다. 레이블의 글자를 포함한 닫힌 도형은 솔리드 채우기 또는 벡터 패턴으로 채워질 수 있습니다. 패턴은 해칭, 크로스 해치, 음영, 사용자 정의 래스터, PCL 해칭 또는 크로스 해치 및 PCL
    
    해칭, 크로스 해칭, 음영, 사용자 정의 래스터, PCL 해칭 또는 크로스 해칭 및 PCL 사용자 정의입니다. PCL 패턴은 래스터입니다. 라벨은 개별적으로 회전, 확대/축소 및 네 방향(위, 아래, 왼쪽, 오른쪽)으로 지시할 수 있습니다. 왼쪽과 오른쪽 방향은 연속된 글자 배치를 포함합니다. 위쪽과 아래쪽 방향은 글자를 세로로 배치합니다.
    
    매크로
    
    메모리에 PCL 명령 시퀀스를 로드하고 이 시퀀스를 여러 번 사용할 수 있습니다. 예를 들어, 페이지 헤더를 인쇄하거나 일련의 페이지에 동일한 형식을 설정하는 데 사용됩니다.
    
    유니코드 텍스트
    
            </td>
            <td>
                &nbsp;
            </td>
            <td>
                ASCII가 아닌 문자 인쇄 허용. 유니코드 텍스트가 포함된 샘플 파일이 없어 구현되지 않음
            </td>
        </tr>
        <tr>
            <td>
                PCL6 (PCL-XL)
            </td>
            <td>
                &nbsp;
            </td>
            <td>
                테스트 파일 부족으로 베타 버전에서만 구현됨. 임베디드 폰트도 지원되지 않음.<br> JetReady 확장은 JetReady 사양을 가질 수 없기 때문에 지원되지 않음.
            </td>
            <td>
                이진 파일 형식.
            </td>
        </tr>
    </tbody>
    

    PCL 파일을 PDF 형식으로 변환

    PCL에서 PDF로 변환을 허용하기 위해, Aspose.PDF는 LoadOptions 객체를 초기화하는 데 사용되는 PclLoadOptions 클래스를 가지고 있습니다.

    PCL을 PDF로 변환하려면 Aspose.PDF에는 LoadOptions 객체를 초기화하는 데 사용되는 [`PclLoadOptions`](https://reference.aspose.com/pdf/net/aspose.pdf/pclloadoptions) 클래스가 있습니다.
    
    다음 코드 스니펫은 PCL 파일을 PDF 형식으로 변환하는 과정을 보여줍니다.
    
    <a name="csharp-convert-pcl-to-pdf" id="csharp-convert-pcl-to-pdf"><strong><em>단계:</em> C#에서 PCL을 PDF로 변환</strong></a>
    
    1. [PclLoadOptions](https://reference.aspose.com/pdf/net/aspose.pdf/pclloadoptions/) 클래스의 인스턴스를 생성합니다.
    2. 원본 파일 이름과 옵션을 명시하여 [Document](https://reference.aspose.com/pdf/net/aspose.pdf/document/) 클래스의 인스턴스를 생성합니다.
    3. 원하는 파일 이름으로 문서를 저장합니다.
    
    ```csharp
    public static void ConvertPCLtoPDF()
    {
        PclLoadOptions options = new PclLoadOptions();
        Document pdfDocument= new Document(_dataDir + "demo.pcl", options);
        pdfDocument.Save(_dataDir + "pcl_test.pdf");
    }
    

    변환 과정 중 오류 탐지를 모니터링할 수도 있습니다. 변환 과정 중에 오류 감지를 모니터링할 수도 있습니다.

    public static void ConvertPCLtoPDFAvdanced()
    {
        PclLoadOptions options = new PclLoadOptions { SupressErrors = true };
        Document pdfDocument= new Document(_dataDir + "demo.pcl", options);
        if (options.Exceptions!=null)
            foreach (var ex in options.Exceptions)
            {
                Console.WriteLine(ex.Message);
            }
        pdfDocument.Save(_dataDir + "pcl_test.pdf");
    }
    

    알려진 문제점

    1. 인쇄 방향이 0°이 아닌 경우 원본 PCL 파일의 텍스트 문자열과 이미지의 원점이 약간 달라질 수 있습니다. 벡터 플롯의 좌표 시스템이 회전된 경우(RO 명령어가 앞선 경우) 벡터 이미지에도 동일하게 적용됩니다.
    2. 벡터 이미지의 라벨 원점이 원본 PCL 파일의 라벨 원점과 다를 수 있습니다. 이는 라벨 원점(LO), 가변 텍스트 경로 정의(DV), 절대 방향(DI), 상대 방향(DR)의 명령어 시퀀스의 영향을 받을 경우입니다.
    3. PCL 파일이 Intellifont 또는 Universal 소프트 폰트를 포함하고 있는 경우, Intellifont 및 Universal 폰트는 전혀 지원되지 않기 때문에 예외가 발생합니다.
    4. PCL 파일이 매크로 명령을 포함하고 있는 경우, 매크로 명령이 지원되지 않기 때문에 파싱 결과는 원본 파일과 크게 다를 것입니다.

    텍스트를 PDF로 변환

    Aspose.PDF for .NET는 일반 텍스트 및 서식 있는 텍스트 파일을 PDF 형식으로 변환하는 기능을 지원합니다.

    텍스트를 PDF로 변환한다는 것은 PDF 페이지에 텍스트 조각을 추가하는 것을 의미합니다. 텍스트 파일의 경우, 우리는 2가지 유형의 텍스트를 다룹니다: 서식 있는 텍스트(예: 한 줄에 80개의 문자가 있는 25줄)와 서식이 없는 텍스트(일반 텍스트). 우리의 필요에 따라 이 추가를 직접 제어하거나 라이브러리의 알고리즘에 맡길 수 있습니다.

    PostScript를 PDF로 변환

    Aspose.PDF for .NET은 PostScript 파일을 PDF 포맷으로 변환하는 기능을 지원합니다. Aspose.PDF의 한 기능은 변환하는 동안 사용될 폰트 폴더 세트를 설정할 수 있다는 것입니다.

    PostScript 파일을 PDF 포맷으로 변환하기 위해, Aspose.PDF for .NET은 PsLoadOptions 클래스를 제공합니다. 이 클래스는 LoadOptions 객체를 초기화하는 데 사용됩니다. 이후 이 객체는 Document 객체 생성자에 인수로 전달될 수 있으며, 이는 PDF 렌더링 엔진이 소스 문서의 포맷을 판단하는 데 도움을 줍니다.

    다음 코드 스니펫은 Aspose.PDF for .NET을 사용하여 PostScript 파일을 PDF 포맷으로 변환하는 데 사용할 수 있습니다:

    // 완전한 예제와 데이터 파일을 보려면 https://github.com/aspose-pdf/Aspose.PDF-for-.NET 방문하세요.
    // 문서 디렉토리의 경로입니다.
    string _dataDir = RunExamples.GetDataDir_AsposePdf_DocumentConversion();
    // PsLoadOptions의 새 인스턴스를 생성합니다
    PsLoadOptions options = new PsLoadOptions();
    // 생성된 로드 옵션으로 .ps 문서를 엽니다
    Document pdfDocument = new Document(_dataDir + "input.ps", options);
    // 문서를 저장합니다
    pdfDocument.Save(dataDir + "PSToPDF.pdf");
    

    추가로, 변환 중에 사용될 폰트 폴더 세트를 설정할 수 있습니다:

    public static void ConvertPostscriptToPDFAvdanced()
    {
        PsLoadOptions options = new PsLoadOptions
        {
            FontsFolders = new [] { @"c:\tmp\fonts1", @"c:\tmp\fonts2"}
        };
        Document pdfDocument = new Document(_dataDir + "input.ps", options);
        pdfDocument.Save(_dataDir + "ps_test.pdf");
    }
    

    XML을 PDF로 변환

    XML 형식은 구조화된 데이터를 저장하는 데 사용됩니다. Aspose.PDF에서 XML을 PDF로 변환하는 몇 가지 방법은 다음과 같습니다:

    1. XSLT를 사용하여 어떤 XML 데이터도 HTML로 변환하고 아래에 설명된 대로 HTML을 PDF로 변환
    2. Aspose.PDF XSD 스키마를 사용하여 XML 문서 생성
    3. XSL-FO 표준을 기반으로 한 XML 문서 사용

    Aspose.PDF Convertion XML to PDF with Free App

    XSL-FO를 PDF로 변환하기

    XSL-FO 파일을 PDF로 변환하는 것은 전통적인 Aspose.PDF 기술을 사용하여 Document 객체를 XslFoLoadOptions와 함께 인스턴스화하는 것을 통해 구현할 수 있습니다. 하지만 가끔 파일 구조가 올바르지 않은 경우를 만날 수 있습니다. 이 경우, XSL-FO 컨버터는 오류 처리 전략을 설정할 수 있습니다. ThrowExceptionImmediately, TryIgnore 또는 InvokeCustomHandler를 선택할 수 있습니다.

    public static void Convert_XSLFO_to_PDF()
    {
        // XslFoLoadOption 객체 인스턴스화
        var options = new XslFoLoadOptions(".\\samples\\employees.xslt");
        // 오류 처리 전략 설정
        options.ParsingErrorsHandlingType = XslFoLoadOptions.ParsingErrorsHandlingTypes.ThrowExceptionImmediately;
        // Document 객체 생성
        var pdfDocument = new Aspose.Pdf.Document(".\\samples\\employees.xml", options);
        pdfDocument.Save(_dataDir + "data_xml.pdf");
    }
    

    LaTeX/TeX를 PDF로 변환

    LaTeX 파일 형식은 LaTeX의 파생 TeX 언어 계열에서 마크업이 있는 텍스트 파일 형식이며, LaTeX는 TeX 시스템의 파생 형식입니다. LaTeX(ˈleɪtɛk/lay-tek 또는 lah-tek)는 문서 준비 시스템이자 문서 마크업 언어입니다. 수학, 물리학, 컴퓨터 과학을 포함한 많은 분야에서 과학 문서의 소통과 출판에 널리 사용됩니다. 또한 산스크리트와 아랍어 같은 복잡한 다국어 자료가 포함된 책과 기사의 준비 및 출판에서도 중요한 역할을 합니다. LaTeX는 TeX 조판 프로그램을 사용하여 출력물을 포맷하며, 자체적으로 TeX 매크로 언어로 작성됩니다.

    Aspose.PDF for .NET은 TeX 파일을 PDF 형식으로 변환하는 기능을 지원하며, 이를 위해 Aspose.Pdf 네임스페이스는 LaTex 파일을 로드하고 Document class를 사용하여 출력을 PDF 형식으로 렌더링할 수 있는 기능을 제공하는 LatexLoadOptions라는 클래스를 가지고 있습니다. 다음 코드 스니펫은 C#을 사용하여 LaTex 파일을 PDF 형식으로 변환하는 과정을 보여줍니다.

    public static void ConvertTeXtoPDF()
    {
        // Latex Load 옵션 객체를 생성합니다
        TeXLoadOptions options = new TeXLoadOptions();
        // Document 객체를 생성합니다
        Aspose.Pdf.Document pdfDocument = new Aspose.Pdf.Document(_dataDir + "samplefile.tex", options);
        // 출력을 PDF 파일에 저장합니다
        pdfDocument.Save(_dataDir + "TeXToPDF_out.pdf");
    }