Maison > Article > développement back-end > Comment convertir des fichiers PDF en fichiers HTML à l'aide de Java
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 :
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.
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.
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.
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}
变量中。
现在我们已经介绍了所有必要的步骤,可以开始编写转换 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
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.
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!