तुलनाएँ

gPdf बनाम QuestPDF: .NET दस्तावेज़ों से PDF बनाने की तुलना

QuestPDF C# के लिए मजबूत PDF लाइब्रेरी है। gPdf edge पर चलने वाली hosted API है। लाइसेंस, रनटाइम स्वामित्व, टेम्पलेट प्रक्रिया, अनुपालन, बारकोड और सही उपयोग-स्थिति की तुलना करें।

सारांश

चुनाव अपनी भरोसे की सीमा से करें। QuestPDF PDF निर्माण और हर दस्तावेज़ का डेटा आपकी .NET प्रक्रिया के भीतर रखता है; बदले में fonts, barcodes, scaling और अनुपालन की पाइपलाइन आपकी टीम संभालती है। gPdf वही काम ऐसी HTTP call में बदल देता है जिसे कोई भी भाषा कर सकती है; बदले में दस्तावेज़ डेटा third-party renderer तक जाता है और उसकी uptime पर निर्भरता आती है। local control, data privacy और offline operation को प्राथमिकता देने वाली .NET app आम तौर पर QuestPDF चुनती है; कई भाषाओं वाले stack जिनको per-page pricing के साथ edge-hosted PDF infrastructure चाहिए, वे अक्सर gPdf चुनते हैं।

साथ-साथ

