Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimana untuk menukar PDF ke HTML? Analisis ringkas kaedah

Bagaimana untuk menukar PDF ke HTML? Analisis ringkas kaedah

PHPz
PHPzasal
2023-04-21 11:27:43974semak imbas

Dengan kemunculan era digital, semakin banyak maklumat sedang didigitalkan, antaranya dokumen PDF adalah yang paling biasa. Walaupun dokumen PDF mempunyai kelebihan besar dalam penyeragaman silang platform dan pemformatan, mereka akan menghadapi kesukaran besar dalam paparan halaman web dan aktiviti carian. Oleh itu, menukar dokumen PDF ke dalam format HTML telah menjadi tugas yang perlu untuk menjadikan dokumen PDF lebih mudah untuk dipaparkan dan dikongsi di Internet.

Sebagai bahasa pengaturcaraan yang digunakan secara meluas, Java menyediakan banyak antara muka program aplikasi (API) untuk menukar PDF kepada HTML Artikel ini akan memperkenalkan dan membandingkan antara muka program aplikasi Java (API) untuk menukar PDF kepada HTML dan penggunaan Mengambil PDFBox, iText dan Apache FOP sebagai contoh, kami akan menerangkan secara terperinci cara menggunakan perpustakaan ini untuk menukar PDF kepada HTML.

1. Keperluan untuk menukar PDF kepada HTML

Dengan perkembangan budaya Internet, aplikasi Web telah menjadi semakin penting dalam kehidupan kita, dan penukaran PDF kepada Format HTML jelas telah menjadi keperluan yang diperlukan untuk aplikasi Web. Berikut ialah keperluan utama:

  1. Kebolehcarian: Fail format PDF tidak mempunyai ciri kebolehcarian teks, dan menggunakan alat PDF ke HTML boleh menukar kandungan PDF kepada format HTML Ini akan meningkatkan teks dengan sangat baik kebolehcarian.
  2. Cetak semula dan muat turun: HTML selalunya digunakan untuk berkongsi dokumen di Web, supaya orang lain boleh melihat dan memuat turun dokumen anda pada bila-bila masa dan menukar PDF kepada format HTML lebih mudah alih dan mudah digunakan.
  3. Keboleheditan: Untuk sesetengah fail PDF yang perlu diedit, selepas menukarnya kepada format HTML, ia boleh diedit dengan mudah menggunakan editor HTML untuk kerjasama yang mudah.

2. Perbandingan alat PDF dengan HTML

alat PDF ke HTML boleh dilaksanakan berdasarkan tiga rangka kerja yang biasa digunakan berikut:

  1. Apache PDFBox : ialah perpustakaan berasaskan Java untuk memproses fail mentah PDF. Ia boleh digunakan untuk mengekstrak objek teks dan grafik, menterjemah beberapa teg tertentu dalam PDF, memasukkan dan memadam halaman, dsb.
  2. iText: ialah perpustakaan PDF sumber terbuka yang dibangunkan menggunakan Java. Ia boleh digunakan untuk mengekstrak atau mencipta dokumen baharu daripada fail PDF sedia ada. iText juga boleh digunakan untuk menjana format lanjutan untuk fail PDF.
  3. Apache FOP: ialah aplikasi Java sumber terbuka untuk menukar data dalam format XML kepada fail PDF. FOP boleh menukar fail XSL-FO kepada fail PDF, menyokong Unicode dan teks kanan ke kiri, sisipan dan alihkan halaman, dsb.

3. PDFBox

Apache PDFBox ialah perpustakaan Java sumber terbuka untuk mengendalikan fail PDF. Dalam PDFBox, PDF disimpan sebagai teks biasa, PDFBox menghuraikan PDF ke dalam memori dan kemudian menjadikannya sebagai teks biasa. Memandangkan PDFBox tidak menyokong format dan susun atur yang kompleks, ia tidak sesuai untuk memproses fail PDF yang besar dan kompleks. Walau bagaimanapun, PDFBox menyokong eksport fon, warna, latar belakang, jadual dan pautan, jadi menukar PDF kepada HTML adalah mudah.

Contoh kod untuk 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();
            }
        }
    }
}

