Przejdź do treści stopki
KORZYSTANIE Z IRONPDF FOR JAVA

Jak wyświetlać podgląd plików PDF w Javie

W tym artykule pokażemy, jak używać IronPDF do podglądu plików PDF w aplikacji Java.

IronPDF

IronPDF to wysokowydajna biblioteka Java, oferująca szybkie i dokładne operacje, co czyni ją doskonałym wyborem do zadań związanych z plikami PDF, takich jak odczytywanie plików PDF, wyodrębnianie tekstu i obrazów, scalanie oraz dzielenie.

Za pomocą biblioteki IronPDF można tworzyć pliki PDF z HTML, adresów URL i ciągów znaków z precyzyjnym renderowaniem co do piksela.

Wymagania wstępne

Aby stworzyć przeglądarkę dokumentów PDF w Javie, należy zadbać o następujące elementy.

  1. Zainstalowany pakiet JDK (Java Development Kit) oraz framework Swing UI.
  2. Środowisko IDE (zintegrowane środowisko programistyczne) dla języka Java, takie jak Eclipse, NetBeans lub IntelliJ IDEA.
  3. Biblioteka IronPDF for Java (można ją pobrać ze strony internetowej IronPDF i dołączyć do swojego projektu).

Konfiguracja

  1. Utwórz nowy projekt Java w wybranym środowisku IDE. Używam IntelliJ IDEA i utworzyłem projekt przy użyciu Mavena.
  2. Dodaj bibliotekę IronPDF do swojego projektu za pomocą Mavena, dodając zależności pokazane poniżej w pliku pom.xml projektu:

    
    <dependency>
        <groupId>com.ironsoftware</groupId>
        <artifactId>ironpdf</artifactId>
        <version>latest_version</version>
    </dependency>
    
    <dependency>
        <groupId>com.ironsoftware</groupId>
        <artifactId>ironpdf</artifactId>
        <version>latest_version</version>
    </dependency>
    XML
  3. Dodaj niezbędne importy:

    import com.ironsoftware.ironpdf.PdfDocument;
    
    import javax.imageio.ImageIO;
    import javax.swing.*;
    import javax.swing.border.EmptyBorder;
    import java.awt.image.BufferedImage;
    import java.io.File;
    import java.io.IOException;
    import java.nio.file.Paths;
    import java.util.ArrayList;
    import java.util.List;
    import com.ironsoftware.ironpdf.PdfDocument;
    
    import javax.imageio.ImageIO;
    import javax.swing.*;
    import javax.swing.border.EmptyBorder;
    import java.awt.image.BufferedImage;
    import java.io.File;
    import java.io.IOException;
    import java.nio.file.Paths;
    import java.util.ArrayList;
    import java.util.List;
    JAVA

Ładowanie pliku w formacie PDF

Aby wyświetlić dokumenty PDF, następnym krokiem jest załadowanie pliku PDF do tej aplikacji do przeglądania plików PDF w Javie przy użyciu klasy PdfDocument.

public class PDFPreview extends JFrame {

    private List<String> imagePaths = new ArrayList<>();

    private List<String> ConvertToImages() throws IOException {
        // Load the PDF document from a file
        PdfDocument pdfDocument = PdfDocument.fromFile(Paths.get("example.pdf"));
        // Convert the PDF pages to a list of BufferedImages
        List<BufferedImage> extractedImages = pdfDocument.toBufferedImages();
        int i = 1;
        // Iterate over the extracted images and save each to an image file
        for (BufferedImage extractedImage : extractedImages) {
            String fileName = "assets/images/" + i + ".png";
            ImageIO.write(extractedImage, "PNG", new File(fileName));
            // Store the file paths in the image paths list
            imagePaths.add("assets/images/" + i + ".png");
            i++;
        }
        return imagePaths;
    }
}
public class PDFPreview extends JFrame {

    private List<String> imagePaths = new ArrayList<>();

    private List<String> ConvertToImages() throws IOException {
        // Load the PDF document from a file
        PdfDocument pdfDocument = PdfDocument.fromFile(Paths.get("example.pdf"));
        // Convert the PDF pages to a list of BufferedImages
        List<BufferedImage> extractedImages = pdfDocument.toBufferedImages();
        int i = 1;
        // Iterate over the extracted images and save each to an image file
        for (BufferedImage extractedImage : extractedImages) {
            String fileName = "assets/images/" + i + ".png";
            ImageIO.write(extractedImage, "PNG", new File(fileName));
            // Store the file paths in the image paths list
            imagePaths.add("assets/images/" + i + ".png");
            i++;
        }
        return imagePaths;
    }
}
JAVA

Jak wyświetlać podgląd plików PDF w Javie, rysunek 1: Plik PDF na wyjściu Plik PDF wynikowy