मापदंड gPdf QuestPDF बढ़त
उत्पाद की सीमा
सही चुनाव इस पर निर्भर है कि आप सेवा खरीदना चाहते हैं या rendering code path खुद अपने पास रखना चाहते हैं.
JSON Render, Template Render और E-Invoice Render के लिए hosted edge API. NuGet से install होने वाली local C# / .NET लाइब्रेरी, जिसे application code से call किया जाता है. बराबर
मुख्य integration Node, Python, Go, .NET, Ruby, PHP, Java, workers, jobs या frontend proxies से HTTPS POST. Strong typing, IDE support और परिचित .NET constructs के साथ fluent C# API. बराबर
रनटाइम कहां चलता है Cloudflare Workers edge renderer; आपके stack में अलग PDF service, font setup या deployment cluster नहीं. जहां आपकी .NET app चलती है, वहीं चलता है; CPU, memory, native/package dependencies, deployment, monitoring और scale आपकी team संभालती है. gPdf
बारकोड प्रक्रिया Native `barcode` element: 1D, 2D और GS1 formats (`gs1128`, `sscc`, `gtin8/12/13/14`, `gs1datamatrix`, `gs1qrcode`, Aztec, PDF417, MaxiCode), साथ में human-readable text की built-in placement. Official docs ZXing.Net को integrate करते हैं — NuGet से अलग install, फिर SVG render; GS1 Application Identifiers और FNC1 framing हाथ से जोड़नी पड़ती है. gPdf
Fonts और multilingual text Service-owned bundled fonts, implicit auto selection, explicit `prefer` / `strict` modes और per-script CJK fallback (KR, JP, SC); callers को किसी application में font files package नहीं करने पड़ते. Lato ship करता है और environment, deployment-directory तथा custom fonts को fallback chains के साथ load कर सकता है — लेकिन docs खुद warn करते हैं कि 'in most cloud deployments, few or no fonts are available.' gPdf
बनाते समय password और permissions
QuestPDF वही encryption strengths और user / owner passwords support करता है, लेकिन render time पर inline नहीं; rendered file पर post-generation step के रूप में.
Render request में inline — `settings.security` उसी `/api/v1/pdf/render` call में AES-128/256 encryption, open और owner passwords, तथा आठ permission flags apply करता है. पहले generate, फिर अलग Document Operation में encrypt — `DocumentOperation.LoadFile(...).Encrypt(new Encryption256Bit { ... }).Save(...)`. gPdf
टेम्पलेट बदलाव gPdf Studio वही JSON टेम्पलेट design करता है जिन्हें production `template_id + data` से render करता है. QuestPDF Companion C# documents के लिए hot-reload preview, hierarchy inspection, coordinate tools और source navigation देता है. बराबर
Commercial pricing
QuestPDF pricing 2026-06-02 को public licensing pages से checked थी। high-volume .NET teams को license + hosting की तुलना gPdf page pricing से करनी चाहिए.
Basic plan 5 USD/माह में 1,00,000 पृष्ठ शामिल करता है; overage 0.00005 USD प्रति पृष्ठ से शुरू, और हर public surface पर वही per-page math. 1M USD annual revenue से कम पर Community MIT terms के तहत free; perpetual commercial licenses में Professional 999 USD (10 developers तक) और Enterprise 2,999 USD (पूरे संगठन के लिए, developer counting नहीं), local tax extra, दोनों में one year of updates. बराबर
Server और deployment fees Public API के लिए server fleet deploy नहीं करनी; usage plan और पृष्ठों के हिसाब से bill आता है. Commercial license terms unlimited projects, servers और deployments बताते हैं; infrastructure फिर भी customer-owned रहता है. बराबर
PDF/A और e-invoice छह PDF/A profiles (1b/2b/3b/4/2u/3u) plus PDF/UA-1, और hosted Factur-X / ZUGFeRD endpoint जो EN 16931 CII XML को PDF/A-3b में package करता है, server-side validation और EU / global data residency के साथ. Code में मजबूत PDF/A, PDF/UA-1 और ZUGFeRD 2.1 / Factur-X support; veraPDF और Mustang validation आपको खुद wire करना होगा. बराबर
Document data कहां जाता है
QuestPDF data को process के भीतर रखता है; gPdf transmit करता है लेकिन retain नहीं करता — operational logs सिर्फ HTTP status और duration रखते हैं, request bodies नहीं.
Public API payload transmit करता है, लेकिन renderer zero-retention है — request JSON Cloudflare Workers isolate में सिर्फ render के दौरान रहता है (~4 ms typical), stored, logged या trained नहीं होता। EU / global data residency और on-prem / private deployment exposure को और घटा या बंद कर सकते हैं. PDF bytes process के भीतर बनते हैं; document data किसी third party तक trust boundary cross नहीं करता. बराबर
Offline / air-gapped operation
QuestPDF zero setup के साथ offline चलता है; gPdf enterprise private deployment के जरिए उसी जगह पहुंचता है.
Public API को network चाहिए; enterprise on-prem / private deployment renderer को आपकी own infrastructure में offline या air-gapped operation के लिए चला सकता है. Local चलता है, license key नहीं, activation server नहीं, runtime network calls नहीं — license type honor-system basis पर code की एक line से set होता है. बराबर
Existing PDF operations Structured requests से नए PDFs generate करता है; existing files load, merge, decrypt या edit नहीं करता. Existing PDFs पर Document Operations: merge, page reorder / reverse / filter, overlays, 40/128/256-bit encrypt और decrypt, attachments, XMP metadata, web linearization. QuestPDF
Charts और data visualization
दोनों data को plot में बदलने के लिए charting library पर निर्भर हैं; QuestPDF इसे in-document render करता है, gPdf आपके बनाए SVG / PNG को place करता है। Built-in charting, maps और canvas में QuestPDF आगे है.
`path` element (SVG path data) और shapes से vector art draw करता है, या किसी charting library से बना SVG / PNG chart embed करता है — लेकिन built-in charting engine, maps या canvas API नहीं. First-class chart integrations (ScottPlot, LiveCharts, Microcharts), Mapbox maps और custom graphics के लिए SkiaSharp canvas API. QuestPDF
Best default use case Teams के बीच shared production business documents: labels, invoices, receipts, statements, tickets और e-invoices. C# applications जिन्हें full code ownership और runtime service dependency के बिना local document generation चाहिए. बराबर

कब क्या चुनें

