<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>PDFStreamline — articles</title>
    <link>https://pdfstreamline.com/</link>
    <description>Technical writing about the PDF file format and the libraries that read and write PDFs in Java, C# and JavaScript.</description>
    <language>en</language>
    <atom:link href="https://pdfstreamline.com/rss.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>PDFBox vs iText vs OpenPDF: choosing a Java PDF library</title>
      <link>https://pdfstreamline.com/articles/pdfbox-vs-itext-vs-openpdf</link>
      <guid isPermaLink="true">https://pdfstreamline.com/articles/pdfbox-vs-itext-vs-openpdf</guid>
      <description>The choice usually comes down to licensing before it comes down to features — and the AGPL question around iText is the most misunderstood part of the whole ecosystem. Here is the honest comparison.</description>
      <category>Java PDF libraries</category>
      <pubDate>Sat, 22 Aug 2026 09:00:00 GMT</pubDate>
      <enclosure url="https://pdfstreamline.com/og/pdfbox-vs-itext-vs-openpdf.png" type="image/png" length="0" />
    </item>
    <item>
      <title>Generating a PDF invoice in Java, end to end</title>
      <link>https://pdfstreamline.com/articles/generate-pdf-invoice-java</link>
      <guid isPermaLink="true">https://pdfstreamline.com/articles/generate-pdf-invoice-java</guid>
      <description>Most PDF tutorials stop at &quot;Hello World&quot;. This one builds a real invoice — a line-item table that wraps text, breaks across pages, repeats its header and totals correctly.</description>
      <category>Java PDF libraries</category>
      <pubDate>Sat, 22 Aug 2026 09:00:00 GMT</pubDate>
      <enclosure url="https://pdfstreamline.com/og/generate-pdf-invoice-java.png" type="image/png" length="0" />
    </item>
    <item>
      <title>Drawing tables and flowing text in PDFBox</title>
      <link>https://pdfstreamline.com/articles/pdfbox-tables-and-text-layout</link>
      <guid isPermaLink="true">https://pdfstreamline.com/articles/pdfbox-tables-and-text-layout</guid>
      <description>PDFBox draws glyphs at coordinates and nothing more. No paragraphs, no wrapping, no tables. Here is the small set of routines that turns that into a real layout.</description>
      <category>Java PDF libraries</category>
      <pubDate>Sat, 22 Aug 2026 09:00:00 GMT</pubDate>
      <enclosure url="https://pdfstreamline.com/og/pdfbox-tables-and-text-layout.png" type="image/png" length="0" />
    </item>
    <item>
      <title>Converting HTML to PDF in Java</title>
      <link>https://pdfstreamline.com/articles/html-to-pdf-java</link>
      <guid isPermaLink="true">https://pdfstreamline.com/articles/html-to-pdf-java</guid>
      <description>PDFBox cannot do this, and that surprises people. Here are the approaches that actually work, what CSS each one really supports, and what they cost you in memory and deployment weight.</description>
      <category>Java PDF libraries</category>
      <pubDate>Sat, 22 Aug 2026 09:00:00 GMT</pubDate>
      <enclosure url="https://pdfstreamline.com/og/html-to-pdf-java.png" type="image/png" length="0" />
    </item>
    <item>
      <title>Extracting text from PDFs in Java, including the hard cases</title>
      <link>https://pdfstreamline.com/articles/extract-text-from-pdf-java</link>
      <guid isPermaLink="true">https://pdfstreamline.com/articles/extract-text-from-pdf-java</guid>
      <description>The easy case is four lines of code. This is about the other cases: multi-column reading order, mojibake from missing Unicode maps, scanned pages that extract nothing, and tables.</description>
      <category>Java PDF libraries</category>
      <pubDate>Sat, 22 Aug 2026 09:00:00 GMT</pubDate>
      <enclosure url="https://pdfstreamline.com/og/extract-text-from-pdf-java.png" type="image/png" length="0" />
    </item>
    <item>
      <title>C# PDF libraries compared: QuestPDF, PDFsharp, iText and the rest</title>
      <link>https://pdfstreamline.com/articles/csharp-pdf-library-comparison</link>
      <guid isPermaLink="true">https://pdfstreamline.com/articles/csharp-pdf-library-comparison</guid>
      <description>The .NET PDF ecosystem splits cleanly into libraries that write documents and libraries that read them, and almost nothing does both well. Here is how to pick.</description>
      <category>C# and .NET</category>
      <pubDate>Sat, 22 Aug 2026 09:00:00 GMT</pubDate>
      <enclosure url="https://pdfstreamline.com/og/csharp-pdf-library-comparison.png" type="image/png" length="0" />
    </item>
    <item>
      <title>Generating PDFs in C#: QuestPDF and PDFsharp side by side</title>
      <link>https://pdfstreamline.com/articles/generate-pdf-csharp</link>
      <guid isPermaLink="true">https://pdfstreamline.com/articles/generate-pdf-csharp</guid>
      <description>The same invoice, built twice: once with QuestPDF, which lays the document out for you, and once with PDFsharp, which does not. The difference explains the whole .NET landscape.</description>
      <category>C# and .NET</category>
      <pubDate>Sat, 22 Aug 2026 09:00:00 GMT</pubDate>
      <enclosure url="https://pdfstreamline.com/og/generate-pdf-csharp.png" type="image/png" length="0" />
    </item>
    <item>
      <title>JavaScript PDF libraries compared: pdf-lib, PDFKit, jsPDF, pdfmake and pdf.js</title>
      <link>https://pdfstreamline.com/articles/javascript-pdf-library-comparison</link>
      <guid isPermaLink="true">https://pdfstreamline.com/articles/javascript-pdf-library-comparison</guid>
      <description>Five libraries that all claim to &quot;do PDF in JavaScript&quot; and barely overlap in what they actually do. Sorting out which one belongs in your project.</description>
      <category>JavaScript and Node.js</category>
      <pubDate>Sat, 22 Aug 2026 09:00:00 GMT</pubDate>
      <enclosure url="https://pdfstreamline.com/og/javascript-pdf-library-comparison.png" type="image/png" length="0" />
    </item>
    <item>
      <title>Generating PDFs in Node.js</title>
      <link>https://pdfstreamline.com/articles/generate-pdf-nodejs</link>
      <guid isPermaLink="true">https://pdfstreamline.com/articles/generate-pdf-nodejs</guid>
      <description>Three approaches to server-side PDF in Node — draw it, edit it, or render a web page into it — with the code for each and the deployment cost of the last one.</description>
      <category>JavaScript and Node.js</category>
      <pubDate>Sat, 22 Aug 2026 09:00:00 GMT</pubDate>
      <enclosure url="https://pdfstreamline.com/og/generate-pdf-nodejs.png" type="image/png" length="0" />
    </item>
    <item>
      <title>Apache PDFBox: a practical guide to the open-source Java PDF library</title>
      <link>https://pdfstreamline.com/articles/apache-pdfbox-java-pdf-library</link>
      <guid isPermaLink="true">https://pdfstreamline.com/articles/apache-pdfbox-java-pdf-library</guid>
      <description>PDFBox is the most widely used open-source Java PDF library. Here is how it is put together, what its core classes actually do, and the code you need for the jobs that come up most often.</description>
      <category>Java PDF libraries</category>
      <pubDate>Fri, 14 Aug 2026 09:00:00 GMT</pubDate>
      <enclosure url="https://pdfstreamline.com/og/apache-pdfbox-java-pdf-library.png" type="image/png" length="0" />
    </item>
    <item>
      <title>What a PDF actually is, and how it got here</title>
      <link>https://pdfstreamline.com/articles/history-of-pdf</link>
      <guid isPermaLink="true">https://pdfstreamline.com/articles/history-of-pdf</guid>
      <description>PDF started as an internal Adobe memo about paper. Three decades later it is an ISO standard that every operating system can read. Here is the history — and a look inside the file itself.</description>
      <category>The format</category>
      <pubDate>Sat, 08 Aug 2026 09:00:00 GMT</pubDate>
      <enclosure url="https://pdfstreamline.com/og/history-of-pdf.png" type="image/png" length="0" />
    </item>
  </channel>
</rss>