Przekształcone na obrazy:

Jak wyświetlać podgląd plików PDF w Javie, rysunek 2: Konwersja pliku PDF na obrazy Konwersja pliku PDF na obrazy

Tworzenie okna przeglądarki plików PDF

Teraz możesz wyświetlać przekonwertowane obrazy w oknie podglądu przy użyciu komponentów Java Swing.

public class PDFPreview extends JFrame {
    private JPanel imagePanel;
    private JScrollPane scrollPane;

    public PDFPreview() {
        try {
            // Convert the PDF to images and store the image paths
            imagePaths = this.ConvertToImages();
        } catch (Exception e) {
            e.printStackTrace();
        }

        // Create imagePanel
        imagePanel = new JPanel();
        imagePanel.setLayout(new BoxLayout(imagePanel, BoxLayout.Y_AXIS));

        // Add images to the panel
        for (String imagePath : imagePaths) {
            ImageIcon imageIcon = new ImageIcon(imagePath);
            JLabel imageLabel = new JLabel(imageIcon);
            imageLabel.setBorder(new EmptyBorder(10, 10, 10, 10));
            imagePanel.add(imageLabel);
        }

        // Create the scroll pane and add imagePanel to it
        scrollPane = new JScrollPane(imagePanel);
        scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);

        // Set up the frame
        getContentPane().add(scrollPane);
        setTitle("PDF Viewer");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        pack();
        setLocationRelativeTo(null);
        setVisible(true);
    }
}
public class PDFPreview extends JFrame {
    private JPanel imagePanel;
    private JScrollPane scrollPane;

    public PDFPreview() {
        try {
            // Convert the PDF to images and store the image paths
            imagePaths = this.ConvertToImages();
        } catch (Exception e) {
            e.printStackTrace();
        }

        // Create imagePanel
        imagePanel = new JPanel();
        imagePanel.setLayout(new BoxLayout(imagePanel, BoxLayout.Y_AXIS));

        // Add images to the panel
        for (String imagePath : imagePaths) {
            ImageIcon imageIcon = new ImageIcon(imagePath);
            JLabel imageLabel = new JLabel(imageIcon);
            imageLabel.setBorder(new EmptyBorder(10, 10, 10, 10));
            imagePanel.add(imageLabel);
        }

        // Create the scroll pane and add imagePanel to it
        scrollPane = new JScrollPane(imagePanel);
        scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);

        // Set up the frame
        getContentPane().add(scrollPane);
        setTitle("PDF Viewer");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        pack();
        setLocationRelativeTo(null);
        setVisible(true);
    }
}
JAVA

Wywołaj konstruktor klasy Main

Na koniec umieść następujący kod w metodzie main w klasie PDFPreview:

public static void main(String[] args) {
    // Run the PDF viewer in the Event Dispatch Thread
    SwingUtilities.invokeLater(
        PDFPreview::new
    );
}
public static void main(String[] args) {
    // Run the PDF viewer in the Event Dispatch Thread
    SwingUtilities.invokeLater(
        PDFPreview::new
    );
}
JAVA

Wyjaśnienie kodu

  1. PDFPreview rozszerza JFrame, kontener najwyższego poziomu służący do tworzenia okien.
  2. Zadeklarowane zmienne instancji: imagePanel, scrollPane i imagePaths.
  3. ConvertToImages() pobiera plik PDF example.pdf i konwertuje go na serię obrazów. PdfDocument ładuje plik PDF i konwertuje każdą stronę na BufferedImage, a następnie zapisuje każdą z nich jako plik PNG w katalogu assets/images/ i dodaje ścieżki do imagePaths.
  4. PDFPreview() inicjuje aplikację. Wywołuje ConvertToImages(), aby wypełnić imagePaths.
  5. imagePanel jest inicjowany i ustawia swój układ jako układ pionowego pola.
  6. Przechodzi przez imagePaths i tworzy ImageIcon dla każdego obrazu, dodaje je do JLabel oraz dodaje etykiety do imagePanel.
  7. Kod źródłowy tworzy JScrollPane i ustawia imagePanel jako obszar wyświetlania.
  8. Następnie kod dodaje scrollPane do panelu zawartości ramki, ustawia tytuł ramki, ustawia domyślną operację zamykania, pakuje komponenty, wyśrodkowuje ramkę na ekranie i sprawia, że staje się ona widoczna.
  9. main() jest punktem wejścia programu. Wywołuje konstruktor PDFPreview przy użyciu SwingUtilities.invokeLater(), aby zapewnić, że komponenty Swing są tworzone i modyfikowane w wątku wysyłania zdarzeń (Event Dispatch Thread), czyli dedykowanym wątku dla operacji GUI.