gPdf चुनें जब
  • PDF generation कई services या languages द्वारा साझा infrastructure है, सिर्फ एक .NET application की feature नहीं.
  • आप PDF rendering, font management, barcode geometry और regional scaling को अपने application stack से हटाना चाहते हैं.
  • Team चाहती है कि templates `template_id + data` के रूप में बदलें, C# code deployments के रूप में नहीं.
  • Warehouses, customers या backend jobs के पास edge rendering चाहिए, हर region में .NET PDF service deploy किए बिना.
  • पहले production render से पहले commercial license procurement के बजाय published per-page price चाहिए.
QuestPDF चुनें जब
  • Product .NET-first है और C# code document layout का natural source of truth है.
  • Document data आपकी perimeter के भीतर ही रहना चाहिए, और enterprise private gPdf deployment विकल्प में नहीं है.
  • आपको private render deployment लगाए बिना out-of-the-box offline या air-gapped generation चाहिए.
  • Generation latency-critical synchronous path पर है, जहां in-process call किसी भी network round-trip से बेहतर है.
  • Existing PDFs पर उसी library में operations चाहिए — merge, page extraction, overlays, decryption या attachments.
  • Document के भीतर charts, maps या custom SkiaSharp graphics render करते हैं (ScottPlot, LiveCharts, Microcharts, Mapbox).
  • आप Community MIT terms के eligible हैं, या one-time perpetual license चाहते हैं, और renderer को locally operate करना burden नहीं है.
क्षमताएँ

gPdf एक edge-native JSON-to-PDF API है, जिसे बड़े पैमाने पर इनवॉइस, दस्तावेज़, शिपिंग लेबल, बारकोड, PDF/A और e-invoice output के लिए बनाया गया है। Global edge scale पर millisecond-class PDF rendering — predictable, industrial-grade document generation के लिए optimized। Infrastructure-level pricing, इतनी कम कि अपनी PDF infrastructure बनाने और चलाने की जरूरत कम हो सके।

क्षमताएँ

जब उत्पाद की सीमा C# है, QuestPDF उत्कृष्ट है

QuestPDF की तुलना सम्मान से होनी चाहिए। यह C# developers के लिए आधुनिक PDF लाइब्रेरी है: fluent API, strong typing, विस्तृत documentation, preview और debugging के लिए Companion App, और PDF SDK दुनिया में असामान्य रूप से साफ licensing model.

उत्पाद का असली सवाल यह नहीं है कि “PDF कौन बना सकता है?” दोनों बना सकते हैं। उपयोगी सवाल यह है कि PDF की सीमा कहां रहनी चाहिए: उस .NET application के भीतर जो layout, bytes और lifecycle अपने पास रखती है, या ऐसी infrastructure service में जिसे कई products और languages call करते हैं।

तुरंत निर्णय लेने की गाइड

  • QuestPDF चुनें जब C# document layout का source of truth है, app को offline चलना है, या existing PDFs पर local operations चाहिए।
  • gPdf चुनें जब एक PDF layer Node, Python, Go, .NET, jobs और regional systems को उसी HTTP API से serve करे।
  • gPdf चुनें जब layout changes टेम्पलेट revisions होने चाहिए, C# rebuilds और service redeploys नहीं।

वही दस्तावेज़ परिवार, स्वामित्व मॉडल अलग

QuestPDF के साथ application PDF generation अपने पास रखती है। यह असली मजबूती है: C# आपके domain model के पास रहता है, locally run और debug होता है, और runtime पर external API call नहीं होती।

Trade-off यह है कि production में बाकी जिम्मेदारियां भी आपकी team संभालती है:

  • Rendering के लिए CPU और memory.
  • हर deployment environment में font discovery और fallback.
  • Barcode library integration और print QA.
  • Charting या custom graphics integrations के लिए native package और deployment concerns.
  • Monitoring, retries और failure handling.
  • Users या warehouses global हों तो regional deployment.
  • Document layout बदलते ही rollouts.

