Pliki Microsoft Publisher (PUB) służą do drukowania lub publikowania informacji. Mogą zaistnieć sytuacje, w których musisz udostępnić te pliki, a odbiorca nie ma dostępu do programu Microsoft Publisher. W takich przypadkach konwersja tych plików na obrazy przed udostępnieniem może okazać się pomocna. W tym celu w tym artykule dowiesz się, jak konwertować pliki PUB do różnych formatów obrazów przy użyciu C++.
- Interfejsy API języka C++ do konwertowania plików PUB do formatu obrazu
- Konwertuj pliki PUB na obrazy JPG za pomocą C ++
- Konwertuj pliki PUB na obrazy PNG za pomocą C++
- Konwersja plików PUB do obrazów TIFF przy użyciu języka C++
Interfejsy API języka C++ do konwertowania plików PUB do formatu obrazu
Do wykonania tej konwersji użyjemy interfejsów API Aspose.PUB for C++ i Aspose.PDF for C++. Pierwsza to biblioteka do pracy z plikami Microsoft Publisher (PUB), druga to biblioteka do tworzenia, czytania i modyfikowania plików PDF. Użyjemy Aspose.PUB for C++ API do konwersji plików PUB do formatu PDF oraz Aspose.PDF for C++ API do konwersji wygenerowanych plików PDF do formatu obrazu. Możesz zainstalować interfejsy API przez NuGet lub pobrać je bezpośrednio z sekcji Downloads.
PM> Install-Package Aspose.PUB.Cpp
PM> Install-Package Aspose.PDF.Cpp
Konwertuj pliki PUB na obrazy JPG za pomocą C ++
Poniżej przedstawiono kroki konwersji plików PUB na obrazy JPG.
- Załaduj plik PUB przy użyciu metody PubFactory::CreateParser(System::String fileName).
- Konwertuj plik PUB do formatu PDF, używając funkcji ConvertToPdf(System::SharedPtr doc, System::String nazwa_pliku).
- Załaduj wygenerowany plik PDF przy użyciu klasy Document.
- Przejrzyj strony pliku PDF w pętli.
- Pobierz wymiary strony PDF.
- Utwórz instancję klasy Resolution.
- Utwórz instancję klasy JpegDevice, podając szerokość, wysokość i rozdzielczość.
- Utwórz instancję FileStream dla obrazu wyjściowego.
- Konwertuj stronę PDF na obraz JPG za pomocą JpegDevice->Process(System::SharedPtr strona, System::SharedPtr<System::IO::Stream > wyjście) metoda.
- Zamknij strumień.
Poniższy przykładowy kod pokazuje, jak konwertować pliki PUB na obrazy JPG przy użyciu języka C++.
// Źródło PUB i wyjściowe ścieżki plików PDF
System::String filePub = u"SourceDirectory\\1.pub";
System::String filePdf = u"OutputDirectory\\1.pdf";
// Załaduj plik PUB
System::SharedPtr<IPubParser> parser = PubFactory::CreateParser(filePub);
System::SharedPtr<Aspose::Pub::Document> document = parser->Parse();
// Konwertuj plik PUB do formatu PDF
PubFactory::CreatePdfConverter()->ConvertToPdf(document, filePdf);
// Załaduj wygenerowany plik PDF
auto pdfDocument = MakeObject<Aspose::Pdf::Document>(filePdf);
auto info = MakeObject<Facades::PdfFileInfo>(pdfDocument);
// Iteruj przez strony PDF
for (auto page : pdfDocument->get_Pages())
{
// Pobierz wymiary strony PDF
int width = info->GetPageWidth(page->get_Number());
int height = info->GetPageHeight(page->get_Number());
// Utwórz instancję klasy Resolution
auto resolution = MakeObject<Devices::Resolution>(300);
// Utwórz urządzenie JPEG o określonej szerokości, wysokości i rozdzielczości
auto device = MakeObject<Devices::JpegDevice>(width, height, resolution);
// Utwórz strumień plików dla obrazu wyjściowego
System::SharedPtr<System::IO::FileStream> imageStream = System::IO::File::Create(String::Format(u"OutputDirectory\\page_{0}.jpg", page->get_Number()));
// Konwertuj stronę PDF na obraz JPG
device->Process(page, imageStream);
// Zamknij strumień
imageStream->Close();
}
Konwertuj pliki PUB na obrazy PNG za pomocą C++
Aby przekonwertować pliki PUB na obrazy PNG, wykonaj czynności podane poniżej.
- Załaduj plik PUB przy użyciu metody PubFactory::CreateParser(System::String fileName).
- Konwertuj plik PUB do formatu PDF, używając funkcji ConvertToPdf(System::SharedPtr doc, System::String nazwa_pliku) metoda.
- Załaduj wygenerowany plik PDF przy użyciu klasy Document.
- Przejrzyj strony pliku PDF w pętli.
- Pobierz wymiary strony PDF.
- Utwórz instancję klasy Resolution.
- Utwórz instancję klasy PngDevice, podając szerokość, wysokość i rozdzielczość.
- Utwórz instancję FileStream dla obrazu wyjściowego.
- Konwertuj stronę PDF na obraz PNG za pomocą [PngDevice->Process(System::SharedPtr strona, System::SharedPtrSystem::IO::Stream wyjście) 19 metoda.
- Zamknij strumień.
Poniższy przykładowy kod pokazuje, jak konwertować pliki PUB na obrazy PNG przy użyciu języka C++.
// Źródło PUB i wyjściowe ścieżki plików PDF
System::String filePub = u"SourceDirectory\\1.pub";
System::String filePdf = u"OutputDirectory\\1.pdf";
// Załaduj plik PUB
System::SharedPtr<IPubParser> parser = PubFactory::CreateParser(filePub);
System::SharedPtr<Aspose::Pub::Document> document = parser->Parse();
// Konwertuj plik PUB do formatu PDF
PubFactory::CreatePdfConverter()->ConvertToPdf(document, filePdf);
// Załaduj wygenerowany plik PDF
auto pdfDocument = MakeObject<Aspose::Pdf::Document>(filePdf);
auto info = MakeObject<Facades::PdfFileInfo>(pdfDocument);
// Iteruj przez strony PDF
for (auto page : pdfDocument->get_Pages())
{
// Pobierz wymiary strony PDF
int width = info->GetPageWidth(page->get_Number());
int height = info->GetPageHeight(page->get_Number());
// Utwórz instancję klasy Resolution
auto resolution = MakeObject<Devices::Resolution>(300);
// Utwórz urządzenie PNG o określonej szerokości, wysokości i rozdzielczości
auto device = MakeObject<Devices::PngDevice>(width, height, resolution);
// Utwórz strumień plików dla obrazu wyjściowego
System::SharedPtr<System::IO::FileStream> imageStream = System::IO::File::Create(String::Format(u"OutputDirectory\\page_{0}.png", page->get_Number()));
// Konwertuj stronę PDF na obraz PNG
device->Process(page, imageStream);
// Zamknij strumień
imageStream->Close();
}
Konwersja plików PUB do obrazów TIFF przy użyciu języka C++
Poniżej przedstawiono kroki konwersji plików PUB na obrazy TIFF.
- Załaduj plik PUB przy użyciu metody PubFactory::CreateParser(System::String fileName).
- Konwertuj plik PUB do formatu PDF, używając funkcji ConvertToPdf(System::SharedPtr doc, System::String nazwa_pliku) metoda.
- Załaduj wygenerowany plik PDF przy użyciu klasy Document.
- Pobierz wymiary pierwszej strony PDF.
- Utwórz instancję klasy Resolution.
- Utwórz instancję klasy TiffSettings i ustaw wymagane ustawienia.
- Utwórz instancję klasy TiffDevice, podając szerokość, wysokość, rozdzielczość i TiffSettings.
- Utwórz instancję FileStream dla obrazu wyjściowego.
- Konwertuj plik PDF na obraz TIFF za pomocą [TiffDevice->Process( System::SharedPtrAspose::Pdf::Document dokument, int32t od strony, int32t do strony, System::SharedPtrSystem::IO::Stream wyjście) 29 metoda.
- Zamknij strumień.
Poniższy przykładowy kod ilustruje sposób konwertowania plików PUB na obrazy TIFF przy użyciu języka C++.
// Źródło PUB i wyjściowe ścieżki plików PDF
System::String filePub = u"SourceDirectory\\1.pub";
System::String filePdf = u"OutputDirectory\\1.pdf";
// Załaduj plik PUB
System::SharedPtr<IPubParser> parser = PubFactory::CreateParser(filePub);
System::SharedPtr<Aspose::Pub::Document> document = parser->Parse();
// Konwertuj plik PUB do formatu PDF
PubFactory::CreatePdfConverter()->ConvertToPdf(document, filePdf);
// Załaduj wygenerowany plik PDF
auto pdfDocument = MakeObject<Aspose::Pdf::Document>(filePdf);
auto info = MakeObject<Facades::PdfFileInfo>(pdfDocument);
// Uzyskaj wymiary pierwszej strony PDF
int width = info->GetPageWidth(1);
int height = info->GetPageHeight(1);
// Utwórz instancję klasy Resolution
auto resolution = MakeObject<Devices::Resolution>(300);
// Utwórz instancję klasy TiffSettings i ustaw wymagane ustawienia
auto settings = MakeObject<Devices::TiffSettings>();
settings->set_Compression(Devices::CompressionType::None);
settings->set_Depth(Devices::ColorDepth::Default);
// Utwórz urządzenie TIFF z określoną szerokością, wysokością, rozdzielczością i ustawieniami Tiff
auto device = MakeObject<Devices::TiffDevice>(width, height, resolution, settings);
// Utwórz strumień plików dla obrazu wyjściowego
System::SharedPtr<System::IO::FileStream> imageStream = System::IO::File::Create(u"OutputDirectory\\pdf.tiff");
// Konwertuj plik PDF na obraz TIFF
device->Process(pdfDocument, 1, 1, imageStream);
// Zamknij strumień
imageStream->Close();
Uzyskaj bezpłatną licencję
Możesz wypróbować interfejs API bez ograniczeń ewaluacyjnych, prosząc o bezpłatną licencję tymczasową.
Wniosek
W tym artykule nauczyłeś się konwertować pliki Microsoft Publisher (PUB) na obrazy JPG, PNG i TIFF przy użyciu języka C++. Aby to osiągnąć, wykorzystaliśmy interfejsy API Aspose.PUB dla języka C++ i Aspose.PDF dla języka C++. Możesz szczegółowo zapoznać się z tymi interfejsami API, odwiedzając ich oficjalną dokumentację. W przypadku jakichkolwiek pytań prosimy o kontakt z nami na naszym darmowym forum pomocy technicznej.