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
- Konvertera PUB-filer till JPG-bilder med C++
- Konvertera PUB-filer till PNG-bilder med C++
- Konvertera PUB-filer till TIFF-bilder 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.
- Ladda PUB-filen med metoden PubFactory::CreateParser(System::String filnamn).
- Konvertera PUB-filen till PDF-format med hjälp av ConvertToPdf(System::SharedPtr doc, System::String filnamn) metod.
- Ladda den genererade PDF-filen med klassen Document.
- Gå igenom sidorna i PDF-filen.
- Hämta måtten på PDF-sidan.
- Skapa en instans av klassen Resolution.
- Instantiera klassen JpegDevice genom att ange bredd, höjd och upplösning.
- Skapa en instans av FileStream för utdatabilden.
- Konvertera PDF-sidan till JPG-bild med hjälp av JpegDevice->Process(System::SharedPtr sida, System::SharedPtr< System::IO::Stream > output) metod.
- Stäng strömmen.
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.
- Ladda PUB-filen med metoden PubFactory::CreateParser(System::String fileName).
- Konvertera PUB-filen till PDF-format med hjälp av ConvertToPdf(System::SharedPtr doc, System::String filnamn) metod.
- Ladda den genererade PDF-filen med klassen Document.
- Gå igenom sidorna i PDF-filen.
- Hämta måtten på PDF-sidan.
- Skapa en instans av klassen Resolution.
- Instantiera klassen PngDevice genom att ange bredd, höjd och upplösning.
- Skapa en instans av FileStream för utdatabilden.
- Konvertera PDF-sidan till PNG-bild med hjälp av PngDevice->Process(System::SharedPtr sida, System::SharedPtrSystem::IO::Stream output) metod.
- Stäng strömmen.
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.
- Ladda PUB-filen med metoden PubFactory::CreateParser(System::String fileName).
- Konvertera PUB-filen till PDF-format med hjälp av ConvertToPdf(System::SharedPtr doc, System::String filnamn) metod.
- Ladda den genererade PDF-filen med klassen Document.
- Hämta måtten på den första PDF-sidan.
- Skapa en instans av klassen Resolution.
- Skapa en instans av klassen TiffSettings och ställ in de nödvändiga inställningarna.
- Instantiera klassen TiffDevice genom att ange bredd, höjd, upplösning och TiffSettings.
- Skapa en instans av FileStream för utdatabilden.
- Konvertera PDF-filen till TIFF-bild med hjälp av TiffDevice->Process( System::SharedPtrAspose::Pdf::Document dokument, int32t fromPage, int32t toPage, System::SharedPtrSystem::IO::Stream output) metod.
- Stäng strömmen.
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.