gPdf में यह जिम्मेदारी बाहर चली जाती है: application DocumentRequest या template_id + data भेजती है, और service renderer, edge runtime, fonts, barcode primitives, PDF/A output और e-invoice packaging संभालती है। अगर हर detail C# में चाहिए तो यह कम आकर्षक है; अगर PDF generation किसी भी stack से callable utility layer होनी चाहिए तो ज्यादा आकर्षक है।

Hosted API को तीन trade-offs साफ बोलने पड़ते हैं

अधिकांश “library vs API” pitches उन तीन सवालों को skip कर देते हैं जो .NET architect सबसे पहले पूछता है। ईमानदार comparison उन्हें साफ बोलता है।

1. Document data कहां जाता है। यह page invoices, statements और e-invoices के बारे में है — यानी names, addresses, tax IDs और amounts वाले documents. QuestPDF में ये bytes आपकी process के भीतर बनते हैं और बाहर नहीं जाते। Public gPdf API payload renderer तक transmit करता है, लेकिन renderer zero-retention है: request JSON Cloudflare Workers V8 isolate में सिर्फ render के दौरान रहता है (~4 ms typical), response complete होते ही release हो जाता है — stored, logged, sampled या trained नहीं; operational logs सिर्फ HTTP status और duration तक सीमित हैं (security, DPA). EU / global data-residency selection और enterprise on-prem / private deployment exposure को और घटा या बंद कर सकते हैं। फिर भी zero setup के साथ generation को in-process रखना finance या public-sector team के लिए legitimate, कभी-कभी निर्णायक, वजह हो सकती है कि वह QuestPDF चुने।

2. Failure mode। Library के साथ कोई third party down नहीं हो सकता; generation उसी infrastructure पर fail होगी जिसे आप पहले से own करते हैं। Hosted API ऐसी availability dependency जोड़ती है जिसे आप control नहीं करते। gPdf adopt करने का सही तरीका render calls को किसी external call की तरह treat करना है — timeout, retry, queue, और ideally degraded-mode fallback. अगर document generation critical synchronous path पर है, तो “खुद operate करना” और “vendor uptime पर depend करना” सीधे compare करें।

3. Latency profile। In-process generation network के बिना function call है। Hosted call network round-trip है। Batch और async jobs में यह अक्सर noise है। लेकिन “user clicks, PDF अभी दिखना चाहिए” में in-process structurally faster है — gPdf edge PoPs hop को छोटा करते हैं, फिर भी TLS plus round-trip रहता है; QuestPDF method call है।

इनमें से कोई बात gPdf को गलत choice नहीं बनाती; ये बताती हैं कि gPdf कब सही है — जब document data process से बाहर जा सकता है, flows network hop tolerate कर सकते हैं, और team render fleet operate करने के बजाय vendor uptime पर depend करना पसंद करती है।

Licensing और price model

QuestPDF की public licensing page कहती है कि commercial license सिर्फ उन companies के लिए required है जिनकी annual gross revenue 1M USD से ऊपर है। Community tier eligible individuals, open-source projects, non-profits और उस threshold से कम revenue वाली companies के लिए MIT terms के तहत free है। उसी public page पर दो perpetual commercial tiers listed हैं: Professional 999 USD plus local tax, 10 developers तक; और Enterprise 2,999 USD plus local tax, पूरे organization के लिए developer counting के बिना। दोनों में one year of updates और unlimited projects, servers और deployments शामिल हैं, और received last version के लिए license expire नहीं होता।

Enforcement model भी unusually light है। License एक single line से set होता है — QuestPDF.Settings.License = LicenseType.Community; — license key नहीं, activation server नहीं, और QuestPDF configuration page के अनुसार network calls नहीं और data machine से बाहर नहीं जाता। यह honor-system model है: आप अपनी eligibility के हिसाब से tier चुनते हैं। कोई per-document vendor bill नहीं, और paid license पूरी तरह offline भी कहीं भी चलता है।

