C# PDF 파일 바이트 배열 변환

바이트 배열은 데이터를 저장하거나 전송할 때 유용합니다. 마찬가지로 PDF 파일 형식은 기능과 호환성으로 인해 널리 사용됩니다. C# 언어를 사용하여 PDF 파일을 바이트 배열로, 바이트 배열을 PDF 파일로 변환할 수 있습니다. 이렇게 하면 데이터베이스에 PDF 파일을 보다 효율적으로 저장하고 보관할 수 있습니다. 바이트 배열로 작업하여 데이터를 직렬화할 수도 있습니다. 이러한 형식의 상호 변환 가능성을 살펴보겠습니다.

PDF 파일에서 바이트 배열로 및 바이트 배열에서 PDF 파일로 변환 – API 설치

Aspose.PDF for .NET API는 PDF 문서 작업을 위한 많은 기능을 제공합니다. 간단하고 쉬운 API 호출로 PDF 파일을 생성, 편집, 조작 또는 변환할 수 있습니다. PDF 파일을 바이트 배열로 또는 그 반대로 변환하려면 공식 웹사이트 또는 NuGet 갤러리에서 Visual Studio IDE의 아래 설치 명령을 사용하여 API를 다운로드하여 설치해야 합니다.

PM> Install-Package Aspose.Pdf

C#을 사용하여 PDF 파일을 바이트 배열로 변환

추가 처리를 위해 전송하거나 저장하기 위해 PDF를 바이트 배열로 변환할 수 있습니다. 예를 들어, PDF 문서를 직렬화해야 할 수 있으며 이를 바이트 배열로 변환하는 것이 도움이 될 수 있습니다. PDF를 바이트 배열로 변환하려면 아래 단계를 따라야 합니다.

  1. 입력 PDF 파일 로드
  2. 바이트 배열 초기화
  3. FileStream 객체 초기화
  4. 바이트 배열에 파일 내용 로드

이 모든 단계를 수행한 후 이제 바이트 배열 형태로 PDF 파일을 처리할 수 있습니다. 예를 들어 아래 예제와 같이 다른 함수에 전달할 수 있습니다.

다음 코드는 결과 ByteArray가 입력 파일을 이미지로 변환하는 메서드에 전달되는 C#을 사용하여 PDF 파일을 바이트 배열로 변환하는 방법을 보여줍니다.

dataDir = @"D:\Test\";

// 입력 PDF 파일 로드
string inputFile = dataDir + @"testpdf.pdf";

// 바이트 배열 초기화
byte[] buff = null;

// FileStream 객체 초기화
FileStream fs = new FileStream(inputFile, FileMode.Open, FileAccess.Read);
BinaryReader br = new BinaryReader(fs);
long numBytes = new FileInfo(inputFile).Length;

// 바이트 배열에 파일 내용 로드
buff = br.ReadBytes((int) numBytes);
fs.Close();

// 바이트 배열의 PDF 파일 작업
ConvertPDFToJPEG(buff, 300, dataDir);


public static void ConvertPDFToJPEG(Byte[] PDFBlob, int resolution, string dataDir)
{
    // 문서 열기
    using (MemoryStream InputStream = new MemoryStream(PDFBlob))
    {
        Aspose.Pdf.Document pdfDocument = new Aspose.Pdf.Document(InputStream);

        for (int pageCount = 1; pageCount <= pdfDocument.Pages.Count; pageCount++)
        {

            using (FileStream imageStream = new FileStream(dataDir + "image" + pageCount + "_out" + ".jpg", FileMode.Create))
            {
                // 지정된 속성으로 JPEG 장치 만들기
                // 너비, 높이, 해상도, 품질
                // 품질[0-100], 100이 최대입니다.
                // 해상도 개체 만들기

                Aspose.Pdf.Devices.Resolution res = new Aspose.Pdf.Devices.Resolution(resolution);
                // JpegDevice jpegDevice = 새로운 JpegDevice(500, 700, 해상도, 100);

                // 가로 여부를 결정하기 위해 다음을 추가했습니다.
                Int32 height, width = 0;

                PdfFileInfo info = new PdfFileInfo(pdfDocument);
                width = Convert.ToInt32(info.GetPageWidth(pdfDocument.Pages[pageCount].Number));
                height = Convert.ToInt32(info.GetPageHeight(pdfDocument.Pages[pageCount].Number));


                Aspose.Pdf.Devices.JpegDevice jpegDevice =
                //새로운 Aspose.Pdf.Devices.JpegDevice(Aspose.Pdf.PageSize.A4, res, 100);
                new Aspose.Pdf.Devices.JpegDevice(width, height, res, 100);
                // 특정 페이지를 변환하고 이미지를 스트림에 저장

                //Aspose.Pdf.PageSize.A4.IsLandscape = true;
                jpegDevice.Process(pdfDocument.Pages[pageCount], imageStream);
                // 스트림 닫기
                imageStream.Close();
            }
        }
    }
}