Dalam kod contoh ini, kelas PDFTextStripper digunakan untuk mengekstrak teks biasa daripada fail PDF. Atas dasar ini, anda juga boleh mengeksport elemen PDF seperti fon, warna, latar belakang, jadual dan pautan dengan menambahkan kod lain.

4. iText

iText ialah perpustakaan PDF Java komponen komersil yang menyokong penciptaan, pengubahsuaian dan pengekstrakan pelbagai fail PDF. iText telah membangunkan banyak alat penukaran PDF, salah satunya adalah untuk menukar fail PDF kepada HTML.

Untuk menukar fail PDF kepada HTML, anda boleh menggunakan kelas HTMLWorker dan kelas XMLWorker yang disediakan oleh iText. Kelas HTMLWorker menyediakan HTMLWriter yang boleh mengekstrak dan menukar teks, perenggan, senarai dan elemen HTML lain daripada dokumen PDF. Kelas XMLWorker menyediakan cara yang lebih fleksibel untuk mengendalikan fail XML, termasuk fail HTML.

Memandangkan iText boleh membaca teks terus daripada PDF dan menyimpannya ke fail HTML, proses penukaran adalah sangat mudah. Walau bagaimanapun, ia hanya mempunyai sokongan yang sangat baik untuk pemformatan asas dan tetapan taip, dan sokongan yang lemah untuk fail PDF yang rumit dan memerlukan operasi yang kompleks.

Contoh kod untuk 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();
        }
    }
}

Dalam kod contoh ini, kelas PdfReader digunakan untuk mengekstrak teks daripada fail PDF dan kemudian menyimpan teks terus ke fail HTML.

5. Apache FOP

Apache FOP ialah aplikasi Java untuk menghasilkan fail PDF. Ia boleh menukar fail XSL-FO kepada fail PDF. Apache FOP juga menyediakan fungsi menukar fail HTML kepada fail PDF sebagai pilihan lain untuk menukar PDF kepada HTML.

Memandangkan Apache FOP mempunyai sokongan yang baik untuk HTML dan XML, apabila menukar PDF kepada HTML, anda boleh menukarnya kepada XML dahulu dan kemudian menggunakan Apache FOP untuk menukarnya kepada HTML. Memandangkan XML ialah format teks yang ringkas dan berstruktur, sangat mudah untuk menggunakan penghurai Java untuk menghuraikan XML dan menukarnya kepada HTML. Walau bagaimanapun, menggunakan Apache FOP untuk memproses PDF kepada HTML selalunya memerlukan konfigurasi dan pemasangan yang lebih kompleks untuk mencapai hasil yang ideal.

Contoh kod untuk 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();
        }
    }
}

Dalam contoh ini, FopFactory digunakan untuk membuka tika Fop, menukar input XML kepada PDF, dan kemudian menjana fail HTML. Semasa proses penukaran, anda juga boleh menggunakan lembaran gaya XSL untuk mengawal output HTML.

6. Kesimpulan

Artikel ini memperkenalkan rangka kerja utama dan API yang berkaitan untuk penukaran PDF kepada HTML menggunakan Java, termasuk PDFBox, iText dan Apache FOP. Dalam amalan, memilih perpustakaan yang sesuai dengan anda memerlukan pertimbangan menyeluruh berdasarkan keperluan anda sendiri. Jika anda perlu mengekstrak teks secara individu, PDFBox mungkin lebih sesuai jika anda perlu memilih dan mengeksport elemen yang berbeza dalam PDF, iText ialah pilihan pertama jika anda ingin menukar PDF kepada HTML yang sempurna, Apache FOP ialah penyelesaian yang lebih komprehensif .

Dalam praktiknya, jika anda perlu melakukan operasi yang lebih kompleks pada PDF, seperti mengubah suai reka letak, menambah ulasan atau menyelesaikan masalah, anda perlu menggunakan alat dan teknik yang lebih canggih, termasuk Adobe Acrobat dan paparan PDF yang disesuaikan sepenuhnya peranti. Walau bagaimanapun, untuk kebanyakan situasi penukaran PDF kepada HTML, adalah sangat mudah untuk menggunakan alat penukaran PDF kepada HTML yang disediakan oleh perpustakaan Java.

Atas ialah kandungan terperinci Bagaimana untuk menukar PDF ke HTML? Analisis ringkas kaedah. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:Apakah bahasa html?Artikel seterusnya:Apakah bahasa html?