gPdf rendering service को directly price करता है। Public Basic plan 5 USD/माह से शुरू होता है और 1,00,000 पृष्ठ देता है, overage 0.00005 USD प्रति पृष्ठ से शुरू। यह vendor bill है, लेकिन साथ ही PDF generation operate करने का अलग project भी हटाता है: render cluster नहीं, NuGet deployment path नहीं, regional warm pool नहीं, हर app के लिए font package नहीं, और patch करने के लिए PDF service नहीं।

इसलिए cost comparison “999 USD बनाम 5 USD” नहीं है — license छोटी line है। असली comparison यह है:

QuestPDF total = license (one-time) + your hosting + your engineer-time + on-call
gPdf total     = page bill (infrastructure, fonts, scaling, and edge included)

Public per-page math पर gPdf overage 0.05 USD प्रति 1,000 पृष्ठ है (10 लाख पृष्ठ पर 50 USD, 1 करोड़ पृष्ठ पर 500 USD). One-time 2,999 USD Enterprise license उस bill से करीब 6 करोड़ पृष्ठ पर ही break even करता है — और यह QuestPDF hosting तथा engineer-months ignore करता है, जो real crossover को gPdf के favour में और आगे push करते हैं जब तक आपके पास render infrastructure पहले से सस्ता न हो। Rule of thumb: अगर library use करने के लिए आपको render service build और staff करनी पड़े, तो gPdf अक्सर per-page bill license catch करने से काफी पहले total cost में जीतता है; अगर वह infrastructure already exists और लगभग free है, तो scale पर perpetual license जीतता है।

Development workflow: Fluent C# बनाम templates

जब developers document shape अपने पास रखते हैं, QuestPDF की fluent API अच्छी fit है। Strong typing, method chains, reusable C# components, IDE refactors और Companion App तब समझ आते हैं जब PDF application codebase का हिस्सा है।

gPdf अलग workflow के लिए बना है। Developers JSON directly author कर सकते हैं, लेकिन production systems अक्सर टेम्पलेट की ओर जाते हैं। Designer, operator या engineer gPdf Studio में layout adjust करता है। Approved layout टेम्पलेट बनता है, और backend template_id + data से render करता रहता है।

Document बार-बार बदलता हो तो फर्क बड़ा है। Carrier label, invoice, packing slip या statement layout बदले, तो gPdf runtime stable रख सकता है और सिर्फ टेम्पलेट move होता है। QuestPDF में layout C# code है, इसलिए normal path code change, test, build, deploy और rollback plan है।

कोई workflow universally better नहीं है: QuestPDF उन C# developers के लिए optimize करता है जो document को code के रूप में चाहते हैं; gPdf उन operational टेम्पलेट के लिए जो systems के बीच shared हैं।

Compliance: दोनों products serious हैं

यह ऐसी comparison नहीं है जहां gPdf यह कहकर जीतता है कि competitor में compliance features नहीं हैं। QuestPDF की current public material मजबूत standards support दिखाती है, जिसमें PDF/A, PDF/UA-1 और EN 16931 e-invoicing शामिल हैं, ZUGFeRD 2.1 / Factur-X example के जरिए जो UN/CEFACT Cross Industry Invoice (CII) standard पर बना है। Example PdfA = true set करता है, factur-x.xml payload को AddAttachment() से embed करता है, XMP metadata से document extend करता है, और veraPDF (PDF/A-3b के लिए) तथा Mustang Project (ZUGFeRD के लिए) से validate करता है। यह complete और honest recipe है — और आपकी pipeline हर step own करती है।

