Comment convertir un PDF en HTML ? Brève analyse des méthodes

PHPz
Libérer: 2023-04-21 11:40:05
original
984 Les gens l'ont consulté

Avec l'avènement de l'ère numérique, de plus en plus d'informations sont numérisées, parmi lesquelles les documents PDF sont les plus courants. Bien que les documents PDF présentent de grands avantages en termes de standardisation multiplateforme et de formatage, ils rencontreront de grandes difficultés dans les activités d'affichage et de recherche de pages Web. Par conséquent, la conversion de documents PDF au format HTML est devenue une tâche nécessaire pour faciliter l'affichage et le partage des documents PDF sur Internet.

En tant que langage de programmation largement utilisé, Java fournit de nombreuses interfaces de programme d'application (API) pour convertir des PDF en HTML. Cet article présentera et comparera les API Java pour convertir des PDF en HTML, et utilisera PDFBox, iText et Apache FOP. un exemple pour expliquer en détail comment utiliser ces bibliothèques pour convertir des PDF en HTML.

1. La nécessité de convertir un PDF en HTML

Avec le développement de la culture Internet, les applications Web sont devenues de plus en plus un élément indispensable de nos vies, et la conversion de PDF au format HTML est évidemment devenue une application Web. Une exigence nécessaire de le programme. Voici les principales exigences :

  1. Recherche : les fichiers au format PDF n'ont pas la fonctionnalité de recherche de texte, et l'utilisation de l'outil PDF en HTML peut convertir le contenu PDF au format HTML, ce qui améliorera considérablement la possibilité de recherche de texte.
  2. Réimpression et téléchargement : HTML est souvent utilisé pour partager des documents sur le Web, afin que d'autres puissent visualiser et télécharger vos documents à tout moment, et la conversion de PDF au format HTML est plus légère et plus facile à utiliser.
  3. Modibilité : pour certains fichiers PDF qui doivent être modifiés, après les avoir convertis au format HTML, ils peuvent être facilement modifiés à l'aide d'un éditeur HTML pour faciliter la collaboration.

2. Comparaison des outils PDF vers HTML

Les outils PDF vers HTML peuvent être implémentés sur la base des trois frameworks couramment utilisés suivants :

  1. Apache PDFBox : est une bibliothèque basée sur Java utilisée pour traiter les fichiers PDF originaux. Il peut être utilisé pour extraire du texte et des objets graphiques, traduire certaines balises spécifiques en PDF, insérer et supprimer des pages, etc.
  2. iText : est une bibliothèque PDF open source développée en Java. Il peut être utilisé pour extraire ou créer de nouveaux documents à partir de fichiers PDF existants. iText peut également être utilisé pour générer des formats avancés pour les fichiers PDF.
  3. Apache FOP : est une application Java open source permettant de convertir des données au format XML en fichiers PDF. FOP peut convertir des fichiers XSL-FO en fichiers PDF, prend en charge le texte Unicode et de droite à gauche, insère et déplace des pages, etc.

3. PDFBox

Apache PDFBox est une bibliothèque Java open source pour exploiter des fichiers PDF. Dans PDFBox, le PDF est stocké sous forme de texte brut, PDFBox analyse le PDF en mémoire, puis le restitue sous forme de texte brut. Étant donné que PDFBox ne prend pas en charge les formats et mises en page complexes, il n'est pas adapté au traitement de fichiers PDF volumineux et complexes. Cependant, PDFBox prend en charge l'exportation de polices, de couleurs, d'arrière-plans, de tableaux et de liens, ce qui facilite la conversion de PDF en HTML.

Exemple de code pour PDFBox :

import java.io.IOException;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.text.PDFTextStripper;
public class PDFtoHTML {
    public static void main(String[] args) throws IOException {
        PDDocument document = null;
        try {
            document = PDDocument.load(file);
            PDFTextStripper stripper = new PDFTextStripper();
            String text = stripper.getText(document);
            System.out.println(text);
        } finally {
            if (document != null) {
                document.close();
            }
        }
    }
}
Copier après la connexion

Dans cet exemple de code, la classe PDFTextStripper est utilisée pour extraire le texte brut d'un fichier PDF. Sur cette base, vous pouvez également exporter des éléments PDF tels que des polices, des couleurs, des arrière-plans, des tableaux et des liens en ajoutant d'autres codes.

4. iText

iText est une bibliothèque PDF Java de composants gratuite mais commerciale qui prend en charge la création, la modification et l'extraction de divers fichiers PDF. iText a développé de nombreux outils de conversion PDF, dont l'un consiste à convertir des fichiers PDF en HTML.

Pour convertir des fichiers PDF en HTML, vous pouvez utiliser les classes HTMLWorker et XMLWorker fournies par iText. La classe HTMLWorker fournit un HTMLWriter capable d'extraire et de convertir du texte, des paragraphes, des listes et d'autres éléments HTML à partir de documents PDF. La classe XMLWorker offre un moyen plus flexible de prendre en charge le traitement des fichiers XML, y compris les fichiers HTML.

