Konverter PDF ke HTML Gratis
Ekstrak teks dari dokumen PDF dan konversikan ke HTML semantik yang bersih. Pratinjau seketika dan unduh atau salin kodenya.
Memproses…
Tentang konversi PDF → HTML
Alat ini menggunakan PDF.js untuk mengekstrak teks dari file PDF dan merendernya sebagai HTML semantik. Ideal untuk mengonversi dokumen ke format yang ramah web, mengarsipkan konten, atau menyiapkan teks untuk pemrosesan lebih lanjut.
Kasus penggunaan umum
- Pengarsipan dokumen · konversi PDF ke HTML untuk preservasi digital jangka panjang dan akses web.
- Migrasi konten · ekstrak teks dari PDF ke HTML terstruktur untuk CMS atau penerbitan web.
- Ekstraksi teks · dapatkan teks bersih dari PDF untuk analisis atau penggunaan ulang.
- Penerbitan web · konversi dokumen Anda ke format ramah web untuk pemuatan cepat dan aksesibilitas yang lebih baik.
- Pemrosesan data · siapkan konten PDF untuk transformasi atau integrasi lebih lanjut.
Pertanyaan umum
Ukuran PDF apa yang didukung?
Alat ini dapat memproses PDF hingga sekitar 10 MB tergantung browser Anda. PDF yang sangat besar atau kompleks mungkin memerlukan waktu lebih lama untuk diproses.
Apakah mempertahankan pemformatan PDF?
Alat mengekstrak konten teks dan merendernya dalam paragraf. Tata letak kompleks, gambar, dan gaya disederhanakan menjadi HTML yang bersih.
Bisakah saya mengunduh HTML?
Ya. Klik "Unduh HTML" untuk menyimpan konten yang dikonversi sebagai file .html, dapat dibuka di browser atau editor apa pun.
Sejarah singkat PDF, dari PostScript hingga halaman portabel
Portable Document Format adalah gagasan John Warnock, salah satu pendiri Adobe Systems, yang sebelumnya turut menemukan PostScript, bahasa deskripsi halaman yang, mulai tahun 1985 dengan Apple LaserWriter, membuat desktop publishing menjadi mungkin. PostScript sangat canggih tetapi ia adalah bahasa pemrograman, bukan format dokumen: file PostScript mendeskripsikan cara merender halaman ketika dimasukkan ke dalam interpreter, tetapi tidak benar-benar dimaksudkan untuk dibaca, diedit, atau dirender secara konsisten di mesin yang tidak memiliki font yang tepat.
Pada tahun 1991, Warnock mengedarkan memo internal Adobe yang dikenal sebagai Proyek Camelot. Premisnya: Adobe harus membangun satu format file yang dapat menangkap dokumen apa pun (termasuk font, tata letak, grafis vektor, dan gambarnya) dan mereproduksinya secara identik di komputer mana pun, pada sistem operasi apa pun, terlepas dari aplikasi mana yang awalnya membuatnya. Pada saat proposal tersebut disempurnakan, proyek tersebut telah memiliki nama produk: Adobe Acrobat.
Acrobat 1.0 dan PDF 1.0 didemonstrasikan pada pameran dagang Comdex Fall di Las Vegas pada November 1992 dan dikirimkan kepada pelanggan pada Juni 1993. Keputusan komersial penting Adobe datang pada tahun 1994 ketika ia mulai memberikan Acrobat Reader secara gratis, langkah yang mencerminkan apa yang terjadi dengan browser HTML dan menanamkan basis jutaan instalasi. Format ini melalui beberapa revisi: PDF 1.1 (1996, tautan eksternal dan keamanan), 1.2 (1996, AcroForms), 1.3 (2000, tanda tangan digital), 1.4 (2001, transparansi), 1.5 (2003, aliran objek dan JPEG 2000), 1.6 (2004, OpenType dan 3D), 1.7 (2006). Pada tahun 2008, PDF 1.7 diterbitkan sebagai ISO 32000-1:2008; PDF 2.0 menyusul sebagai ISO 32000-2:2017, dengan edisi kedua yang direvisi secara substansial (ISO 32000-2:2020) yang menyertakan errata dan merupakan referensi otoritatif saat ini.
Beberapa profil PDF khusus ada di samping standar utama: PDF/A (ISO 19005-1:2005, dengan -2 pada 2011 dan -3 pada 2012) adalah profil pengarsipan yang melarang fitur yang bergantung pada sumber daya eksternal atau perangkat lunak masa depan (tidak ada JavaScript, tidak ada audio, tidak ada enkripsi, font harus tertanam); PDF/X adalah profil prepress yang digunakan oleh industri percetakan; PDF/E adalah profil rekayasa untuk gambar teknis; PDF/UA (ISO 14289-1:2014) adalah profil aksesibilitas universal yang mengharuskan struktur logis dan penandaan agar pembaca layar dapat menyajikan konten dalam urutan baca; PDF/VT adalah profil variabel-dan-transaksional yang digunakan dalam penggabungan surat yang dipersonalisasi.
Mengapa konversi PDF-ke-HTML secara struktural sulit
PDF, pada tingkat terendahnya, adalah kumpulan objek bernomor (kamus, array, string, angka, nama, dan aliran biner) yang ditata dengan tabel referensi silang di akhir yang memungkinkan pembaca melompat ke objek mana pun tanpa mengurai seluruh file. Objek-objek tersebut membentuk pohon yang berakar pada objek Catalog yang menunjuk ke pohon Pages, yang berisi objek Page. Setiap Page merujuk pada content stream: instruksi aktual yang menggambar halaman.
Content stream adalah urutan operator grafis kompak dalam bahasa kecil yang terkait dengan PostScript tetapi tidak Turing-complete. Untuk teks, ia menggunakan Tf (atur font dan ukuran), Td (pindahkan posisi teks), Tm (atur matriks teks), Tj (tampilkan string), TJ (tampilkan array string dengan offset karakter individual opsional untuk kerning), dan ET (akhiri teks). Poin krusialnya adalah bahwa semuanya bersifat posisional. Paragraf teks isi tidak disimpan sebagai paragraf. Ia disimpan sebagai serangkaian perintah Tj atau TJ, masing-masing menggambar satu glyph atau kumpulan pendek glyph pada koordinat x dan y tertentu di halaman. Tidak ada konsep kalimat, paragraf, judul, daftar, atau kolom, hanya pertanyaan di mana setiap karakter secara fisik berada.
HTML adalah kebalikannya: pohon elemen semantik yang mengalir di mana tata letak adalah tanggung jawab renderer dan HTML yang sama dapat menyesuaikan ke ponsel, desktop, atau pembaca layar. Mengonversi PDF ke HTML oleh karena itu memerlukan rekayasa balik struktur yang tidak pernah diwajibkan untuk direkam oleh PDF. Konverter harus melihat distribusi spasial teks di setiap halaman dan menyimpulkan:
- karakter mana yang termasuk dalam kata yang sama (dengan mengukur jarak antar glyph terhadap lebar maju rata-rata font);
- kata-kata mana yang termasuk dalam baris yang sama (dengan mengelompokkan berdasarkan koordinat y dalam batas toleransi);
- baris mana yang termasuk dalam paragraf yang sama (dengan mendeteksi perbedaan garis dasar dan pola lekukan);
- paragraf mana yang termasuk dalam kolom yang sama (dengan menemukan sekat vertikal berupa ruang kosong);
- dan urutan baca di beberapa kolom, catatan kaki, dan catatan samping.
Tidak ada dari ini yang diselesaikan dengan membaca content stream secara berurutan, karena urutan dalam stream tidak selalu merupakan urutan baca. Mesin tata letak yang menghasilkan PDF mungkin menggambar elemen dalam urutan yang paling efisien untuk rendering, yang bisa dari atas ke bawah dengan pola zigzag, atau berdasarkan font, atau berdasarkan warna. Teks dari satu paragraf dapat diselingi dengan teks dari paragraf yang berdekatan dalam stream yang mendasarinya. Inilah mengapa ekstraktor PDF yang hanya menggabungkan string secara berurutan menghasilkan keluaran yang berantakan untuk dokumen yang lebih kompleks dari novel satu kolom.
Jika PDF telah ditandai: artinya, jika penulisnya menyertakan pohon struktur di samping konten visual, pekerjaan menjadi jauh lebih mudah. PDF yang ditandai mencakup hierarki elemen struktur (P untuk paragraf, H1 hingga H6 untuk judul, L untuk daftar, LI untuk item daftar, Table, TR, TD, Figure, Caption) yang mencerminkan kosakata semantik HTML. PDF/UA mewajibkan penandaan untuk aksesibilitas justru karena PDF yang tidak ditandai pada dasarnya buram bagi teknologi bantuan. Namun dalam praktiknya, sebagian besar PDF yang beredar tidak ditandai, atau ditandai dengan buruk oleh alat pengarang, sehingga konverter yang tangguh harus kembali ke analisis tata letak bahkan ketika tag ada.
Pustaka rendering PDF sumber terbuka utama
PDF.js adalah pustaka JavaScript yang ditulis oleh Mozilla, awalnya diluncurkan pada Juni 2011 sebagai proyek eksperimental yang dipimpin oleh Andreas Gal. Ia mengurai dan merender PDF sepenuhnya di browser menggunakan canvas HTML5 dan JavaScript, tanpa memerlukan plugin native. PDF.js dibundel ke dalam Firefox sebagai penampil PDF default mulai Firefox 19 pada Maret 2013, menggantikan plugin Adobe Reader. Ia mengekspos API JavaScript yang memungkinkan halaman mengekstrak konten teks dengan metadata posisional (setiap run teks dikembalikan beserta x, y, lebar, tinggi, nama font, dan ukuran fontnya). Alat ini dibangun di atas PDF.js.
Poppler adalah pustaka C++ yang diturunkan dari xpdf, penampil PDF andal yang telah dipertahankan oleh Glyph and Cog sejak akhir 1990-an. Poppler mendukung fitur rendering PDF pada lingkungan desktop Linux (Evince di GNOME, Okular di KDE), utilitas baris perintah pdftotext dan pdftohtml, serta banyak pipeline pemrosesan PDF sisi server. MuPDF, oleh Artifex Software (perusahaan yang sama yang mempertahankan Ghostscript), adalah pustaka C yang lebih kecil dan lebih cepat yang ditargetkan untuk penggunaan tertanam. PDFium adalah mesin yang dikirimkan dalam Google Chrome dan Microsoft Edge untuk tampilan PDF bawaan; ia merupakan fork dari Foxit PDF SDK proprietary yang bersama-sama di-open-source oleh Google dan Foxit pada Mei 2015. qpdf adalah pustaka C++ dan alat baris perintah yang berfokus pada manipulasi struktural daripada rendering; ia dapat mengompresi, mengenkripsi, mendekripsi, melinearisasi, dan menulis ulang PDF tanpa mengubah konten visualnya.
Untuk menghasilkan keluaran HTML secara khusus, proyek tujuan-khusus yang paling penting adalah pdf2htmlEX, awalnya ditulis oleh Lu Wang pada tahun 2012 dan kini dipertahankan oleh kelompok komunitas. pdf2htmlEX mengambil pendekatan berbeda dari sebagian besar konverter: alih-alih mencoba merekonstruksi HTML semantik, ia mereproduksi tata letak visual PDF seakurat mungkin dengan mengeluarkan elemen div yang diposisikan secara absolut untuk setiap run teks, menyematkan font asli sebagai file Web Open Font Format (WOFF), dan menggunakan transformasi CSS bila diperlukan. Hasilnya adalah halaman web yang terlihat tidak dapat dibedakan dari PDF asli, tetapi HTML yang mendasarinya adalah dinding span position: absolute tanpa makna semantik.
Fidelitas tata letak vs alur semantik, pertukaran inti
Ini adalah pertukaran inti dalam konversi PDF-ke-HTML: Anda bisa mendapatkan fidelitas tata letak atau alur semantik, tetapi sulit untuk mendapatkan keduanya. Konverter yang mengutamakan fidelitas seperti pdf2htmlEX menghasilkan keluaran yang tercetak dan terlihat seperti aslinya tetapi tidak dapat dibaca oleh pembaca layar dan kaku di layar ponsel. Konverter yang mengutamakan alur seperti pdftotext atau getTextContent dari PDF.js diikuti rekonstruksi paragraf sederhana menghasilkan HTML yang bersih, mudah dibaca, dan aksesibel, tetapi kehilangan kekayaan visual sumber: warna, font tepat, penempatan gambar, kisi tabel, dan segala kesan halaman aslinya.
Alat Absolutool ini berada kuat di sisi yang mengutamakan alur. Ia mengekstrak konten teks menggunakan PDF.js dan mengeluarkannya sebagai paragraf, mengutamakan keterbacaan, aksesibilitas, dan ukuran file kecil daripada reproduksi piksel-sempurna. Jika Anda memerlukan rute reproduksi visual (setiap glyph di posisi aslinya, font asli tertanam, paginasi tepat dipertahankan), pdf2htmlEX adalah alat yang perlu dilihat; jika Anda memerlukan rute paragraf-yang-mudah-dibaca (penggunaan ulang konten, penerbitan web, HTML yang dapat diindeks pencarian, keluaran yang aksesibel bagi pembaca layar), alat ini sesuai tujuan.
Font tertanam, gambar, dan konten vektor di baliknya
PDF dapat menyematkan font apa pun yang diinginkannya, dan konverter yang ingin mempertahankan tampilan asli memiliki tiga opsi. Sematkan-dan-sajikan: konverter mengekstrak setiap font tertanam dari PDF, mengemasnya ulang sebagai font web dalam format yang dipahami browser (WOFF atau, sejak 2018, WOFF2 dengan kompresi Brotli yang lebih agresif), dan menautkannya dari HTML yang dihasilkan. Ini mempertahankan tampilan asli tetapi menambah ukuran file dan mungkin menghadapi masalah lisensi jika hak penyematan font tidak mencakup redistribusi web. Substitusi: petakan setiap font tertanam ke font sistem yang serupa (font PDF serif mungkin menjadi Times New Roman atau Georgia), menerima beberapa penyimpangan visual sebagai imbalan keluaran yang lebih kecil dan bersih. Abaikan: buang informasi font sepenuhnya dan biarkan browser menerapkan font isi default, yang dilakukan oleh sebagian besar konverter yang mengutamakan alur karena pengguna membaca HTML dalam penataan normal browser.
Gambar menghadirkan pilihan yang serupa. Konverter dapat mengekstrak gambar tertanam sebagai file terpisah dan merujuknya dari HTML; merasterisasi seluruh halaman sebagai gambar dan menyematkannya secara inline (mengubah PDF menjadi galeri foto yang dipercantik); atau membuang gambar sepenuhnya dan hanya mengeluarkan teks, yang merupakan pilihan yang dibuat alat ini, tepat untuk penggunaan ulang konten daripada reproduksi visual. Konten vektor (garis, bentuk, jalur yang digambar oleh operator grafis PDF) bahkan lebih canggung, karena tidak ada cara bersih untuk merepresentasikannya dalam HTML semantik; konverter yang ingin mempertahankannya cenderung menggunakan SVG inline atau rasterisasi PNG.
Ketika PDF adalah gambar: fallback OCR untuk dokumen yang dipindai
Sebagian besar PDF yang beredar sebenarnya bukan dokumen dalam artian terstruktur sama sekali; melainkan gambar pindaian dari dokumen kertas, dikemas dalam pembungkus PDF karena PDF adalah format universal untuk mengirim hal-hal yang menyerupai kertas melalui internet. PDF yang dipindai tidak memiliki content stream teks; setiap halaman adalah satu gambar raster tertanam yang menggambarkan teks tetapi tidak mengandungnya sebagai karakter yang dapat dibaca mesin. Mengekstrak teks dari PDF semacam itu memerlukan Pengenalan Karakter Optik (OCR), yang merupakan operasi yang pada dasarnya berbeda dari ekstraksi teks.
Mesin OCR sumber terbuka yang dominan adalah Tesseract, awalnya dikembangkan di HP Labs antara tahun 1985 dan 1995, di-open-source pada tahun 2005, dan dipertahankan oleh Google dari tahun 2006 hingga Google menyerahkan tanggung jawab utama ke kelompok komunitas sekitar tahun 2018. Tesseract mendukung lebih dari seratus bahasa, berjalan di setiap platform utama, dan mendukung fitur OCR dari banyak alat desktop dan server. Vision framework milik Apple, tersedia di macOS dan iOS sejak tahun 2017, menyertakan API pengenalan teks yang cepat dan akurat yang digunakan oleh aplikasi tangkapan layar dan foto bawaan OS. Google Cloud Vision, Azure Computer Vision, dan Amazon Textract adalah layanan OCR cloud utama; khusus untuk dokumen, Textract dan Azure's Document Intelligence keduanya melampaui OCR mentah untuk mengenali tabel, pasangan kunci-nilai, dan bidang formulir.
Konverter PDF-ke-HTML berbasis browser yang berjalan sepenuhnya di sisi klien umumnya tidak dapat melakukan OCR; model OCR berukuran minimal puluhan megabyte dan inferensinya terlalu lambat untuk dijalankan secara interaktif di laptop pengguna. Jika PDF Anda berisi halaman pindaian tanpa teks yang dapat diekstrak, alat ini akan menghasilkan keluaran kosong untuk halaman-halaman tersebut, dan langkah selanjutnya yang tepat adalah alat OCR terpisah atau layanan sisi server.
Mengapa orang mengonversi PDF ke HTML
Kasus penggunaan terbagi dalam beberapa pola yang berulang:
- Penerbit dengan arsip laporan lama: laporan tahunan, white paper, makalah penelitian, publikasi pemerintah, manual teknis, mengonversi PDF ke HTML agar konten dapat dibaca langsung di browser tanpa memaksa setiap pengunjung mengunduh file. Versi HTML lebih mudah dinavigasi (Anda dapat menautkan ke bagian tertentu), lebih cepat dimuat di ponsel, dan dapat dirayapi oleh mesin pencari.
- Blogger dan pemasar konten mengonversi PDF yang telah mereka tulis atau lisensikan ke HTML agar dapat menerbitkan ulang konten sebagai artikel, menggunakan kembali teks tanpa mengetiknya ulang.
- Arsivis web mengonversi PDF ke HTML sebagai bagian dari proyek pelestarian, dengan alasan bahwa HTML lebih tahan lama selama beberapa dekade daripada format biner kompleks yang spesifikasinya setebal beberapa ribu halaman.
- Aplikasi membaca seluler dan layanan baca-nanti mengonversi PDF ke HTML agar artikel terbuka dalam tampilan pembaca mereka, dengan font dan ukuran font pilihan pengguna, mode gelap, dan panjang baris yang dapat disesuaikan.
- Pengguna pembaca layar mengonversi PDF ke HTML karena PDF yang tidak ditandai pada dasarnya buram bagi teknologi bantuan, tetapi rendering HTML dengan paragraf dan judul yang tepat dapat dibacakan dengan jelas.
- Alur kerja manajemen pengetahuan mengonversi PDF ke HTML untuk memasukkan konten ke dalam indeks pencarian, basis data teks lengkap, dan jendela konteks model bahasa besar, yang tidak satu pun dari ini secara native memahami format PDF, tetapi semuanya menangani teks biasa dan HTML dengan baik.
- Peneliti dan akademisi mengekstrak teks dari PDF artikel jurnal untuk dimasukkan ke dalam manajer kutipan, basis data referensi, atau pipeline penambangan teks yang mencari pola di ribuan makalah.
Masing-masing memiliki persyaratan yang sedikit berbeda, tetapi semuanya memiliki benang merah yang sama: pengguna menginginkan konten PDF (kata-kata, struktur, maknanya) tanpa dibatasi oleh format terikat-halaman yang kaku yang dipilih oleh dokumen asli.
Pertanyaan lainnya
Mengapa HTML hasil konversi saya terlihat berbeda dari PDF asli?
Alat ini mengutamakan alur: ia mengekstrak teks dan mengeluarkan paragraf bersih dengan font default browser, mengutamakan keterbacaan, aksesibilitas, dan kemampuan diindeks pencarian daripada fidelitas visual. Jika Anda memerlukan reproduksi piksel-sempurna dari tata letak asli (font tertanam, posisi tepat, warna asli), lihat alat yang mengutamakan fidelitas seperti pdf2htmlEX, yang mengeluarkan elemen div yang diposisikan secara absolut yang cocok secara visual dengan PDF sumber tetapi menghasilkan HTML yang pada dasarnya tidak dapat dibaca oleh pembaca layar dan kaku di layar ponsel.
Mengapa PDF multi-kolom saya keluar berantakan?
PDF tidak menyimpan urutan baca, hanya posisi. Konverter harus menyimpulkan batas kolom dari distribusi spasial teks. Untuk tata letak dua kolom sederhana, heuristiknya biasanya berhasil; untuk tata letak kompleks dengan catatan samping, catatan kaki yang diselingi dengan teks isi, atau teks yang melintasi sekat kolom, hasilnya bisa tidak berurutan. Jika Anda memiliki PDF yang ditandai (yang menyertakan pohon struktur), akurasi jauh lebih baik; untuk PDF yang tidak ditandai, hasilnya bergantung pada seberapa jelas kolom-kolom tersebut dipisahkan secara fisik oleh ruang kosong.
PDF saya dipindai (hanya gambar), mengapa tidak ada yang diekstrak?
PDF yang dipindai tidak memiliki konten teks; setiap halaman adalah gambar raster dari teks, bukan teks yang dapat dibaca oleh pengurai. Mengekstrak teks memerlukan OCR (Tesseract, Google Cloud Vision, Vision framework milik Apple, dll.), yang merupakan operasi yang pada dasarnya berbeda dari penguraian PDF. Alat ini tidak menyertakan mesin OCR karena modelnya terlalu besar untuk dikirim bersama alat browser. Langkah selanjutnya yang tepat adalah layanan OCR khusus atau alat desktop dengan OCR bawaan.
Bisakah saya mengonversi PDF yang dilindungi kata sandi?
Jika PDF memiliki kata sandi terbuka (Anda perlu mengetik kata sandi hanya untuk melihatnya), PDF.js akan melempar error daripada mengonversi. Jika PDF hanya memiliki kata sandi izin (dibuka gratis tetapi mencetak/menyalin dibatasi), perilakunya bervariasi; sebagian besar build PDF.js modern menghormati izin dan mungkin menolak untuk mengekstrak teks. Bagaimanapun, cara termudah adalah menghapus proteksi di alat PDF asli terlebih dahulu, kemudian mengonversi. Menghapus proteksi pada PDF yang secara legal Anda miliki tidak masalah; melakukannya pada PDF yang tidak Anda miliki mungkin tidak demikian.