gPdf वही standards API contract के रूप में package करता है। JSON Render settings.profile से छह PDF/A profiles (1b, 2b, 3b, 4, 2u, 3u) plus PDF/UA-1 expose करता है, Template Render वही document model reuse करता है, और E-Invoice Render dedicated POST /api/v1/e-invoice/render endpoint देता है जो embedded EN 16931 CII XML के साथ Factur-X / ZUGFeRD PDF/A-3b packages बनाता है। QuestPDF recipe से फर्क यह है कि service आपके लिए क्या करती है: gPdf server-side PDF/A-3b और e-invoice validation चलाता है, synchronous inline या polled object delivery support करता है, और EU या global data residency request settings के रूप में देता है, उन steps की तरह नहीं जिन्हें आप assemble और operate करें। QuestPDF fit है जब validation आपकी own .NET pipeline में रहनी चाहिए; gPdf fit है जब यह कई systems द्वारा shared hosted contract होना चाहिए।

Fonts और barcodes: असली तुलना integration effort की है

QuestPDF का font model capable है। यह default में Lato 2.015 ship करता है, system और deployment-directory fonts auto-load करता है, FontManager से custom fonts register करने देता है, और fallback chains support करता है। इससे developers को control मिलता है। लेकिन वही documentation catch को साफ बताती है: “in most cloud deployments, few or no fonts are available, which may lead to unexpected results,” और recommend करती है कि environment fonts disable करें और जो चाहिए उसे explicitly register करें। यानी container या serverless target पर font environment आपका plan, ship और test करने का काम है — missing glyph placeholder बनेगा या, अगर CheckIfAllTextGlyphsAreAvailable enable है, exception throw होगी।

gPdf fonts को service boundary का हिस्सा बनाता है। Renderer multi-script set bundle करता है — Latin, Greek, Cyrillic, Arabic, Hebrew, Bengali, Tamil, Thai, Vietnamese, monospace और CJK with per-script fallback to Noto KR / JP / SC. यह silent font choices को implicit auto selection से resolve करता है, और explicit choices को prefer या strict से। Callers को CJK font ship नहीं करना, .NET app में Noto assets register नहीं करने, या हर deployment target पर fallback tune नहीं करना। वे data भेजते हैं; renderer font environment own करता है, हर region में वही रहता है।

Barcode comparison भी वैसा ही है। QuestPDF barcode docs ZXing.Net को vector SVG के रूप में render करके अच्छा approach दिखाते हैं, और साफ कहते हैं कि ZXing.Net QuestPDF package में included नहीं है — आप उसे NuGet से install करके wire करते हैं:

// QuestPDF: add the separate ZXing.Net package, encode, render to SVG, embed.
//   dotnet add package ZXing.Net
var writer = new ZXing.BarcodeWriterSvg {
    Format  = ZXing.BarcodeFormat.CODE_128,
    Options = new ZXing.Common.EncodingOptions { Width = 320, Height = 80 }
};
string svg = writer.Write("INV-2026-001").Content;
container.Svg(svg);
// GS1-128 with Application Identifiers and FNC1 framing is hand-wired on top.

gPdf में barcode generation first-class schema element है। Request format, content, physical size और optional human-readable line declare करती है — और GS1 formats native हैं, इसलिए Application Identifiers सीधे content में जाते हैं:

{
  "type": "barcode",
  "format": "gs1_128",
  "content": "(01)00012345678905(21)SN12345",
  "x": 12, "y": 60, "width": 80, "height": 18,
  "barcode_text": { "enabled": true, "position": "bottom" }
}

एक .NET app के लिए ZXing.Net install करना और output test करना आसान हो सकता है। लेकिन कई services और टेम्पलेट के लिए — खासकर logistics और retail workloads जिन्हें GS1-128, SSCC, GTIN, GS1 DataMatrix या GS1 QR with human-readable interpretation line चाहिए — barcode behavior को document API में रखना हर service में वही ZXing wiring दोहराने से ज्यादा maintainable है।

जहां QuestPDF साफ तौर पर आगे है

