Převeďte PUB na obrázek pomocí C++

Soubory Microsoft Publisher (PUB) se používají k tisku nebo publikování informací. Mohou nastat situace, kdy je potřeba tyto soubory sdílet, a přijímající strana nemá přístup k aplikaci Microsoft Publisher. V takových případech může být užitečné převést tyto soubory na obrázky před sdílením. Za tímto účelem vás tento článek naučí, jak převést soubory PUB do různých obrazových formátů pomocí C++.

C++ API pro převod souborů PUB do formátu obrázku

K provedení této konverze použijeme API Aspose.PUB for C++ a Aspose.PDF for C++. První je knihovna pro práci se soubory Microsoft Publisher (PUB), zatímco druhá je knihovna pro vytváření, čtení a úpravy souborů PDF. Aspose.PUB for C++ API použijeme pro převod souborů PUB do formátu PDF a Aspose.PDF for C++ API pro převod vygenerovaných souborů PDF do formátu obrázků. Rozhraní API můžete nainstalovat prostřednictvím NuGet nebo si je stáhnout přímo ze sekce Stahování.

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

Převeďte soubory PUB na obrázky JPG pomocí C++

Následují kroky pro převod souborů PUB na obrázky JPG.

Následující ukázkový kód ukazuje, jak převést soubory PUB na obrázky JPG pomocí C++.

// Zdrojové cesty PUB a výstupní soubory PDF
System::String filePub = u"SourceDirectory\\1.pub";
System::String filePdf = u"OutputDirectory\\1.pdf";

// Načtěte soubor PUB
System::SharedPtr<IPubParser> parser = PubFactory::CreateParser(filePub);
System::SharedPtr<Aspose::Pub::Document> document = parser->Parse();

// Převeďte soubor PUB do formátu PDF
PubFactory::CreatePdfConverter()->ConvertToPdf(document, filePdf);

// Načtěte vygenerovaný soubor PDF
auto pdfDocument = MakeObject<Aspose::Pdf::Document>(filePdf);
auto info = MakeObject<Facades::PdfFileInfo>(pdfDocument);

// Iterujte stránky PDF
for (auto page : pdfDocument->get_Pages())
{
	// Získejte rozměry stránky PDF
	int width = info->GetPageWidth(page->get_Number());
	int height = info->GetPageHeight(page->get_Number());

	// Vytvořte instanci třídy Resolution
	auto resolution = MakeObject<Devices::Resolution>(300);

	// Vytvořte zařízení JPEG se zadanou šířkou, výškou a rozlišením
	auto device = MakeObject<Devices::JpegDevice>(width, height, resolution);

	// Vytvořte tok souborů pro výstupní obrázek
	System::SharedPtr<System::IO::FileStream> imageStream = System::IO::File::Create(String::Format(u"OutputDirectory\\page_{0}.jpg", page->get_Number()));

	// Převeďte stránku PDF na obrázek JPG
	device->Process(page, imageStream);

	// Zavřete stream
	imageStream->Close();
}

Převeďte soubory PUB na obrázky PNG pomocí C++

Chcete-li převést soubory PUB na obrázky PNG, postupujte podle níže uvedených kroků.

Následující ukázkový kód ukazuje, jak převést soubory PUB na obrázky PNG pomocí C++.

// Zdrojové cesty PUB a výstupní soubory PDF
System::String filePub = u"SourceDirectory\\1.pub";
System::String filePdf = u"OutputDirectory\\1.pdf";

// Načtěte soubor PUB
System::SharedPtr<IPubParser> parser = PubFactory::CreateParser(filePub);
System::SharedPtr<Aspose::Pub::Document> document = parser->Parse();

// Převeďte soubor PUB do formátu PDF
PubFactory::CreatePdfConverter()->ConvertToPdf(document, filePdf);

// Načtěte vygenerovaný soubor PDF
auto pdfDocument = MakeObject<Aspose::Pdf::Document>(filePdf);
auto info = MakeObject<Facades::PdfFileInfo>(pdfDocument);

// Iterujte stránky PDF
for (auto page : pdfDocument->get_Pages())
{
	// Získejte rozměry stránky PDF
	int width = info->GetPageWidth(page->get_Number());
	int height = info->GetPageHeight(page->get_Number());

	// Vytvořte instanci třídy Resolution
	auto resolution = MakeObject<Devices::Resolution>(300);

	// Vytvořte zařízení PNG se zadanou šířkou, výškou a rozlišením
	auto device = MakeObject<Devices::PngDevice>(width, height, resolution);

	// Vytvořte tok souborů pro výstupní obrázek
	System::SharedPtr<System::IO::FileStream> imageStream = System::IO::File::Create(String::Format(u"OutputDirectory\\page_{0}.png", page->get_Number()));

	// Převeďte stránku PDF na obrázek PNG
	device->Process(page, imageStream);

	// Zavřete stream
	imageStream->Close();
}

Převod souborů PUB na obrázky TIFF pomocí C++

Následují kroky pro převod souborů PUB na obrázky TIFF.

Následující ukázkový kód ukazuje, jak převést soubory PUB na obrázky TIFF pomocí C++.

// Zdrojové cesty PUB a výstupní soubory PDF
System::String filePub = u"SourceDirectory\\1.pub";
System::String filePdf = u"OutputDirectory\\1.pdf";

// Načtěte soubor PUB
System::SharedPtr<IPubParser> parser = PubFactory::CreateParser(filePub);
System::SharedPtr<Aspose::Pub::Document> document = parser->Parse();

// Převeďte soubor PUB do formátu PDF
PubFactory::CreatePdfConverter()->ConvertToPdf(document, filePdf);

// Načtěte vygenerovaný soubor PDF
auto pdfDocument = MakeObject<Aspose::Pdf::Document>(filePdf);
auto info = MakeObject<Facades::PdfFileInfo>(pdfDocument);

// Získejte rozměry první stránky PDF
int width = info->GetPageWidth(1);
int height = info->GetPageHeight(1);

// Vytvořte instanci třídy Resolution
auto resolution = MakeObject<Devices::Resolution>(300);

// Vytvořte instanci třídy TiffSettings a nastavte požadovaná nastavení
auto settings = MakeObject<Devices::TiffSettings>();
settings->set_Compression(Devices::CompressionType::None);
settings->set_Depth(Devices::ColorDepth::Default);

// Vytvořte zařízení TIFF se zadanými nastaveními Width, Height, Resolution a TiffSettings
auto device = MakeObject<Devices::TiffDevice>(width, height, resolution, settings);

// Vytvořte tok souborů pro výstupní obrázek
System::SharedPtr<System::IO::FileStream> imageStream = System::IO::File::Create(u"OutputDirectory\\pdf.tiff");

// Převeďte soubor PDF na obrázek TIFF
device->Process(pdfDocument, 1, 1, imageStream);

// Zavřete stream
imageStream->Close();

Získejte bezplatnou licenci

Rozhraní API můžete vyzkoušet bez omezení hodnocení tím, že požádáte o bezplatnou dočasnou licenci.

Závěr

V tomto článku jste se naučili, jak převést soubory Microsoft Publisher (PUB) na obrázky JPG, PNG a TIFF pomocí C++. K dosažení tohoto cíle jsme použili Aspose.PUB for C++ a Aspose.PDF for C++ API. Tato rozhraní API můžete podrobně prozkoumat návštěvou jejich oficiální dokumentace. V případě jakýchkoli dotazů nás neváhejte kontaktovat na našem bezplatném fóru podpory.

Viz také