Sunucusuz PDF oluşturma, Node.js geliştiricileri için önemli bir zorluk teşkil ediyor. Mevcut araçlar sınırlı ve hantal olduğu için, geliştiriciler alternatif çözümler aramaya devam ediyor. Bu sorunları çözmek için pretext-pdf adında bir kütüphane geliştirdim.
Problemin Tanımı
Her defasında PDF oluştururken aynı sorunlarla karşılaşıyordum:
- Puppeteer: HTML'i PDF'ye güzel bir şekilde dönüştürür, ancak her sayfa için 500ms-2s sürer. Toplu işlemler için çok yavaş.
- wkhtmltopdf: Eski, kırılgan, üretim ortamında kırılıyor, bağımlılık cehennemi.
- pdfmake: Basit faturalar için iyidir, ancak karmaşık düzenlerde bozulur.
- Tüm araçlar: HTML 렌더ing değilse gereksiz.
Ve asıl sorun: HTML 렌더ing gerektirmiyordum. Yapılandırılmış verilerim (faturalar, raporlar, sertifikalar) vardı ve bunları programlı olarak PDF'lere dönüştürmek istiyordum.
Çözüm
pretext-pdf adında bir JSON tabanlı PDF oluşturma kütüphanesi geliştirdim.
Şöyle ki:
// ❌ Puppeteer: HTML 렌der
cconst browser = await puppeteer.launch();
const page = await browser.newPage();
await page.setContent(html);
const pdf = await page.pdf(); // 1000ms+Şimdi ise:
// ✅ pretext-pdf: yapılandırma tanımla
const doc = {
sections: [
{ type: 'heading', text: 'Fatura' },
{ type: 'table', rows: [...] }
]
};
const pdf = await renderPDF(doc); // 40-100msChromium kullanmadan, harici bağımlılıklar olmadan, saf Node.js ile çalışıyor. Neden Bu Önemli
Eğer siguientes sistemleri inşa ediyorsanız:
✅ Fatura oluşturma sistemleri ✅ SaaS için dinamik raporlar ✅ PDF oluşturan AI ajanları (Claude, Cursor, Windsurf) ✅ Sertifika sistemleri ✅ Çok dilli belgeler...
pretext-pdf sizin için tasarlandı.
Bugün: v2.0.14 Sürümü Yayınlandı
Bir büyük güncelleme yayınlandı. Metin düzenleme motoru (kelimelerin satırlar boyunca nasıl kırılacağını işleyen) önemli ölçüde iyileştirildi:
- Daha iyi CJK + Latin karma dilleri desteği
- Daha akıllı noktalama işareti kullanımı (tırnak işareti metin ile kalır)
- %7-12 daha hızlı
- Hiçbir kırılma olmadı
İstatistikler
- 337 test geçtik - üretim için hazırlar
- 0 kritik güvenlik açığı - güvenli
- MIT lisansı - ücretsiz kullanım
- Açık kaynak - katkıda bulun veya çatallan
Teknik Temel
Düzenleme motoru, React core ekibinin üyesi Cheng Lou tarafından geliştirilen pretext üzerine kurulmuştur. 11 yama için özel durumlar için cherry-picking yaptım ve pretext-pdf'ye entegre ettim.
Deneyebilirsiniz
npm install pretext-pdf@2.0.14GitHub: pretext-pdf deposu
npm: pretext-pdf paketi
Canlı Demo: pretext-pdf demo sayfası
MCP Sunucusu: pretext-pdf-mcp paketi (Claude, Cursor, Windsurf)
Sorularınız Var mı?
pretext-pdf ile ilgili sorularınızı yorum bölümünde sorabilir, katkıda bulunmak istiyorsanız issues ve PR'ler kabul ediyoruz. Hata bulduysanız GitHub'da raporlayabilirsiniz. Yardım etmek için buradayım. PDF oluşturmayı daha az ağrılı hale getirelim.
Yapay zeka özeti
PDF generation.toolsunda karşılaşılan sorunları pretext-pdf ile çözmenin avantajlarını keşfedin. Sunucusuz PDF oluşturma, Node.js geliştiricileri için önemli bir zorluk teşkil ediyor.