<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: PC Tools Online</title>
    <description>The latest articles on DEV Community by PC Tools Online (@pctools_online).</description>
    <link>https://dev.to/pctools_online</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4222383%2Fdd852cab-9b9d-44c3-bc22-3df6c5bab4d1.png</url>
      <title>DEV Community: PC Tools Online</title>
      <link>https://dev.to/pctools_online</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/pctools_online"/>
    <language>en</language>
    <item>
      <title>What a "no-upload" PDF tool actually does with your file (and 4 limits nobody mentions)</title>
      <dc:creator>PC Tools Online</dc:creator>
      <pubDate>Mon, 02 Nov 2026 13:30:13 +0000</pubDate>
      <link>https://dev.to/pctools_online/what-a-no-upload-pdf-tool-actually-does-with-your-file-and-4-limits-nobody-mentions-3gdi</link>
      <guid>https://dev.to/pctools_online/what-a-no-upload-pdf-tool-actually-does-with-your-file-and-4-limits-nobody-mentions-3gdi</guid>
      <description>&lt;p&gt;"Your files never leave your device" is on every browser-tool landing page now. I build one of these sites, so here is what that claim really covers — and where it quietly stops.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. "No upload" ≠ "offline."&lt;/strong&gt; The file is read with the File API inside the tab, but the page still loads its PDF and image libraries from a CDN. Open the tool with no network and it won't start. I wrote up exactly what happens step by step in &lt;a href="https://pctoolsonline.com/guides/what-the-browser-does-with-your-file.html" rel="noopener noreferrer"&gt;what the browser does with your file&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Client-side PDF compression usually means rasterising.&lt;/strong&gt; The simplest way to shrink a PDF in JS is to draw each page to a canvas and re-encode it as JPEG. Great for scans. Terrible for a text PDF: it can get &lt;em&gt;bigger&lt;/em&gt;, and the text is no longer selectable. Our &lt;a href="https://pctoolsonline.com/tools/compress-pdf.html" rel="noopener noreferrer"&gt;Compress PDF&lt;/a&gt; does exactly this, so the page says so before you click.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. A black box is not a redaction.&lt;/strong&gt; Drawing a rectangle over text hides it on screen and in print, but the text layer underneath is still there — copy-paste or a text extractor will find it. That's why our &lt;a href="https://pctoolsonline.com/tools/redact-pdf.html" rel="noopener noreferrer"&gt;Redact PDF&lt;/a&gt; is labelled "visual redaction" in plain words. If it's a legal document, flatten to an image or use a tool that removes the content stream.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Photos carry more than pixels.&lt;/strong&gt; Before you post a picture, check the EXIF block — GPS coordinates are often in there. An &lt;a href="https://pctoolsonline.com/tools/exif-viewer.html" rel="noopener noreferrer"&gt;EXIF viewer that can save a stripped copy&lt;/a&gt; takes a few seconds and runs entirely in the tab; a lossless strip keeps the pixels untouched.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Bonus: HEIC.&lt;/strong&gt; Browsers don't decode HEIC natively, so in-browser converters ship a decoder (WASM). Expect a fixed quality setting and only the first frame of a Live Photo — details in &lt;a href="https://pctoolsonline.com/guides/heic-to-jpg-what-you-lose.html" rel="noopener noreferrer"&gt;what HEIC to JPG keeps and drops&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Takeaway for builders:&lt;/strong&gt; state the limits on the tool page. Users trust a tool more when it tells them when &lt;em&gt;not&lt;/em&gt; to use it.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Disclosure: I run PC Tools Online, the site linked above. Happy to answer implementation questions in the comments.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>privacy</category>
      <category>pdf</category>
    </item>
  </channel>
</rss>
