Konvertera PUB till bild med C++

Microsoft Publisher-filer (PUB) används för att skriva ut eller publicera information. Det kan finnas scenarier där du behöver dela dessa filer och den mottagande parten inte har tillgång till Microsoft Publisher. I sådana fall kan det vara till hjälp att konvertera dessa filer till bilder innan delning. För detta ändamål kommer den här artikeln att lära dig hur du konverterar PUB-filer till olika bildformat med C++.

C++ API:er för att konvertera PUB-filer till bildformat

Vi kommer att använda API:erna Aspose.PUB för C++ och Aspose.PDF för C++ för att utföra denna konvertering. Det förra är ett bibliotek för att arbeta med Microsoft Publisher-filer (PUB), medan det senare är biblioteket för att skapa, läsa och ändra PDF-filer. Vi kommer att använda Aspose.PUB för C++ API för att konvertera PUB-filer till PDF-format och Aspose.PDF för C++ API för att konvertera de genererade PDF-filerna till bildformat. Du kan antingen installera API:erna genom NuGet eller ladda ner dem direkt från avsnittet Nedladdningar.

PM> Install-Package Aspose.PUB.Cpp
PM> Install-Package Aspose.PDF.Cpp

Konvertera PUB-filer till JPG-bilder med C++

Följande är stegen för att konvertera PUB-filer till JPG-bilder.

Följande exempelkod visar hur man konverterar PUB-filer till JPG-bilder med C++.

// Källa PUB och utdata PDF-filsökvägar
System::String filePub = u"SourceDirectory\\1.pub";
System::String filePdf = u"OutputDirectory\\1.pdf";

// Ladda PUB-filen
System::SharedPtr<IPubParser> parser = PubFactory::CreateParser(filePub);
System::SharedPtr<Aspose::Pub::Document> document = parser->Parse();

// Konvertera PUB-filen till PDF
PubFactory::CreatePdfConverter()->ConvertToPdf(document, filePdf);

// Ladda den genererade PDF-filen
auto pdfDocument = MakeObject<Aspose::Pdf::Document>(filePdf);
auto info = MakeObject<Facades::PdfFileInfo>(pdfDocument);

// Iterera genom PDF-sidorna
for (auto page : pdfDocument->get_Pages())
{
	// Få mått på PDF-sidan
	int width = info->GetPageWidth(page->get_Number());
	int height = info->GetPageHeight(page->get_Number());

	// Skapa en instans av klassen Resolution
	auto resolution = MakeObject<Devices::Resolution>(300);

	// Skapa JPEG-enhet med angiven bredd, höjd och upplösning
	auto device = MakeObject<Devices::JpegDevice>(width, height, resolution);

	// Skapa filströmmen för utdatabilden
	System::SharedPtr<System::IO::FileStream> imageStream = System::IO::File::Create(String::Format(u"OutputDirectory\\page_{0}.jpg", page->get_Number()));

	// Konvertera PDF-sidan till JPG-bild
	device->Process(page, imageStream);

	// Stäng strömmen
	imageStream->Close();
}

Konvertera PUB-filer till PNG-bilder med C++

Följ stegen nedan för att konvertera PUB-filer till PNG-bilder.

Följande exempelkod visar hur man konverterar PUB-filer till PNG-bilder med C++.

// Källa PUB och utdata PDF-filsökvägar
System::String filePub = u"SourceDirectory\\1.pub";
System::String filePdf = u"OutputDirectory\\1.pdf";

// Ladda PUB-filen
System::SharedPtr<IPubParser> parser = PubFactory::CreateParser(filePub);
System::SharedPtr<Aspose::Pub::Document> document = parser->Parse();

// Konvertera PUB-filen till PDF
PubFactory::CreatePdfConverter()->ConvertToPdf(document, filePdf);

// Ladda den genererade PDF-filen
auto pdfDocument = MakeObject<Aspose::Pdf::Document>(filePdf);
auto info = MakeObject<Facades::PdfFileInfo>(pdfDocument);

// Iterera genom PDF-sidorna
for (auto page : pdfDocument->get_Pages())
{
	// Få mått på PDF-sidan
	int width = info->GetPageWidth(page->get_Number());
	int height = info->GetPageHeight(page->get_Number());

	// Skapa en instans av klassen Resolution
	auto resolution = MakeObject<Devices::Resolution>(300);

	// Skapa PNG-enhet med angiven bredd, höjd och upplösning
	auto device = MakeObject<Devices::PngDevice>(width, height, resolution);

	// Skapa filströmmen för utdatabilden
	System::SharedPtr<System::IO::FileStream> imageStream = System::IO::File::Create(String::Format(u"OutputDirectory\\page_{0}.png", page->get_Number()));

	// Konvertera PDF-sidan till PNG-bild
	device->Process(page, imageStream);

	// Stäng strömmen
	imageStream->Close();
}

Konvertera PUB-filer till TIFF-bilder med C++

Följande är stegen för att konvertera PUB-filer till TIFF-bilder.

Följande exempelkod visar hur man konverterar PUB-filer till TIFF-bilder med C++.

// Källa PUB och utdata PDF-filsökvägar
System::String filePub = u"SourceDirectory\\1.pub";
System::String filePdf = u"OutputDirectory\\1.pdf";

// Ladda PUB-filen
System::SharedPtr<IPubParser> parser = PubFactory::CreateParser(filePub);
System::SharedPtr<Aspose::Pub::Document> document = parser->Parse();

// Konvertera PUB-filen till PDF
PubFactory::CreatePdfConverter()->ConvertToPdf(document, filePdf);

// Ladda den genererade PDF-filen
auto pdfDocument = MakeObject<Aspose::Pdf::Document>(filePdf);
auto info = MakeObject<Facades::PdfFileInfo>(pdfDocument);

// Få mått på den första PDF-sidan
int width = info->GetPageWidth(1);
int height = info->GetPageHeight(1);

// Skapa en instans av klassen Resolution
auto resolution = MakeObject<Devices::Resolution>(300);

// Skapa en instans av TiffSettings-klassen och ställ in nödvändiga inställningar
auto settings = MakeObject<Devices::TiffSettings>();
settings->set_Compression(Devices::CompressionType::None);
settings->set_Depth(Devices::ColorDepth::Default);

// Skapa TIFF-enhet med angivna bredd, höjd, upplösning och TiffSettings
auto device = MakeObject<Devices::TiffDevice>(width, height, resolution, settings);

// Skapa filströmmen för utdatabilden
System::SharedPtr<System::IO::FileStream> imageStream = System::IO::File::Create(u"OutputDirectory\\pdf.tiff");

// Konvertera PDF-filen till TIFF-bild
device->Process(pdfDocument, 1, 1, imageStream);

// Stäng strömmen
imageStream->Close();

Skaffa en gratis licens

Du kan prova API utan utvärderingsbegränsningar genom att begära en gratis tillfällig licens.

Slutsats

I den här artikeln har du lärt dig hur du konverterar Microsoft Publisher-filer (PUB) till JPG-, PNG- och TIFF-bilder med C++. Vi använde Aspose.PUB för C++ och Aspose.PDF för C++ API:er för att uppnå detta. Du kan utforska dessa API:er i detalj genom att besöka deras officiella dokumentation. Om du har några frågor är du välkommen att kontakta oss på vårt gratis supportforum.

Se även