
Konwertuj PNG na PDF za pomocą Java
PNG i PDF to obecnie popularne i najczęściej używane formaty plików. PNG to format pliku obrazu, natomiast PDF (Portable Document Format) oferuje niezawodną i wydajną reprezentację danych. W niektórych sytuacjach konieczna jest konwersja formatu pliku obrazu na format PDF. Dlatego w tym poście na blogu dowiemy się, jak przekonwertować PNG na PDF za pomocą Java PDF API. Napiszemy fragment kodu i kroki umożliwiające wykonanie tej konwersji w aplikacji Java.
W tym artykule omówimy następujące tematy:
Biblioteka PDF w Javie
Ta biblioteka Java PDF jest łatwa w instalacji i zawiera dokumentację dotyczącą instalacji. Jest to interfejs API na poziomie przedsiębiorstwa oferujący solidne funkcje konwersji i manipulacji. Możesz jednak [pobrać] plik JAR lub zainstalować go, korzystając z następujących konfiguracji Mavena:
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-words</artifactId>
<version>21.11</version>
<type>pom</type>
</dependency>
Konwertuj PNG na PDF za pomocą Java
Będziemy używać klas i metod dostępnych w tej bibliotece Java PDF. Umożliwia konwersję PNG do PDF poprzez napisanie kilku linijek kodu źródłowego w Javie.
Możesz wykonać kroki i fragment kodu wymieniony poniżej:
Utwórz instancję klasy Document.
Utwórz obiekt klasy DocumentBuilder, aby ułatwić dodawanie treści do dokumentu.
Załaduj wejściowy plik obrazu wywołując metodę createImageInputStream i przypisując go do obiektu ImageInputStream.
Wywołaj metodę getImageReaders, która zwraca Iterator zawierający wszystkie aktualnie zarejestrowane ImageReaders i przypisuje go do obiektu klasy ImageReader.
Wywołaj metodę setInput, która ustawia źródło wejściowe, które ma być używane dla danego ImageInputStream.
Uzyskaj liczbę klatek obrazu, wywołując metodę getNumImages.
Przejdź przez wszystkie klatki.
Wybierz aktywną ramkę i przypisz ją do obiektu klasy BufferedImage.
Wywołaj metodę getPageSetup, aby uzyskać dostęp do bieżących ustawień strony i przypisz ją do obiektu klasy PageSetup.
Ustaw wysokość strony wywołując metodę setPageWidth.
Wywołaj metodę setPageHeight, aby ustawić szerokość strony.
Wstaw obraz do dokumentu i umieść go w lewym górnym rogu strony wywołując metodę insertImage.
Zapisz plik w formacie PDF wywołując metodę save.
public static void ConvertImageToPDF(String inputFileName, String outputFileName) throws Exception {
// Utwórz instancję klasy Document
Document doc = new Document();
// Utwórz obiekt klasy DocumentBuilder, aby ułatwić dodawanie treści do dokumentu.
DocumentBuilder builder = new DocumentBuilder(doc);
// Załaduj obrazy z dysku za pomocą odpowiedniego czytnika.
// Formaty plików, które można załadować, zależą od czytników obrazów dostępnych w urządzeniu.
// Załaduj wejściowy plik obrazu wywołując metodę createImageInputStream i przypisz go do obiektu ImageInputStream.
ImageInputStream iis = ImageIO.createImageInputStream(new File(inputFileName));
// Wywołaj metodę getImageReaders, która zwraca Iterator zawierający wszystkie aktualnie zarejestrowane ImageReaders i przypisuje go do obiektu klasy ImageReader.
ImageReader reader = ImageIO.getImageReaders(iis).next();
// Wywołaj metodę setInput, która ustawia źródło wejściowe do użycia dla danego ImageInputStream lub innego obiektu.
reader.setInput(iis, false);
// Uzyskaj liczbę klatek obrazu, wywołując metodę getNumImages
int framesCount = reader.getNumImages(true);
// Przejdź przez wszystkie klatki.
for (int frameIdx = 0; frameIdx < framesCount; frameIdx++) {
// Wstaw podział sekcji przed każdą nową stroną, w przypadku obrazu wieloklatkowego.
if (frameIdx != 0)
builder.insertBreak(BreakType.SECTION_BREAK_NEW_PAGE);
// Wybierz aktywną ramkę i przypisz ją do obiektu klasy BufferedImage
BufferedImage image = reader.read(frameIdx);
// Chcemy, aby rozmiar strony był taki sam jak rozmiar obrazu.
// Konwertuj piksele na punkty, aby dopasować rozmiar strony do rzeczywistego rozmiaru obrazu.
// Wywołaj metodę getPageSetup, aby uzyskać dostęp do bieżących ustawień strony i przypisz ją do obiektu klasy PageSetup
PageSetup ps = builder.getPageSetup();
// Ustaw wysokość strony, wywołując metodę setPageWidth
ps.setPageWidth(ConvertUtil.pixelToPoint(image.getWidth()));
// Wywołaj metodę setPageHeight, aby ustawić szerokość strony
ps.setPageHeight(ConvertUtil.pixelToPoint(image.getHeight()));
// Wstaw obraz do dokumentu i umieść go w lewym górnym rogu strony wywołując metodę wstawki.
builder.insertImage(
image,
RelativeHorizontalPosition.PAGE,
0,
RelativeVerticalPosition.PAGE,
0,
ps.getPageWidth(),
ps.getPageHeight(),
WrapType.NONE);
}
if (iis != null) {
iis.close();
reader.dispose();
}
// Zapisz plik w formacie PDF, wywołując metodę save
doc.save(outputFileName);
}
Wynik możesz zobaczyć na obrazku poniżej:

Konwersja PNG do PDF
Zdobądź bezpłatną licencję
Możesz uzyskać bezpłatną licencję tymczasową, aby wypróbować interfejs API poza ograniczeniami ewaluacyjnymi.
Podsumowując
Na tym możemy zakończyć ten wpis na blogu. Zademonstrowaliśmy implementację biblioteki Java PDF do konwersji PNG do formatu PDF przy użyciu programowego języka Java. Ta biblioteka umożliwia zbudowanie konwertera PNG na PDF przy użyciu kilku linii kodu. Ponadto możesz odwiedzić dokumentację tego interfejsu API konwersji PNG na PDF. conholdate.com stale pisze na nowe interesujące tematy. Dlatego prosimy o pozostawanie w kontakcie, aby otrzymywać najnowsze aktualizacje.
Zadać pytanie
Możesz dać nam znać o swoich pytaniach lub wątpliwościach na naszym forum.
Często zadawane pytania
Jak przekonwertować plik PNG na plik PDF?
Możesz użyć tej biblioteki, aby programowo przekonwertować PNG na PDF w Javie. Zawiera obszerną dokumentację dotyczącą jego użytkowania.
Jak zapisać plik PNG jako plik PDF bez utraty jakości?
Zapoznaj się z tą sekcją, aby dowiedzieć się, jak zapisać plik PNG jako plik PDF przy użyciu biblioteki Java. Możesz wywołać metodę save, aby zapisać plik PNG jako plik PDF.