Maison  >  Article  >  développement back-end  >  Comment convertir des fichiers PDF en fichiers HTML à l'aide de Java

Comment convertir des fichiers PDF en fichiers HTML à l'aide de Java

PHPz
PHPzoriginal
2023-04-26 18:00:163299parcourir

Dans les scénarios modernes, les fichiers PDF sont un format de document largement utilisé. Cependant, nous devons parfois convertir les fichiers PDF au format HTML pour une meilleure présentation sur les pages Web. Heureusement, la conversion de fichiers PDF en fichiers HTML est simple avec le langage de programmation Java.

Cet article présentera le processus de conversion de fichiers PDF en fichiers HTML, à l'aide du langage de programmation Java, couvrant le contenu suivant :

  1. Concepts de base et différences entre les fichiers PDF et les fichiers HTML
  2. Implémentation Java de la conversion de fichiers PDF en HTML fichiers Connaissances de base
  3. Bibliothèque PDFBox et son utilisation
  4. Génération de fichiers HTML
  5. Implémentation Java de l'ensemble du processus
  6. Concepts de base et différences entre les fichiers PDF et les fichiers HTML

Les fichiers PDF (Portable Document Format) sont une sorte de format qui peut être utilisé sur différentes plates-formes. Un format pour visualiser, imprimer et partager des fichiers. La mise en page et le format des fichiers PDF sont cohérents sur toutes les plates-formes, de sorte que les fichiers PDF peuvent généralement être utilisés pour la publication, l'impression et les formulaires électroniques.

Le fichier HTML (Hypertext Markup Language) est un langage standard pour créer des pages Web composées de texte, d'images, de liens, etc. Les navigateurs peuvent analyser les fichiers HTML et les restituer dans des pages Web.

La principale différence entre les fichiers PDF et les fichiers HTML est la mise en page du format. La mise en page des fichiers PDF est fixe, tandis que celle des fichiers HTML s'ajuste dynamiquement en fonction de la taille de l'écran utilisée dans le navigateur et des préférences de l'utilisateur.

  1. Connaissance de base de Java pour convertir des fichiers PDF en fichiers HTML

Java est un langage de programmation largement utilisé avec une API puissante et une vaste communauté open source qui peut être utilisée pour créer une variété d'applications. Pour convertir des fichiers PDF en fichiers HTML, vous devez utiliser la bibliothèque PDF de Java.

La bibliothèque PDF peut analyser les fichiers PDF et les convertir en modèles d'objet modifiables. De cette manière, les fichiers PDF peuvent être redimensionnés, améliorés ou convertis. Il existe de nombreuses options pour les bibliothèques PDF utilisées en Java, mais cet article utilisera la bibliothèque PDFBox d'Apache.

  1. Bibliothèque PDFBox et son utilisation

PDFBox est une bibliothèque Java open source d'Apache Software Foundation qui peut être utilisée pour traiter des fichiers PDF. Il offre de nombreuses fonctionnalités, notamment l'analyse, la création et l'édition de fichiers PDF.

Dans cet exemple, nous utiliserons PDFBox version 2.x. Veuillez noter que les dépendances de PDFBox 2.x nécessitent Java 1.8 ou supérieur.

Afin d'utiliser la bibliothèque PDFBox, nous pouvons ajouter les dépendances Maven suivantes dans l'outil de construction :

<dependency>
    <groupId>org.apache.pdfbox</groupId>
    <artifactId>pdfbox</artifactId>
    <version>2.0.21</version>
</dependency>
<dependency>
    <groupId>org.apache.pdfbox</groupId>
    <artifactId>pdfbox-tools</artifactId>
    <version>2.0.21</version>
</dependency>

Après avoir téléchargé toutes les dépendances nécessaires dans la version sélectionnée, nous pouvons utiliser la bibliothèque PDFBox pour traiter les fichiers PDF. L'étape suivante consiste à traiter chaque page du fichier PDF individuellement et à les convertir en texte.

  1. Génération de fichiers HTML

HTML est un langage de balisage standard utilisé pour créer des pages Web. Les fichiers HTML sont constitués de code HTML et de fichiers CSS et JavaScript externes. Dans cet exemple, nous utiliserons du code Java pour générer un fichier HTML complet.

Nous utilisons le moteur de modèles Freemarker pour introduire du contenu dynamique dans le code HTML. Freemarker est un moteur de modèles populaire qui combine des modèles et des données et génère le fichier HTML final. Le modèle HTML est le suivant :

