Microsoft Publisher(PUB) 파일은 정보를 인쇄하거나 게시하는 데 사용됩니다. 이러한 파일을 공유해야 하고 받는 사람이 Microsoft Publisher에 액세스할 수 없는 시나리오가 있을 수 있습니다. 이러한 경우 공유하기 전에 이러한 파일을 이미지로 변환하는 것이 도움이 될 수 있습니다. 이를 위해 이 기사에서는 C++를 사용하여 PUB 파일을 다양한 이미지 형식으로 변환하는 방법을 설명합니다.
- PUB 파일을 이미지 형식으로 변환하기 위한 C++ API
- C++를 사용하여 PUB 파일을 JPG 이미지로 변환
- C++를 사용하여 PUB 파일을 PNG 이미지로 변환
- C++를 사용하여 PUB 파일을 TIFF 이미지로 변환
PUB 파일을 이미지 형식으로 변환하기 위한 C++ API
Aspose.PUB for C++ 및 Aspose.PDF for C++ API를 사용하여 이 변환을 수행합니다. 전자는 PUB(Microsoft Publisher) 파일 작업을 위한 라이브러리이고 후자는 PDF 파일을 만들고 읽고 수정하기 위한 라이브러리입니다. C++용 Aspose.PUB API를 사용하여 PUB 파일을 PDF 형식으로 변환하고 Aspose.PDF for C++ API를 사용하여 생성된 PDF 파일을 이미지 형식으로 변환합니다. NuGet을 통해 API를 설치하거나 다운로드 섹션에서 직접 다운로드할 수 있습니다.
PM> Install-Package Aspose.PUB.Cpp
PM> Install-Package Aspose.PDF.Cpp
C++를 사용하여 PUB 파일을 JPG 이미지로 변환
다음은 PUB 파일을 JPG 이미지로 변환하는 단계입니다.
- PubFactory::CreateParser(System::String fileName) 메서드를 사용하여 PUB 파일을 로드합니다.
- ConvertToPdf(System::SharedPtr doc, System::String fileName) 메서드.
- Document 클래스를 사용하여 생성된 PDF 파일을 로드합니다.
- PDF 파일의 페이지를 반복합니다.
- PDF 페이지의 치수를 가져옵니다.
- Resolution 클래스의 인스턴스를 만듭니다.
- 너비, 높이 및 해상도를 제공하여 JpegDevice 클래스를 인스턴스화합니다.
- 출력 이미지에 대한 FileStream 인스턴스를 만듭니다.
- JpegDevice->Process(System::SharedPtr)를 사용하여 PDF 페이지를 JPG 이미지로 변환합니다. 페이지, System::SharedPtr< System::IO::Stream > output) 메서드입니다.
- 스트림을 닫습니다.
다음 샘플 코드는 C++를 사용하여 PUB 파일을 JPG 이미지로 변환하는 방법을 보여줍니다.
// 소스 PUB 및 출력 PDF 파일 경로
System::String filePub = u"SourceDirectory\\1.pub";
System::String filePdf = u"OutputDirectory\\1.pdf";
// PUB 파일 로드
System::SharedPtr<IPubParser> parser = PubFactory::CreateParser(filePub);
System::SharedPtr<Aspose::Pub::Document> document = parser->Parse();
// PUB 파일을 PDF로 변환
PubFactory::CreatePdfConverter()->ConvertToPdf(document, filePdf);
// 생성된 PDF 파일 로드
auto pdfDocument = MakeObject<Aspose::Pdf::Document>(filePdf);
auto info = MakeObject<Facades::PdfFileInfo>(pdfDocument);
// PDF 페이지 반복
for (auto page : pdfDocument->get_Pages())
{
// PDF 페이지의 치수 가져오기
int width = info->GetPageWidth(page->get_Number());
int height = info->GetPageHeight(page->get_Number());
// Resolution 클래스의 인스턴스 만들기
auto resolution = MakeObject<Devices::Resolution>(300);
// 지정된 너비, 높이 및 해상도로 JPEG 장치 만들기
auto device = MakeObject<Devices::JpegDevice>(width, height, resolution);
// 출력 이미지에 대한 파일 스트림 생성
System::SharedPtr<System::IO::FileStream> imageStream = System::IO::File::Create(String::Format(u"OutputDirectory\\page_{0}.jpg", page->get_Number()));
// PDF 페이지를 JPG 이미지로 변환
device->Process(page, imageStream);
// 스트림 닫기
imageStream->Close();
}
C++를 사용하여 PUB 파일을 PNG 이미지로 변환
PUB 파일을 PNG 이미지로 변환하려면 다음 단계를 따르십시오.
- PubFactory::CreateParser(System::String fileName) 메서드를 사용하여 PUB 파일을 로드합니다.
- ConvertToPdf(System::SharedPtr doc, System::String fileName) 메서드.
- Document 클래스를 이용하여 생성된 PDF 파일을 불러옵니다.
- PDF 파일의 페이지를 반복합니다.
- PDF 페이지의 치수를 가져옵니다.
- Resolution 클래스의 인스턴스를 만듭니다.
- 너비, 높이 및 해상도를 제공하여 PngDevice 클래스를 인스턴스화합니다.
- 출력 이미지에 대한 FileStream의 인스턴스를 만듭니다.
- PngDevice->Process(System::SharedPtr)를 사용하여 PDF 페이지를 PNG 이미지로 변환합니다. 페이지, 시스템::SharedPtrSystem::IO::Stream 출력) 메서드입니다.
- 스트림을 닫습니다.
다음 샘플 코드는 C++를 사용하여 PUB 파일을 PNG 이미지로 변환하는 방법을 보여줍니다.
// 소스 PUB 및 출력 PDF 파일 경로
System::String filePub = u"SourceDirectory\\1.pub";
System::String filePdf = u"OutputDirectory\\1.pdf";
// PUB 파일 로드
System::SharedPtr<IPubParser> parser = PubFactory::CreateParser(filePub);
System::SharedPtr<Aspose::Pub::Document> document = parser->Parse();
// PUB 파일을 PDF로 변환
PubFactory::CreatePdfConverter()->ConvertToPdf(document, filePdf);
// 생성된 PDF 파일 로드
auto pdfDocument = MakeObject<Aspose::Pdf::Document>(filePdf);
auto info = MakeObject<Facades::PdfFileInfo>(pdfDocument);
// PDF 페이지 반복
for (auto page : pdfDocument->get_Pages())
{
// PDF 페이지의 치수 가져오기
int width = info->GetPageWidth(page->get_Number());
int height = info->GetPageHeight(page->get_Number());
// Resolution 클래스의 인스턴스 만들기
auto resolution = MakeObject<Devices::Resolution>(300);
// 지정된 너비, 높이 및 해상도로 PNG 장치 만들기
auto device = MakeObject<Devices::PngDevice>(width, height, resolution);
// 출력 이미지에 대한 파일 스트림 생성
System::SharedPtr<System::IO::FileStream> imageStream = System::IO::File::Create(String::Format(u"OutputDirectory\\page_{0}.png", page->get_Number()));
// PDF 페이지를 PNG 이미지로 변환
device->Process(page, imageStream);
// 스트림 닫기
imageStream->Close();
}
C++를 사용하여 PUB 파일을 TIFF 이미지로 변환
다음은 PUB 파일을 TIFF 이미지로 변환하는 단계입니다.
- PubFactory::CreateParser(System::String fileName) 메서드를 사용하여 PUB 파일을 로드합니다.
- ConvertToPdf(System::SharedPtr doc, System::String fileName) 메서드.
- Document 클래스를 이용하여 생성된 PDF 파일을 불러옵니다.
- 첫 번째 PDF 페이지의 크기를 가져옵니다.
- Resolution 클래스의 인스턴스를 만듭니다.
- TiffSettings 클래스의 인스턴스를 만들고 필요한 설정을 지정합니다.
- 너비, 높이, 해상도 및 TiffSettings를 제공하여 TiffDevice 클래스를 인스턴스화합니다.
- 출력 이미지에 대한 FileStream 인스턴스를 만듭니다.
- TiffDevice->Process(System::SharedPtr)를 사용하여 PDF 파일을 TIFF 이미지로 변환합니다.Aspose::Pdf::Document 문서, int32t fromPage, int32t toPage, 시스템::SharedPtrSystem::IO::Stream 출력) 메서드입니다.
- 스트림을 닫습니다.
다음 샘플 코드는 C++를 사용하여 PUB 파일을 TIFF 이미지로 변환하는 방법을 보여줍니다.
// 소스 PUB 및 출력 PDF 파일 경로
System::String filePub = u"SourceDirectory\\1.pub";
System::String filePdf = u"OutputDirectory\\1.pdf";
// PUB 파일 로드
System::SharedPtr<IPubParser> parser = PubFactory::CreateParser(filePub);
System::SharedPtr<Aspose::Pub::Document> document = parser->Parse();
// PUB 파일을 PDF로 변환
PubFactory::CreatePdfConverter()->ConvertToPdf(document, filePdf);
// 생성된 PDF 파일 로드
auto pdfDocument = MakeObject<Aspose::Pdf::Document>(filePdf);
auto info = MakeObject<Facades::PdfFileInfo>(pdfDocument);
// 첫 번째 PDF 페이지의 크기 가져오기
int width = info->GetPageWidth(1);
int height = info->GetPageHeight(1);
// Resolution 클래스의 인스턴스 만들기
auto resolution = MakeObject<Devices::Resolution>(300);
// TiffSettings 클래스의 인스턴스를 만들고 필요한 설정을 지정합니다.
auto settings = MakeObject<Devices::TiffSettings>();
settings->set_Compression(Devices::CompressionType::None);
settings->set_Depth(Devices::ColorDepth::Default);
// 지정된 너비, 높이, 해상도 및 TiffSettings로 TIFF 장치 만들기
auto device = MakeObject<Devices::TiffDevice>(width, height, resolution, settings);
// 출력 이미지에 대한 파일 스트림 생성
System::SharedPtr<System::IO::FileStream> imageStream = System::IO::File::Create(u"OutputDirectory\\pdf.tiff");
// PDF 파일을 TIFF 이미지로 변환
device->Process(pdfDocument, 1, 1, imageStream);
// 스트림 닫기
imageStream->Close();
무료 라이선스 받기
임시 무료 라이선스를 요청하면 평가 제한 없이 API를 사용해 볼 수 있습니다.
결론
이 기사에서는 C++를 사용하여 Microsoft Publisher(PUB) 파일을 JPG, PNG 및 TIFF 이미지로 변환하는 방법을 배웠습니다. 이를 달성하기 위해 C++용 Aspose.PUB 및 C++용 Aspose.PDF API를 사용했습니다. 공식 문서를 방문하여 이러한 API를 자세히 탐색할 수 있습니다. 질문이 있는 경우 무료 지원 포럼에 문의해 주십시오.