Teraz uruchom program, a wyświetli się przeglądarka plików PDF z załadowanym dokumentem PDF.

Jak wyświetlać podgląd plików PDF w Javie, rysunek 3: Plik PDF na wyjściu Plik PDF wynikowy

Wnioski

W tym artykule pokazano, jak używać IronPDF for Java w aplikacjach opartych na Javie do podglądu plików PDF w aplikacji Java oraz jak uzyskać dostęp do pliku PDF i wyświetlić go.

Dzięki IronPDF możesz łatwo zintegrować funkcję podglądu plików PDF ze swoją aplikacją Java. Szczegółowe wskazówki i przykłady dotyczące wykorzystania IronPDF for Java można znaleźć w tym przykładzie. Aby zapoznać się z samouczkiem dotyczącym czytnika plików PDF dla języka Java, odwiedź ten artykuł.

IronPDF jest bezpłatny do celów programistycznych. Aby dowiedzieć się więcej o szczegółach licencji, można odwiedzić podaną stronę dotyczącą licencji. Dostępna jest również bezpłatna wersja próbna do użytku komercyjnego.

Często Zadawane Pytania

Jak mogę wyświetlić podgląd plików PDF w aplikacji Java?

Można przeglądać pliki PDF w aplikacji Java, używając IronPDF do konwersji stron PDF na obrazy, a następnie wyświetlając te obrazy za pomocą komponentów Java Swing. Wymaga to załadowania pliku PDF za pomocą klasy PdfDocument, konwersji stron do formatu BufferedImage oraz użycia komponentów JPanel i JScrollPane do ich wyświetlenia.

Jakie kroki należy podjąć, aby zintegrować bibliotekę PDF z moim projektem Java?

Aby zintegrować IronPDF z projektem Java, należy dołączyć bibliotekę do pliku pom.xml projektu jako zależność Maven z identyfikatorem grupy „com.ironsoftware” i identyfikatorem artefaktu „ironpdf”. Należy upewnić się, że zainstalowano JDK i środowisko IDE Java.

Jak przekonwertować strony PDF na obrazy przy użyciu języka Java?

Dzięki IronPDF można konwertować strony PDF na obrazy, ładując dokument PDF za pomocą klasy PdfDocument i konwertując każdą stronę na BufferedImage. Obrazy te można następnie zapisać jako pliki PNG do dalszego wykorzystania.

Jakie komponenty Java są potrzebne do wyświetlania stron PDF jako obrazów?

Aby wyświetlać strony PDF jako obrazy w Javie, można użyć komponentów Java Swing, a konkretnie JPanel do przechowywania obrazów oraz JScrollPane do przewijania obrazów.

Dlaczego wątek wysyłania zdarzeń jest ważny podczas tworzenia przeglądarki plików PDF w Javie?

Wątek wysyłania zdarzeń (EDT) ma kluczowe znaczenie, ponieważ zapewnia, że wszystkie komponenty Swing są tworzone i modyfikowane w dedykowanym wątku dla operacji GUI, zapobiegając potencjalnym problemom z wątkami w aplikacji Java.

Czy mogę korzystać z IronPDF for Java bez licencji na programowanie?

Tak, IronPDF można używać za darmo podczas tworzenia oprogramowania. Dostępna jest też darmowa wersja próbna do celów komercyjnych, która pozwala sprawdzić funkcje programu przed zakupem licencji.

Gdzie mogę znaleźć dodatkowe zasoby dotyczące korzystania z IronPDF w Javie?

Dodatkowe zasoby, przykłady i samouczki dotyczące korzystania z IronPDF for Java są dostępne na stronie internetowej IronPDF. Zasoby te obejmują przewodniki dotyczące tworzenia plików PDF z HTML oraz różne techniki manipulacji plikami PDF.

Jak wygląda proces konwersji stron PDF na obrazy i wyświetlania ich w Java Swing?

Aby przekonwertować strony PDF na obrazy przy użyciu IronPDF, należy załadować plik PDF za pomocą PdfDocument, przekonwertować każdą stronę na BufferedImage i zapisać je jako pliki PNG. Obrazy te należy wyświetlić przy użyciu JPanel i JScrollPane w aplikacji Java Swing.

Darrius Serrant
Full Stack Software Engineer (WebOps)

Darrius Serrant posiada tytuł licencjata z informatyki z Uniwersytetu Miami i pracuje jako Full Stack WebOps Marketing Engineer w Iron Software. Już od młodych lat zainteresował się kodowaniem, postrzegając informatykę jako zarówno tajemniczą, jak i dostępną, co czyni ją doskonałym medium dla kreatywności ...

Czytaj więcej

Zespol wsparcia Iron

Jestesmy online 24 godziny, 5 dni w tygodniu.
Czat
Email
Zadzwon do mnie