C#을 사용하여 바이트 배열을 PDF 파일로 변환

한 단계 더 나아가 바이트 배열을 PDF 파일로 변환할 수 있습니다. 이미지를 바이트 배열로 PDF 파일로 변환하는 예를 통해 이를 알아보겠습니다. 바이트 배열을 PDF 파일로 변환하려면 다음 단계를 따라야 합니다.

  1. 입력 파일 로드
  2. 바이트 배열 초기화
  3. 입력 이미지를 바이트 배열로 로드
  4. Document 클래스의 인스턴스 초기화
  5. PDF 페이지에 이미지 추가
  6. 출력 PDF 파일 저장

다음 코드는 C#을 사용하여 프로그래밍 방식으로 바이트 배열을 PDF 파일로 변환하는 방법을 설명합니다.

// 입력 파일 로드
string inputFile = dataDir + @"Test.PNG";

// 바이트 배열 초기화
byte[] buff = null;
FileStream fs = new FileStream(inputFile, FileMode.Open, FileAccess.Read);
BinaryReader br = new BinaryReader(fs);
long numBytes = new FileInfo(inputFile).Length;

// 입력 이미지를 바이트 배열로 로드
buff = br.ReadBytes((int)numBytes);


Document doc = new Document();
// 문서의 페이지 컬렉션에 페이지 추가
Page page = doc.Pages.Add();
// Stream 객체에 소스 이미지 파일 로드
MemoryStream outstream = new MemoryStream();
MemoryStream mystream = new MemoryStream(buff);
// 로드된 이미지 스트림으로 BitMap 객체 인스턴스화
Bitmap b = new Bitmap(mystream);

// 이미지가 맞도록 여백을 설정합니다.
page.PageInfo.Margin.Bottom = 0;
page.PageInfo.Margin.Top = 0;
page.PageInfo.Margin.Left = 0;
page.PageInfo.Margin.Right = 0;

page.CropBox = new Aspose.Pdf.Rectangle(0, 0, b.Width, b.Height);
// 이미지 개체 만들기
Aspose.Pdf.Image image1 = new Aspose.Pdf.Image();
// 섹션의 단락 컬렉션에 이미지 추가
page.Paragraphs.Add(image1);
// 이미지 파일 스트림 설정
image1.ImageStream = mystream;

// 결과 PDF 파일 저장
doc.Save(outstream, SaveFormat.Pdf);
//doc.Save(dataDir + "outstream.pdf", SaveFormat.Pdf);

// memoryStream 객체 닫기
mystream.Close();

결론

이 기사에서는 C# 프로그래밍 언어를 사용하여 PDF 파일을 바이트 배열로 변환하는 방법과 바이트 배열을 PDF 파일로 변환하는 방법을 살펴보았습니다. PDF 파일에 대한 추가 작업에 관심이 있으시면 무료 지원 포럼을 통해 요구 사항을 공유해 주십시오. 또한 API에서 제공하는 기능에 대한 심층 분석을 위해 API 문서API 참조를 탐색할 수도 있습니다. 연락을 기다리겠습니다!

또한보십시오