1import{j as e,S as i,F as n}from"./index-5sf7JV6p.js";import{B as l}from"./BreadcrumbJsonLd-5qozzGG7.js";import{L as o}from"./vendor-react-8IDV7RHP.js";import{c,Z as d,$ as m,W as u,k as p,a as x,a0 as g}from"./vendor-ui-DUDizOZh.js";import"./vendor-i18n-DWqKOdDR.js";const h=[{category:"Core Features",items:[{name:"PDF Parsing & Rendering",pdfluent:!0,nutrient:!0,apryse:!0},{name:"Text Extraction",pdfluent:!0,nutrient:!0,apryse:!0},{name:"XFA Forms Support",pdfluent:!0,nutrient:!1,apryse:"Limited"},{name:"FormCalc Execution",pdfluent:!0,nutrient:!1,apryse:!1},{name:"PDF/A Validation",pdfluent:!0,nutrient:!0,apryse:!0},{name:"PDF/UA Accessibility",pdfluent:!0,nutrient:!0,apryse:!0},{name:"Digital Signatures (PAdES)",pdfluent:!0,nutrient:!0,apryse:!0},{name:"OCR Text Recognition",pdfluent:!0,nutrient:!0,apryse:!0}]},{category:"Technology",items:[{name:"Pure Rust Implementation",pdfluent:!0,nutrient:!1,apryse:!1},{name:"WebAssembly Support",pdfluent:!0,nutrient:"Limited",apryse:!1},{name:"Zero Runtime Dependencies",pdfluent:!0,nutrient:!1,apryse:!1},{name:"Memory Safety",pdfluent:!0,nutrient:!1,apryse:!1},{name:"Cross-platform",pdfluent:!0,nutrient:!0,apryse:!0}]},{category:"Performance",items:[{name:"WASM Bundle Size",pdfluent:"3.8 MB (Brotli)",nutrient:"N/A",apryse:"N/A"},{name:"Parallel Processing",pdfluent:!0,nutrient:!0,apryse:!0}]},{category:"Pricing",items:[{name:"Free and complete under the AGPL",pdfluent:!0,nutrient:!1,apryse:!1},{name:"Starting Price",pdfluent:"â¬0 AGPL · from â¬999/yr commercial",nutrient:"â¬5,000+/yr",apryse:"â¬15,000+/yr"},{name:"Per-product Licensing",pdfluent:!0,nutrient:!1,apryse:!1},{name:"Per-developer Licensing",pdfluent:!1,nutrient:!0,apryse:!0},{name:"Transparent published prices",pdfluent:!0,nutrient:!1,apryse:!1},{name:"Offline licence (no internet required)",pdfluent:!0,nutrient:!1,apryse:!1}]},{category:"Developer Experience",items:[{name:"Modern API Design",pdfluent:!0,nutrient:"Moderate",apryse:"Moderate"},{name:"Comprehensive Documentation",pdfluent:!0,nutrient:!0,apryse:!0},{name:"Code Examples",pdfluent:"Extensive",nutrient:"Good",apryse:"Good"},{name:"Community Support",pdfluent:!0,nutrient:!0,apryse:!0},{name:"Response Time",pdfluent:"< 24h",nutrient:"24-48h",apryse:"24-48h"}]}];function a({value:t}){return typeof t=="boolean"?t?e.jsx(x,{className:"h-5 w-5 text-gray-900"}):e.jsx(g,{className:"h-5 w-5 text-gray-300"}):e.jsx("span",{className:"text-sm text-gray-700",children:t})}function v(){return e.jsxs("div",{className:"w-full min-h-screen bg-white",children:[e.jsx(i,{title:"PDFluent vs iText, Foxit, Nutrient: comparison guide",description:"Compare PDFluent with iText, Foxit, and Nutrient. See how pure-Rust architecture delivers faster throughput, lower memory use.",canonical:"https://pdfluent.com/comparison"}),e.jsx(l,{items:[{name:"PDFluent",url:"https://pdfluent.com"},{name:"Comparison",url:"https://pdfluent.com/comparison"}]}),e.jsxs("section",{className:"relative w-full pt-32 pb-20 px-6 overflow-hidden",children:[e.jsx("div",{className:"absolute inset-0 bg-[radial-gradient(ellipse_80%_80%_at_50%_-20%,rgba(59,130,246,0.06),rgba(255,255,255,0))]"}),e.jsx("div",{className:"max-w-5xl mx-auto relative z-10",children:e.jsxs("div",{className:"text-center space-y-8 animate-in fade-in duration-1000",children:[e.jsx("div",{className:"text-xs tracking-wider text-gray-500 uppercase",children:"Comparison"}),e.jsxs("h1",{className:"text-6xl md:text-8xl font-semibold tracking-tighter text-gray-900 leading-[0.95]",children:["PDFluent vs.",e.jsx("br",{}),"The Competition"]}),e.jsx("p",{className:"text-xl md:text-2xl text-gray-500 max-w-3xl mx-auto leading-relaxed font-light",children:"See how PDFluent compares to Nutrient (formerly PSPDFKit) and Apryse (formerly PDFTron) in features, performance, and pricing."})]})})]}),e.jsx("section",{className:"w-full py-16 px-6",children:e.jsxs("div",{className:"max-w-5xl mx-auto",children:[e.jsx("h2",{className:"text-2xl font-semibold text-gray-900 mb-3 tracking-tight text-center",children:"Compare by competitor"}),e.jsx("p",{className:"text-gray-500 text-center mb-10 font-light text-sm",children:"In-depth comparisons with feature tables, benchmarks, and honest assessments."}),e.jsx("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4",children:[{href:"/comparison/vs-itext/",title:"PDFluent vs. iText",subt
1itle:"By Apryse",description:"Java/.NET library. Mature, AGPL available. No PDF rendering, no FormCalc, no WASM.",tags:["Server-side","Java / .NET","AGPL + Commercial"]},{href:"/comparison/vs-foxit/",title:"PDFluent vs. Foxit",subtitle:"PDF SDK",description:"C++ SDK with real XFA support. 330M+ users. No WASM, mobile only, contact-sales pricing.",tags:["XFA","C++","Contact sales"]},{href:"/comparison/vs-pdf-lib/",title:"PDFluent vs. pdf-lib",subtitle:"PDF SDK",description:"JavaScript library for PDF creation. MIT licensed, browser and Node. Not aimed at reading or manipulation.",tags:["JavaScript","MIT","PDF creation"]},{href:"/comparison/vs-nutrient/",title:"PDFluent vs. Nutrient",subtitle:"Formerly PSPDFKit",description:"Best-in-class mobile SDKs. No XFA whatsoever. Pricing from ~â¬5K/user/year.",tags:["Mobile-first","No XFA","~â¬5K/user/year"]}].map(t=>e.jsxs(o,{to:t.href,className:"group bg-white rounded-lg border border-gray-200 hover:border-gray-300 transition-all duration-300 p-6 flex flex-col",children:[e.jsxs("div",{className:"flex-1",children:[e.jsx("div",{className:"text-xs text-gray-500 mb-1",children:t.subtitle}),e.jsx("h3",{className:"text-base font-semibold text-gray-900 mb-3 tracking-tight group-hover:text-gray-800",children:t.title}),e.jsx("p",{className:"text-sm text-gray-500 leading-relaxed font-light mb-4",children:t.description}),e.jsx("div",{className:"flex flex-wrap gap-2",children:t.tags.map(r=>e.jsx("span",{className:"text-xs text-gray-500 bg-gray-100 px-2 py-1 rounded",children:r},r))})]}),e.jsxs("div",{className:"flex items-center gap-1 mt-5 text-xs text-gray-500 group-hover:text-gray-700 transition-colors",children:[e.jsx("span",{children:"Full comparison"}),e.jsx(c,{className:"h-3 w-3"})]})]},t.href))})]})}),e.jsx("section",{className:"w-full py-20 px-6",children:e.jsxs("div",{className:"max-w-7xl mx-auto",children:[e.jsx("h2",{className:"text-3xl font-semibold text-gray-900 mb-12 tracking-tight text-center",children:"Why Choose PDFluent?"}),e.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6",children:[{icon:d,title:"No Runtime to Start",description:"Pure Rust implementation with no runtime to start first, unlike a JVM."},{icon:m,title:"Fair Pricing",description:"Per organisation or per product, not per developer and not per API call. Published on the website, bought in a minute, and free under the AGPL if copyleft is no obstacle for you."},{icon:u,title:"XFA Forms",description:"Only pure-Rust XFA engine with full FormCalc support. Competitors lack this entirely."},{icon:p,title:"WebAssembly",description:"3.8MB WASM bundle runs PDF processing entirely in the browser. True client-side processing."}].map((t,r)=>{const s=t.icon;return e.jsxs("div",{className:"bg-white rounded-lg p-8 border border-gray-200 hover:border-gray-300 transition-all duration-500",children:[e.jsx("div",{className:"w-12 h-12 rounded-lg bg-gray-100 flex items-center justify-center mb-6",children:e.jsx(s,{className:"h-6 w-6 text-gray-500"})}),e.jsx("h3",{className:"text-xl font-semibold text-gray-900 mb-3 tracking-tight",children:t.title}),e.jsx("p",{className:"text-sm text-gray-500 leading-relaxed font-light",children:t.description})]},t.title)})})]})}),e.jsx("section",{className:"w-full py-32 px-6 bg-gray-50",children:e.jsxs("div",{className:"max-w-7xl mx-auto",children:[e.jsx("h2",{className:"text-3xl font-semibold text-gray-900 mb-12 tracking-tight text-center",children:"Feature Comparison"}),e.jsx("div",{className:"space-y-12",children:h.map(t=>e.jsxs("div",{children:[e.jsx("h3",{className:"text-xl font-semibold text-gray-900 mb-6 tracking-tight",children:t.category}),e.jsxs("div",{className:"bg-white rounded-lg border border-gray-200 overflow-hidden",children:[e.jsxs("div",{className:"grid grid-cols-4 gap-4 p-4 border-b border-gray-200 bg-gray-50",children:[e.jsx("div",{className:"text-sm font-semibold text-gray-500",children:"Feature"}),e.jsx("div",{className:"text-sm font-semibold text-gray-900 text-center",children:"PDFluent"}),e.jsx("div",{className:"text-sm font-semibold text-gray-500 text-center",children:"Nutrient"}),e.jsx("div",{className:"text-sm font-semibold text-gray-500 text-center",children:"Apryse"})]}),t.items.map((r,s)=>e.jsxs("div",{className:`grid grid-cols-4 gap-4 p-4 ${s!==t.items.length-1?"border-b border-gray-100":""}`,children:[e.jsx("div",{className:"text-sm text-gray-700",children:r.name}),e.jsx("div",{className:"flex justify-center",children:e.jsx(a,{value:r.pdfluent})}),e.jsx("div",{className:"flex justify-center",children:e.jsx(a,{value:r.nutrient})}),e.jsx("div",{className:"flex justify-center",children:e.jsx(a,{value:r.apryse})})]},r.name))]})]},t.category))})]})}),e.jsx("section",{className:"w-full py-32 px-6 bg-white",children:e.jsxs("div",{className:"max-w-4xl mx-auto",children:[e.jsx("h2",{className:"text-3xl font-semibold text-gray-900 mb-8 tracking-tight text-center",children:"Migrating to PDFluent"}),e.jsx("p",{className:"text-gray-500 text-center mb-12 font-light",children:"Switching from Nutrient or Apryse? We make it easy."}),e.jsx("div",{className:"space-y-6",children:[{title:"Migration Guides",description:"Step-by-step guides for migrating from iText and PDFBox, including API mapping and code examples. PDFluent's open() / save() model maps cleanly from most library-style APIs."},{title:"Migration Assistance for Enterprise",description:"Enterprise customers get free migration support â code review, architecture guidance, and a dedicated channel for questions during the transition."},{title:"Performance Uplift",description:"PDFluent has no runtime to initialise, where a Java-based SDK starts a JVM first. For high-throughput pipelines this translates directly to lower infrastru
1cture costs and faster response times."},{title:"Predictable Licensing Costs",description:"Per-product pricing means your licence cost doesn't scale with team size. Add developers freely â the price stays the same until you ship a new product."}].map(t=>e.jsxs("div",{className:"bg-white rounded-lg p-6 border border-gray-200",children:[e.jsx("h3",{className:"text-lg font-semibold text-gray-900 mb-2 tracking-tight",children:t.title}),e.jsx("p",{className:"text-sm text-gray-500 leading-relaxed font-light",children:t.description})]},t.title))}),e.jsx("div",{className:"text-center mt-12",children:e.jsx("button",{className:"px-8 py-3 bg-gray-900 text-white rounded-lg font-medium text-sm hover:bg-gray-800 transition-colors shadow-sm",children:"Schedule Migration Call"})})]})}),e.jsx(n,{})]})}export{v as ComparisonPage};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.