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 :
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 :
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(); } } } }
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(); } } }
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(); } } }
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!