소개
문서 생성을 자동화할 때 종종 필요한 경우가 있습니다. 동적으로 생성된 여러 PDF 파일을 인쇄용 단일 출력으로 병합합니다. 이 기사에서는 ItextSharp를 사용하여 이를 달성하는 방법을 살펴봅니다.
병합 전략
ItextSharp는 PDF 문서 병합에 대한 두 가지 기본 접근 방식을 제공합니다.
사용하는 솔루션 PdfCopy
다음 코드 샘플은 PdfCopy를 사용하여 PDF 파일을 병합하는 방법을 보여줍니다.
using iTextSharp.text; using iTextSharp.text.pdf; using System.Collections.Generic; using System.IO; namespace MergePdfs { class Program { static void Main(string[] args) { // Create a list of byte arrays for each PDF file List<byte[]> pdfs = new List<byte[]>(); // Read each PDF file into the list foreach (string filePath in args) { pdfs.Add(File.ReadAllBytes(filePath)); } // Merge the PDFs byte[] mergedPdf = null; using (MemoryStream ms = new MemoryStream()) { using (Document document = new Document()) { using (PdfCopy copy = new PdfCopy(document, ms)) { document.Open(); foreach (byte[] pdf in pdfs) { PdfReader reader = new PdfReader(pdf); int n = reader.NumberOfPages; for (int page = 1; page <= n; page++) { copy.AddPage(copy.GetImportedPage(reader, page)); } } } } mergedPdf = ms.ToArray(); } // Print the merged PDF // ... (code for printing the merged PDF) } } }
이 예에서 pdfs에는 PDF 파일의 바이트 배열이 포함되어 있으며 PdfCopy 클래스가 사용됩니다. 각 소스 문서의 페이지를 추가합니다.
기타 고려사항
PdfCopy는 대용량 문서의 경우 성능 문제와 메모리 소비를 일으킬 수 있습니다. PdfSmartCopy 및 PdfWriter는 성능과 기능 지원을 절충한 대안을 제공합니다.
더 포괄적인 정보와 코드 예제는 iText in Action 문서(6장, 6.4절)를 참조하세요.
위 내용은 ITextSharp를 사용하여 C#에서 프로그래밍 방식으로 생성된 여러 PDF 파일을 어떻게 병합할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!