Offline चलने, document data को perimeter के भीतर रखने (ऊपर covered), और जब PDF code itself product का हिस्सा है — यानी team rendering path inspect, extend या own करना चाहती है — इनसे आगे QuestPDF के दो capability areas gPdf के scope से साफ बाहर हैं:

  • Existing PDFs पर operations. QuestPDF existing files load कर सकता है और उन्हें merge, select / reorder / reverse / filter pages, overlays apply, attachments add, XMP metadata set, web delivery के लिए linearize, तथा 40/128/256-bit security के साथ encrypt और decrypt कर सकता है। gPdf अपने generated PDFs को password-protect और permission-gate कर सकता है, लेकिन उन files को open, merge या decrypt नहीं करता जिन्हें उसने create नहीं किया।
  • Charts, maps और custom graphics. QuestPDF charting libraries (ScottPlot, LiveCharts, Microcharts) integrate करता है, Mapbox maps embed करता है, और arbitrary 2D drawing के लिए SkiaSharp canvas expose करता है। gPdf path element (SVG path data) से vector art draw कर सकता है या upstream produced SVG / PNG chart embed कर सकता है, लेकिन built-in charting engine, maps या canvas नहीं — इसलिए data-driven charting central हो तो tooling QuestPDF के साथ रहती है।

जहां gPdf साफ तौर पर आगे है

gPdf तब जीतता है जब organization नहीं चाहती कि हर product team अपनी PDF service own करे — कई भाषाओं वाले stacks, global workflows, और ERP / OMS / WMS / ecommerce / fintech / ticketing systems जो structured data से documents render करते हैं, और जिनके templates code से independently बदलते हैं। इन environments में local library अक्सर cheap शुरू होती है और fleet बन जाती है: हर language के लिए एक service, हर region के लिए deployment path, हर container के लिए font plan, हर team के लिए barcode regressions. gPdf उस fleet को एक HTTP contract में बदल देता है।

Serverless boundary को सबसे साफ दिखाता है। AWS Lambda, Cloud Run या Azure Functions पर QuestPDF अभी भी application के भीतर चलता है — आपकी team .NET runtime, fonts, native dependencies और peak PDF work के लिए enough CPU / memory package करती है, और cold starts own करती है। gPdf already render service है: function edge को छोटा template_id + data request POST करता है और PDF bytes वापस लेता है, warm करने के लिए renderer या per-region worker scale करने की जरूरत नहीं।

Migration shape

QuestPDF से gPdf migration line-for-line rewrite नहीं है। यह boundary change है: PDF build करने वाला C# code या तो JSON document request बनता है या published टेम्पलेट.

पहले / बाद में — C# में दस्तावेज़ बनाने की call एक HTTP POST में सिमटती है (खोलने के लिए click करें)
- // Before: generate the PDF inside a .NET application.
- Document.Create(container =>
- {
-     container.Page(page =>
-     {
-         page.Size(PageSizes.A4);
-         page.Margin(30);
-         page.Header().Text("Invoice").FontSize(24).SemiBold();
-         page.Content().Column(column =>
-         {
-             column.Item().Text($"Invoice number: {invoice.Number}");
-             column.Item().Text($"Total: {invoice.Total:C}");
-         });
-     });
- })
- .GeneratePdf("invoice.pdf");
+
+ // After: render through the shared gPdf template from C#.
+ using System.Net.Http.Headers;
+ using System.Net.Http.Json;
+
+ using var client = new HttpClient();
+ client.DefaultRequestHeaders.Authorization =
+     new AuthenticationHeaderValue("Bearer", key);
+
+ var response = await client.PostAsJsonAsync(
+     "https://api.gpdf.com/api/v1/template-render",
+     new {
+         template_id = "invoice-v2",
+         data = new {
+             invoice_number = invoice.Number,
+             total = invoice.Total,
+             currency = invoice.Currency
+         }
+     });
+
+ response.EnsureSuccessStatusCode();
+ byte[] pdfBytes = await response.Content.ReadAsByteArrayAsync();

Boundary move होने के बाद layout changes application deployments के बजाय टेम्पलेट revisions बन सकते हैं। Application business data और workflow decisions अपने पास रखती है; gPdf rendering संभालता है।

Pricing and sourcing note