Étant donné qu'iText peut lire le texte directement à partir d'un PDF et l'enregistrer dans un fichier HTML, le processus de conversion est très simple. Cependant, il n'offre qu'une très bonne prise en charge du formatage et de la composition de base, et une mauvaise prise en charge des fichiers PDF complexes et nécessitant des opérations complexes.

Exemple de code pour iText :

import java.io.File;
import java.io.FileOutputStream;
import com.itextpdf.text.pdf.PdfReader;
import com.itextpdf.text.pdf.parser.PdfTextExtractor;
public class PDFtoHTML 
{
    public static void main( String[] args )
    {
        try {
            String inputurl="pdf/demo.pdf";
            String outputurl="html/demo.html";
            File file=new File(outputurl);
            if(!file.exists()){
                file.createNewFile();
            }
            PdfReader reader=new PdfReader(inputurl);
            int totalpages=reader.getNumberOfPages();
            StringBuffer buffer=new StringBuffer();
            for(int i=1;i<=totalpages;i++){
                buffer.append(PdfTextExtractor.getTextFromPage(reader,i));
            }
            FileOutputStream fos=new FileOutputStream(outputurl);
            fos.write(buffer.toString().getBytes());
            fos.flush();
            fos.close();
            reader.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
Copier après la connexion

Dans cet exemple de code, la classe PdfReader est utilisée pour extraire le texte d'un fichier PDF, puis enregistrer le texte directement dans un fichier HTML.

5. Apache FOP

Apache FOP est une application Java permettant de générer des fichiers PDF. Elle peut convertir des fichiers XSL-FO en fichiers PDF. Apache FOP fournit également la fonction de conversion de fichiers HTML en fichiers PDF comme autre option de conversion de PDF en HTML.

Étant donné qu'Apache FOP prend en charge HTML et XML, lors de la conversion d'un PDF en HTML, vous pouvez d'abord le convertir en XML, puis utiliser Apache FOP pour le convertir en HTML. Puisque XML est un format de texte simple et structuré, il est très facile d’utiliser un analyseur Java pour analyser XML et le convertir en HTML. Cependant, l'utilisation d'Apache FOP pour traiter des PDF en HTML nécessite souvent une configuration et une installation plus complexes pour obtenir des résultats optimaux.

Exemple de code pour Apache FOP :

import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
import javax.xml.transform.Result;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.sax.SAXResult;
import javax.xml.transform.stream.StreamSource;
import org.apache.fop.apps.FOUserAgent;
import org.apache.fop.apps.Fop;
import org.apache.fop.apps.FopFactory;
import org.apache.fop.apps.MimeConstants;
 
public class PDFtoHTML {
    public static void main(String[] args) throws Exception {
        File xsltFile = new File("myXslt.xslt");
        File xmlFile = new File("myXml.xml");
        File htmlFile = new File("myHtml.html");
        FopFactory fopFactory = FopFactory.newInstance();
        FOUserAgent foUserAgent = fopFactory.newFOUserAgent();
        OutputStream out = new FileOutputStream(htmlFile);
        try {
            Fop fop = fopFactory.newFop(MimeConstants.MIME_HTML, foUserAgent, out);
            TransformerFactory factory = TransformerFactory.newInstance();
            Transformer transformer = factory.newTransformer(new StreamSource(xsltFile));
            Result res = new SAXResult(fop.getDefaultHandler());
            transformer.transform(new StreamSource(xmlFile), res);
        } finally {
            out.close();
        }
    }
}
Copier après la connexion

Dans cet exemple, FopFactory est utilisé pour ouvrir une instance Fop, convertir l'entrée XML en PDF, puis générer le fichier HTML. Pendant le processus de conversion, vous pouvez également utiliser une feuille de style XSL pour contrôler la sortie HTML.

6.Conclusion

Cet article présente le cadre principal et les API associées pour la conversion de PDF en HTML à l'aide de Java, notamment PDFBox, iText et Apache FOP. En pratique, choisir une bibliothèque qui vous convient nécessite une réflexion globale en fonction de vos propres besoins. Si vous avez besoin d'extraire du texte individuellement, PDFBox peut être plus adapté ; si vous devez sélectionner et exporter différents éléments dans un PDF, iText est le premier choix si vous souhaitez convertir un PDF en HTML parfait, Apache FOP est une solution plus complète ; .

En pratique, si vous devez effectuer des opérations plus complexes sur des PDF, telles que modifier la mise en page, ajouter des commentaires ou dépanner, vous devrez utiliser des outils et des techniques plus sophistiqués, notamment Adobe Acrobat et des visionneuses PDF entièrement personnalisées. Cependant, pour la plupart des situations de conversion PDF en HTML, il est très pratique d'utiliser l'outil de conversion PDF en HTML fourni par la bibliothèque Java.

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal