Get a filing PDF under the portal upload limit
A reply to a notice, an appeal annexure or a registration document that the portal refuses because the file is too large. This page rewrites the PDF more compactly and re-encodes the photographs inside it, in this tab, and then tells you plainly whether the result is under the ceiling you picked. The published ceilings for the Income Tax e-filing portal and the GST portal are on the button row, each shown with the portal page it was read from and the date it was read.
What happens on this job
- Choose the portal and the form you are filing into. The ceiling fills the target box and stays editable, because your form may not be the one listed.
- Open the PDF. Photographs and scans inside it are re-encoded, which is where almost all of the size in a scanned annexure actually sits.
- Lower the photo quality or the maximum photo width if the first pass is not enough. A scan of a typed page survives a long way down; a photograph of a signature does not.
- The result states the size before, the size after, and whether it is under the ceiling you set — so you know before you go back to the portal, not after it rejects you again.
What it will not do
- A portal can change its limit without announcing it, and the dates beside each figure are there so you can see how old the number is. Check yours before you rely on it.
- There is no automatic "squeeze until it fits" pass. You choose the settings and read the result; nothing loops behind your back and quietly destroys a scan to hit a number.
- A PDF that is mostly text and already compact may not get much smaller, and the result says so instead of pretending otherwise.
- Compression is not redaction. Anything visible in the file is still visible afterwards. Mask what should not travel before you compress.
- Several portals also cap the number of attachments and the total across all of them. Getting one file under the per-file ceiling does not answer those.
No file-count limit, no daily limit, no queue — the work happens on this machine. Choose one file for the usual single-file flow, or select many for batch results and one ZIP.
About this PDF compressor
To make a PDF smaller in the browser: choose the file, decide whether to re-encode the photos inside it, and run it. The document is rewritten with object streams, eligible JPEGs are optionally re-encoded at the quality and maximum edge you choose, and the real before and after sizes are reported.
There are two passes here and both are measured rather than estimated. The first is lossless — the file is rewritten using object streams, and the title, author, subject, keywords, producer and creator can be cleared — and it changes nothing visible on the page. The second is optional, and is where the size usually is: embedded JPEGs are decoded and re-encoded through the browser’s own canvas at a quality between 40 and 95 per cent, and scaled down first if their longest edge is over the limit you picked. A PDF that is mostly text has very little to give up, and if the rewritten file is not smaller than the original you are handed your original back, byte for byte, with the page saying exactly that.
Step by step
- 1Choose the PDFOne file of up to 150 MB. Its real size is read and shown, so the before figure you are compared against is the file itself rather than a number you typed.
- 2Decide about the photosLeave photo re-encoding off for a lossless rewrite that changes nothing visible. Turn it on when the file is large because of scans or photographs, and set the JPEG quality between 40 and 95 per cent and a cap on the longest edge of 4000, 2400, 1600 or 1000 pixels.
- 3Or give it a ceiling to land underType a target in KB, or press one of the published portal ceilings, and use Fit under ceiling. It performs up to fourteen real rewrites, bisecting the JPEG quality and then stepping the largest photo edge down, and judges every attempt on the bytes it actually produced.
- 4Run it and read the real numbersThe rewrite happens in this tab. The panel reports the true before and after sizes and how many embedded images were re-encoded — not a predicted saving, and not a percentage the tool cannot substantiate.
- 5Download, or take your original backIf the rewritten file is not actually smaller you are handed your original unchanged, and the page says why. A tool that returned a larger file under a heading about size would be lying about the one thing you came for.
Where the bytes in a PDF actually are
Most PDFs are one of two things. A text document — a contract, a report, an invoice generated from a template — is mostly glyph positions and font subsets, and there is very little in it to squeeze; a lossless rewrite might take a few per cent off and that is all that is honestly available. A scanned or photo-heavy document is almost entirely embedded images, and it will often halve, because the photographs inside it were embedded at a quality and resolution nobody chose deliberately.
Knowing which of the two you have is the whole game, and it is why this page reports how many images it re-encoded. Nought images re-encoded and a small saving means you have a text document and there is nothing more to get. Forty images re-encoded and a large saving means the photographs were the file.
Which images are touched, and which are left alone
Only an image stream that can be rewritten without changing how the page renders: a single DCTDecode (JPEG) filter, 8 bits per component, a DeviceRGB or DeviceGray colour space, and no custom decode array or decode parameters. A CMYK photograph, an indexed or separation colour space, or a Flate-encoded image is counted as left alone rather than risk shifting the document’s colour — a print job whose colours moved in compression is a more expensive mistake than a file that stayed large.
A re-encoded image is kept only when its new bytes are genuinely smaller than the old ones. Where they are not, the original image stays in the file. Text and vector content are never touched at all, so the words stay as sharp as they were at any quality setting.
Fitting under a filing portal ceiling
The common reason to compress a PDF is not tidiness, it is a portal that refuses a file over a stated size. Type that size into the ceiling box and press Fit under ceiling, and the tool performs up to fourteen complete rewrites: it bisects the JPEG quality between 30 and 92 per cent, and where quality alone cannot get there it steps the largest photo edge down through 4000, 2000, 1400, 1000 and 700 pixels. Every attempt is judged on the bytes it actually produced. Nothing here estimates.
Published ceilings are offered as presets — USCIS online filing, Gmail attachments, Income Tax e-filing e-Proceedings attachments, GST appeal supporting documents and GST registration proof documents — and each one is shown next to the page it was read from and the date it was read. Each figure is a stated decimal-MB limit rounded down to whole kibibytes, so the result is under the ceiling whether the portal means megabytes or mebibytes.
That citation is deliberate, and so is the absence of any number in this page’s title or description. A portal can change its limit without announcing it, and a meta description cached by a search engine outlives the change by months — so the figures live beside their source where they can be checked, and a build-time test fails once any of them is more than ninety days old.
Why nothing is uploaded
Every response from this site is served with a Content Security Policy whose connect-src directive is set to none. That is not a promise in marketing copy; it is an instruction to your browser, and the browser is the one enforcing it. While this page is open it cannot open a connection to anywhere — not to this site, not to anyone else — so there is no path by which your document could be uploaded, not by a bug, not by a future change, not by a script that should not be here. e2e/egress-proof.spec.ts asserts the served header and then tries to send data out by every route a page has and requires each attempt to be refused, and it runs on every build.
That matters more here than on most tools, because the documents people compress are the documents they are about to file: a return, a bundle of bank statements, a set of scanned identity papers.
The second half of the guarantee is that the code has nowhere to send anything from. lib/tools/local-source-policy.test.ts reads every source file under lib/tools, workers, components and app on every test run and fails the build if any of them contains fetch, XMLHttpRequest, WebSocket, EventSource, sendBeacon or a peer connection, or even a remote address written down in a comment. A tool here cannot acquire an upload by accident, because the file that would have to contain one cannot be committed.
Questions people ask
- Which images get re-encoded, and which are left alone?
- Only an image stream that can be rewritten without changing how the page renders: a single DCTDecode (JPEG) filter, 8 bits per component, a DeviceRGB or DeviceGray colour space, and no custom decode array or decode parameters. A CMYK photo, an indexed or separation colour space, or a Flate-encoded image is counted as left alone rather than risk shifting the document’s colour. The result panel reports how many images were re-encoded.
- What do the two photo controls do?
- Photo quality is a JPEG quality between 40 and 95 per cent, 70 by default. Largest photo edge caps the longest side of an embedded image at 4000, 2400, 1600 or 1000 pixels, and anything bigger is scaled down before re-encoding. A re-encoded image is only kept when its new bytes are genuinely smaller than the old ones; otherwise the original image stays in the file.
- What happens if the file cannot be made smaller?
- You get your original file back unchanged, and the page says the PDF was already as small as it can make it, with a note that a text-heavy PDF has little to squeeze and that the gains come from photos. Returning a larger file under a heading about size would be untrue, so the output is compared with the input before anything is offered.
- Can it change the pages or the text?
- No. Text and vector content are never touched — only image streams are rewritten, and only those that qualify. After the rewrite the file is opened again and its page count compared with the original; a mismatch fails the run rather than producing a file.
- What are the limits, and does clearing metadata help?
- One PDF of up to 150 MB. Clearing the title, author, subject, keywords, producer and creator is switched on by default: it saves very little in bytes, but that metadata often names the person and the software that made the file. Where the browser cannot re-encode images at all, the run falls back to the lossless rewrite and reports that no images were touched.
- Can I compress a PDF to a specific size in KB?
- Yes. Type the size into the ceiling box, or press one of the published portal presets, and use Fit under ceiling. It runs up to fourteen complete rewrites, bisecting JPEG quality between 30 and 92 per cent and stepping the largest photo edge down through 4000, 2000, 1400, 1000 and 700 pixels, and it judges each attempt on the bytes that attempt actually produced rather than on a prediction. It reports one of three outcomes: already under the ceiling and unchanged, reached after so many rewrites at a named quality and edge, or still over — in which case you are given the smallest file it produced and told to split the document or send only the pages that were asked for.
- Whose upload limits are offered as presets?
- USCIS online filing, Gmail attachments on a personal account, Income Tax e-filing e-Proceedings attachments, GST appeal supporting documents and GST registration proof documents. Each is shown with the portal page it was read from and the date it was read, and each stated decimal-MB figure is rounded down to whole kibibytes so the result is under the ceiling on either reading of "MB". Portals change limits without announcing it, so check yours before you rely on any of them.