इस page पर QuestPDF information 2026-06-02 को official QuestPDF sources से checked थी: License and Pricing, License configuration, Features Overview, Companion App features, Barcodes, Font management, और ZUGFeRD example. Pricing और feature pages बदल सकते हैं; procurement teams को buying decision से पहले vendor page फिर से check करना चाहिए। QuestPDF और related marks उनके owners के हैं, और यह comparison उनसे endorsed नहीं है।

PDF generation से जुड़े उपयोग-क्षेत्र

QuestPDF की तुलना करते समय teams आम तौर पर इन सवालों तक भी पहुंचती हैं: क्या JSON से PDF बनाने वाली API shared service बन सकती है, क्या इनवॉइस PDF generation को C# code से अलग किया जा सकता है, क्या PDF/A API, ZUGFeRD API, Factur-X API और GS1-128 barcode API एक ही platform capability बन सकते हैं, और क्या शिपिंग लेबल PDF API के लिए हर region में render service operate करना जरूरी है।

FAQ

क्या gPdf QuestPDF को replace करता है?

नहीं। Structured business documents के लिए PDF generation service operate करने की जरूरत को gPdf replace करता है। जब PDF application के भीतर generate होना चाहिए, QuestPDF मजबूत local C# library बनी रहती है।

क्या QuestPDF free है?

QuestPDF की public licensing page कहती है कि Community tier eligible individuals, open-source projects, non-profits और 1M USD annual gross revenue से कम companies के लिए MIT terms के तहत free है। उस threshold से ऊपर companies को perpetual commercial license चाहिए: 10 developers तक के लिए Professional 999 USD plus local tax, या organization-wide Enterprise 2,999 USD plus local tax, दोनों में one year of updates शामिल।

क्या gPdf QuestPDF जैसे charts या maps बना सकता है?

Built-in engine के रूप में नहीं। QuestPDF charting libraries (ScottPlot, LiveCharts, Microcharts), Mapbox maps और SkiaSharp canvas integrate करता है जो document के भीतर render होते हैं। gPdf फिर भी path element (SVG path data accept करता है) और shapes से vector charts draw कर सकता है, या किसी charting library से बना SVG / PNG image के रूप में embed कर सकता है। फर्क यह है कि QuestPDF chart को in-process compute और render करता है; gPdf में आप chart art बनाते हैं और gPdf उसे place करता है। अगर data-driven charting या maps document का core हैं, QuestPDF बेहतर fit है।

कौन सा product सस्ता है?

Boundary पर निर्भर है। Community terms के eligible .NET teams या already render infrastructure operate करने वाली teams के लिए QuestPDF cheaper हो सकता है। अगर alternative products या regions में PDF service build, host और maintain करना है, तो gPdf cheaper हो सकता है।

क्या gPdf मेरे document data को store या log करता है?

नहीं। जो JSON आप भेजते हैं और जो PDF gPdf लौटाता है, वे store नहीं होते। हर request single Cloudflare Workers V8 isolate में render होती है, सिर्फ render के दौरान memory में रहती है — आम तौर पर लगभग 4 ms — और response stream complete होते ही release होती है; gPdf DocumentRequest content को retain, log, sample या train नहीं करता। Operational logs सिर्फ HTTP status और duration 30 days तक रखते हैं और request bodies शामिल नहीं करते। security policy, privacy policy और DPA देखें। जिन workloads में data बिल्कुल transmit नहीं हो सकता, on-prem / private deployment उसे आपकी perimeter के भीतर रखता है।

क्या QuestPDF internet access के बिना चल सकता है?

हां। QuestPDF की license configuration page कहती है कि कोई license key या activation server नहीं है, और computations locally perform होते हैं। QuestPDF चुनने की यह सबसे साफ वजहों में से एक है।

क्या gPdf arbitrary C# QuestPDF layouts render कर सकता है?

नहीं। gPdf C# layout code execute नहीं करता। Migration का मतलब document shape को gPdf JSON request या saved gPdf टेम्पलेट में convert करना है।