Aplikasi web sederhana berbasis Flask untuk mengelola dan mengonversi file PDF maupun gambar.
Mendukung berbagai fitur praktis yang dapat digunakan langsung melalui browser.
| Fitur | Deskripsi |
|---|---|
| OCR PDF | Mengubah PDF hasil scan menjadi PDF yang dapat dicari teksnya (searchable PDF) menggunakan Tesseract OCR. |
| Gabung PDF | Menggabungkan beberapa file PDF menjadi satu file PDF. |
| PDF β DOCX | Mengonversi PDF berbasis teks menjadi dokumen Microsoft Word .docx. |
| PNG/JPG β PDF | Menggabungkan satu atau banyak gambar menjadi satu file PDF. |
| PDF β PNG | Mengubah setiap halaman PDF menjadi gambar PNG, kemudian mengemasnya dalam file ZIP. |
git clone https://github.com/zzkydev/Convertify-PDF.git
cd Convertify-PDFpython -m venv .venv
# Aktifkan venv
# Windows
.venv\Scripts\activate
# macOS / Linux
source .venv/bin/activatepip install -r requirements.txtsudo apt update
sudo apt install tesseract-ocr ghostscript poppler-utilsbrew install tesseract ghostscript poppler- Install Tesseract OCR
- Install Ghostscript
- Install Poppler for Windows
Pastikan folder bin dari masing-masing aplikasi ditambahkan ke PATH.
python app.pyBuka browser dan akses:
http://localhost:5000
Aplikasi ini memiliki tampilan web yang terdiri dari beberapa tab, masing-masing untuk fitur yang berbeda.
- Pilih tab OCR PDF.
- Masukkan bahasa OCR (contoh:
enguntuk Inggris,eng+induntuk Inggris & Indonesia). - Unggah file PDF hasil scan.
- Setelah proses selesai, file PDF hasil OCR akan otomatis terunduh.
- Pilih tab Gabung PDF.
- Unggah beberapa file PDF.
- File gabungan akan otomatis diunduh.
- Pilih tab PDFβDOCX.
- Unggah file PDF berbasis teks.
- File
.docxhasil konversi akan otomatis terunduh.
- Pilih tab IMGβPDF.
- Unggah satu atau beberapa gambar.
- Semua gambar akan digabung menjadi satu PDF.
- Pilih tab PDFβPNG.
- Atur DPI (default: 200).
- Unggah file PDF.
- Hasilnya berupa file ZIP berisi PNG per halaman.
| Endpoint | Metode | Deskripsi |
|---|---|---|
/api/ocr/pdf |
POST | OCR PDF β PDF searchable (lang opsional, contoh eng+ind) |
/api/merge/pdf |
POST | Gabung beberapa PDF (files[] multiple) |
/api/convert/pdf-to-docx |
POST | PDF β DOCX |
/api/convert/img-to-pdf |
POST | PNG/JPG β PDF (bisa multi-file) |
/api/convert/pdf-to-png |
POST | PDF β PNG (ZIP; param dpi opsional) |
Buat file requirements.txt:
Flask==2.3.2
PyPDF2==3.0.1
pdf2docx==0.5.6
Pillow==10.0.0
pytesseract==0.3.10
pdf2image==1.16.3- Tesseract OCR - untuk fitur OCR PDF
- Ghostscript - untuk processing PDF
- Poppler - untuk konversi PDF ke gambar
- Fitur OCR PDF membutuhkan Tesseract OCR dan Ghostscript terpasang di server.
- Fitur PDF β PNG membutuhkan Poppler.
- Proses untuk file besar memerlukan waktu lebih lama.
- Untuk produksi, jalankan dengan
gunicorn/uwsgidi belakangnginx, dan nonaktifkandebug=Truepadaapp.py.
pip install gunicorn
gunicorn -w 4 -b 0.0.0.0:5000 app:appBuat Dockerfile:
FROM python:3.9-slim
# Install sistem dependencies
RUN apt-get update && apt-get install -y \
tesseract-ocr \
ghostscript \
poppler-utils \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
EXPOSE 5000
CMD ["gunicorn", "-w", "4", "-b", "0.0.0.0:5000", "app:app"]- Fork repository ini
- Buat branch fitur baru (
git checkout -b fitur-baru) - Commit perubahan (
git commit -am 'Tambah fitur baru') - Push ke branch (
git push origin fitur-baru) - Buat Pull Request
Proyek ini menggunakan lisensi MIT β bebas digunakan, dimodifikasi, dan didistribusikan.
Jika Anda mengalami masalah atau memiliki pertanyaan:
- Buat Issue di GitHub
- Email: admin@zakk.my.id
Dibuat dengan β€οΈ menggunakan Flask dan Python