<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>${title}</title>
<style>
${css}
</style>
</head>
<body>
<div class="content">
${content}
</div>
</body>
<script>
${javascript}
</script>
</html>

En utilisant ce modèle, nous pouvons mettre tout le contenu textuel de la page PDF dans la variable ${content}, et mettre la feuille de style et le code du script dans ${ css} et ${javascript}. ${content} 变量中,并将样式表和脚本代码放入 ${css}${javascript} 变量中。

  1. 整个过程的 Java 实现

现在我们已经介绍了所有必要的步骤,可以开始编写转换 PDF 文件的 Java 代码了。

import java.io.File;
import java.io.IOException;
import java.io.StringWriter;

import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.text.PDFTextStripper;
import org.apache.pdfbox.tools.PDFToHTML;

import freemarker.template.Configuration;
import freemarker.template.Template;
import freemarker.template.TemplateException;

public class PDFToHTMLConverter {

    private static final String TEMPLATE_FILE = "src/main/resources/template.html";
    private static final String OUTPUT_DIRECTORY = "./out/";

    public static void main(String[] args) throws IOException, TemplateException {
        String sourcePdf = args[0];
        File file = new File(sourcePdf);
        PDDocument document = PDDocument.load(file);

        PDFTextStripper pdfStripper = new PDFTextStripper();
        int startPage = 1;
        int endPage = document.getNumberOfPages();
        pdfStripper.setStartPage(startPage);
        pdfStripper.setEndPage(endPage);

        StringWriter writer = new StringWriter();
        pdfStripper.writeText(document, writer);

        Configuration freemarkerCfg = new Configuration(Configuration.VERSION_2_3_28);
        freemarkerCfg.setDirectoryForTemplateLoading(new File(""));
        Template template = freemarkerCfg.getTemplate(TEMPLATE_FILE);

        String title = file.getName().replace(".pdf", "");
        String content = writer.toString();

        StringWriter cssWriter = new StringWriter();
        PDFToHTML pdfToHtml = new PDFToHTML();
        pdfToHtml.startConversion(document, cssWriter);

        String css = cssWriter.toString();
        String javascript = "";

        File outputDirectory = new File(OUTPUT_DIRECTORY);
        outputDirectory.mkdirs();

        String htmlFileName = title + ".html";
        File htmlFile = new File(outputDirectory, htmlFileName);

        StringWriter writerHtml = new StringWriter();
        template.process(
            ImmutableMap.of("title", title, "content", content, "css", css, "javascript", javascript),
            writerHtml
        );

        FileUtils.write(htmlFile, writerHtml.toString(), StandardCharsets.UTF_8);

        document.close();
    }
}

在这段代码中,我们首先使用 PDFBox 库的 PDDocument 类加载 PDF 文件。然后,我们使用 PDFBox 库的 PDFTextStripper 类从 PDF 文件中提取文本内容。

接下来,我们使用 Freemarker 模板引擎从 HTML 模板中生成 HTML 文件。我们还使用 PDFBox 库的 PDFToHTML

    Implémentation Java de l'ensemble du processus

    Maintenant que nous avons introduit toutes les étapes nécessaires, nous pouvons commencer à écrire le code Java pour convertir les fichiers PDF.

    java PDFToHTMLConverter.java input.pdf

    Dans ce code, nous chargeons d'abord le fichier PDF en utilisant la classe PDDocument de la bibliothèque PDFBox. Nous utilisons ensuite la classe PDFTextStripper de la bibliothèque PDFBox pour extraire le contenu texte du fichier PDF.

    Ensuite, nous utilisons le moteur de modèles Freemarker pour générer des fichiers HTML à partir de modèles HTML. Nous utilisons également la classe PDFToHTML de la bibliothèque PDFBox pour générer des fichiers CSS lors de la conversion de fichiers PDF. Enfin, nous écrivons tout ce contenu dans un fichier HTML complet.

    🎜Exemple d'utilisation : 🎜rrreee🎜Dans cet exemple, nous prenons un fichier PDF en entrée et générons un fichier HTML contenant du texte et du CSS. 🎜🎜Fait ! Nous avons converti avec succès des fichiers PDF en fichiers HTML. 🎜🎜Cet article explique comment convertir des fichiers PDF en fichiers HTML à l'aide du langage de programmation Java. Nous avons approfondi les différences entre les fichiers PDF et les fichiers HTML, présenté la bibliothèque PDFBox et fourni un exemple de code pour générer des fichiers HTML. Je pense que les lecteurs maîtrisent les compétences de conversion de fichiers PDF en fichiers HTML et peuvent les utiliser dans la pratique. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn