How to strip author and custom properties from office files
- Step 1Accept or reject track changes first, in Word — This tool removes property and comment streams, NOT revision marks. Track-changes nodes live inside
word/document.xmland are part of the body, not metadata — the wiper does not touch them. Before you export, open the document in Word and Review → Accept All Changes (or Reject) so no redline survives. The same applies to Excel cell comments converted to notes inside the sheet body. - Step 2Drop the Office file onto the wiper — The picker accepts
.docx,.xlsx, and.pptxonly (that is the literal accept filter). Drag one document in. On the public browser path, JSZip reads the file with FileReader — nothing is transmitted. Legacy.doc/.xls/.pptare binary OLE compound files, not OOXML ZIPs, and are rejected — see the cookbook for how to convert them first. - Step 3Let the wiper unzip, strip, and repack — There are no options to set — the schema is empty by design. The tool loads the container, removes the fixed list of
docProps/*, Word/Excel/PowerPoint comment and people streams, and the embedded thumbnail, then runs a wildcard sweep to catch any numberedcommentsN.xmlorthreadedComment*.xmlit does not name explicitly, and repacks withgenerateAsync. - Step 4Read the removed-entries count — The result reports
removedEntries— the number of metadata files actually deleted from this specific container. A clean template you authored from scratch might show 1–2 (just core + app); a heavily reviewed legal draft can show 8 or more once all the comment and people streams are counted. Zero removed means the file already had no property or comment streams. - Step 5Download the -clean copy — Output keeps your original filename with a
-cleansuffix before the extension (e.g.Merger-Agreement.docx→Merger-Agreement-clean.docx). The original on disk is untouched — the wiper never overwrites your source, so you always keep the working copy with comments intact. - Step 6Verify in Office before you send — Re-open the cleaned file and check File → Info → Properties (Word/PowerPoint) or File → Info (Excel) — Author, Last Modified By, Company, and custom properties should be blank, and the Comments pane should be empty. For a belt-and-braces check, rename the copy to
.zipand confirmdocProps/core.xmlis absent. Excel will regenerate a minimalcore.xmlon the next save, so wipe last, right before sending.
What the wiper removes from each Office container
The exact entry paths deleted by the tool, grouped by format. Word/Excel/PowerPoint share the docProps streams; each app adds its own comment and author streams. A wildcard sweep also catches any numbered commentsN.xml / threadedComment*.xml not named here.
| Container area | Entries removed | What it leaks if left in | Applies to |
|---|---|---|---|
| Document properties | docProps/core.xml, docProps/app.xml, docProps/custom.xml | Creator, Last Modified By, Revision number, Company, Template name, Total Editing Time, and any firm-injected custom props (matter number, client code, DLP classification) | All three (.docx / .xlsx / .pptx) |
| Embedded preview | docProps/thumbnail.jpeg, docProps/thumbnail.png | A rendered preview of the first page/slide/sheet that can survive visual redaction of the body | All three |
| Word comments & people | word/comments.xml, word/commentsExtended.xml, word/commentsExtensible.xml, word/commentsIds.xml, word/people.xml, word/threadedComments.xml | Reviewer display names, comment text, resolved-thread history, and the author→GUID people map | .docx |
| Excel comments & persons | xl/comments1.xml, xl/comments2.xml, xl/threadedComments/threadedComment1.xml, xl/persons/person.xml | Cell-comment author names, threaded review notes, and the persons identity map | .xlsx |
| PowerPoint comments & authors | ppt/comments/comment1.xml, ppt/commentAuthors.xml, ppt/modifyVerifier.xml | Slide comment text, comment author registry, and the modify-verifier (write-protection) author block | .pptx |
| Wildcard sweep | xl/comments\d+.xml, xl/threadedComments/*.xml, word/comments\d*.xml, ppt/comments/*.xml | Any additional numbered comment streams a heavily reviewed file accumulates beyond the named ones | All three |
What the wiper deliberately leaves untouched
Metadata and content the tool does NOT remove. These are either part of the document body, not property streams, or are needed for the file to function. Use the linked sibling tool or the Word UI instead.
| Not removed | Why | What to do instead |
|---|---|---|
| Track changes / revision marks | Redlines are nodes inside word/document.xml (the body), not a property stream | Review → Accept/Reject All in Word before exporting |
VBA macros (vbaProject.bin) | Preserved on purpose so .docm / .xlsm keep working — this is a metadata wiper, not a macro stripper | If you need a macro-free copy, save as .docx/.xlsx in Office to drop the VBA part |
| Visible cell comments converted to notes / text already typed into the body | Once a comment's text is pasted into a cell or slide, it is body content, not a comment stream | Edit it out manually before wiping |
| Hidden rows/columns, hidden slides, off-canvas objects | Out of scope — the tool removes metadata files, not layout content | Unhide and delete in Office, or inspect the unzipped XML |
| PDF metadata | PDFs are not OOXML ZIPs and are not accepted | Use pdf-history-sanitizer for PDF Info-dictionary and XMP |
| EXIF in images embedded inside the document | The wiper strips document-level streams, not per-image EXIF inside media/ | Scrub images first, then insert; use an image EXIF tool |
Where it runs, limits, and output shape
The tool requires the Pro plan or higher. File-size and batch caps follow the Security family tier limits. The public page processes in the browser; the API path returns the cleaned binary as base64.
| Property | Value | Notes |
|---|---|---|
| Minimum plan | Pro | Enforced at run time — Free attempts return requires the pro plan |
| File-size limit (Pro) | 100 MB per file | Pro-media 500 MB, Developer 2 GB; an oversize file errors with exceeds the … limit for your plan |
| Batch files (Pro) | 5 (UI multi-select) | Picker accepts multiple, but the processor cleans the first selected file per run — see edge cases |
| Accepted input | .docx, .xlsx, .pptx | Literal accept filter; legacy binary .doc/.xls/.ppt are rejected |
| Output (browser) | Repacked Blob, same name + -clean suffix | Plus a removedEntries count of deleted streams |
| Output (API / runner) | JSON with outputBase64, inputBytes, outputBytes, removedEntries | mime: application/octet-stream — decode base64 to get the cleaned file |
| Audit log | Emitted | The run is recorded for dashboard/enterprise audit (no file content stored) |
Cookbook
Real before/after structure from real OOXML containers. File and reviewer names are anonymised; the entry paths are exactly what the tool acts on.
A reviewed legal draft going to opposing counsel
A merger agreement that three associates and a partner commented on. The visible text is final, but the container still carries every reviewer's name, the resolved-comment threads, the firm's custom DLP property, and the total editing time. The wiper removes all of it; you still accept track changes in Word first.
Before (unzip Merger-Agreement.docx): docProps/core.xml <- Creator: J. Associate; Last Modified By: Partner docProps/app.xml <- Company: Acme LLP; TotalTime: 4180 docProps/custom.xml <- MatterNumber=2026-0412; Classification=Privileged word/comments.xml <- 11 review comments word/people.xml <- 4 reviewer GUIDs + names word/threadedComments.xml word/document.xml <- still contains track-changes nodes! After wipe (Merger-Agreement-clean.docx): docProps/core.xml REMOVED docProps/app.xml REMOVED docProps/custom.xml REMOVED word/comments.xml REMOVED word/people.xml REMOVED word/threadedComments.xml REMOVED word/document.xml UNCHANGED <- accept track changes in Word! removedEntries: 6
A consultant's Excel model emailed to a client
A pricing model with cell comments from the internal review and a stray custom property carrying the engagement code. Macros in the workbook must keep working, so the wiper preserves vbaProject.bin while stripping the comments, persons map, and properties.
Before (unzip Pricing-Model.xlsm): docProps/core.xml <- Creator + Last Modified By docProps/custom.xml <- EngagementCode=ENG-7781 xl/comments1.xml <- 8 cell comments xl/persons/person.xml <- author identity map xl/vbaProject.bin <- pricing macros After wipe (Pricing-Model-clean.xlsm): docProps/core.xml REMOVED docProps/custom.xml REMOVED xl/comments1.xml REMOVED xl/persons/person.xml REMOVED xl/vbaProject.bin PRESERVED <- macros still run removedEntries: 4
A pitch deck with reviewer comments and a preview thumbnail
A PowerPoint with slide comments from the deal team, the commentAuthors registry, and the embedded first-slide thumbnail that file explorers render. All three are property/comment streams the wiper removes.
Before (unzip Investor-Deck.pptx): docProps/core.xml docProps/thumbnail.jpeg <- preview of slide 1 ppt/comments/comment1.xml <- 5 review comments ppt/commentAuthors.xml <- author registry After wipe (Investor-Deck-clean.pptx): docProps/core.xml REMOVED docProps/thumbnail.jpeg REMOVED ppt/comments/comment1.xml REMOVED ppt/commentAuthors.xml REMOVED removedEntries: 4
Confirming the wipe by re-unzipping
Compliance teams that need an audit trail can verify the result without trusting the UI: rename the cleaned copy to .zip and list it. The named streams should be gone. The browser path also surfaces a removedEntries count you can record.
# Rename and inspect (any OS unzip tool): $ cp Merger-Agreement-clean.docx verify.zip $ unzip -l verify.zip | grep docProps (no core.xml / app.xml / custom.xml lines) $ unzip -l verify.zip | grep comments (nothing) # Result panel reported: removedEntries: 6 inputBytes: 148210 outputBytes: 121640
Automating the wipe in a pre-send pipeline (runner)
Because this tool is server-safe, you can run it through a paired @jadapps/runner on your own machine — files never reach JAD's servers. Fetch the schema (it has no options), then POST the document to the local runner. The runner returns the cleaned file as base64.
# 1. Read the schema (options array is empty for this tool):
GET /api/v1/tools/office-doc-property-wiper
-> { options: [], minTier: "pro", outputType: "blob" }
# 2. Dispatch to the local runner (no upload to JAD):
POST http://127.0.0.1:9789/v1/tools/office-doc-property-wiper/run
(multipart: the .docx file)
# 3. Runner response (server-safe engine):
{
"outputBase64": "UEsDBBQA...", <- cleaned file
"inputBytes": 148210,
"outputBytes": 121640,
"removedEntries": 6,
"mime": "application/octet-stream"
}
# base64-decode outputBase64 -> Merger-Agreement-clean.docxEdge cases and what actually happens
Track changes survive the wipe
By designThe tool removes property and comment streams, not revision marks. Track-changes nodes live inside word/document.xml (the body) and are deliberately left untouched — wiping them would alter the document content. Accept or reject all changes in Word's Review tab BEFORE you export, or the redlines (and the names attached to them) reach the recipient even though the comments are gone.
Legacy .doc / .xls / .ppt dropped
RejectedLegacy Office formats are binary OLE compound files, not OOXML ZIP containers, so JSZip cannot open them and the accept filter (.docx,.xlsx,.pptx) excludes them at the picker. Open the file in Office and Save As the modern format (.docx / .xlsx / .pptx) first, then wipe. Saving as OOXML also gives you a fresh, smaller set of property streams to remove.
Multiple files selected at once
First file onlyThe picker allows multi-select (acceptsMultiple is true for this tool), but the browser processor cleans the first selected file per run and returns one -clean output. To wipe a batch, drop them one at a time. The Pro batch cap of 5 files governs how many you can queue in the picker, not how many are cleaned in a single pass.
File exceeds your plan's size limit
Error: exceeds limitA file larger than your tier's cap fails before any processing with a message like File "X.xlsx" is 142 MB — exceeds the 100 MB limit for your plan. Pro is 100 MB, Pro-media 500 MB, Developer 2 GB. Most documents are far under this; the usual cause of a huge .xlsx is embedded media or a giant data range, neither of which this tool can shrink.
Running on the Free plan
Rejected: requires ProThis tool's minimum plan is Pro. A Free-tier run is rejected with Office Doc Property Wiper requires the pro plan. before any file is read. The size and batch limits in the tables apply only once you are on a qualifying plan.
removedEntries comes back as 0
ExpectedZero removed means the container had none of the targeted property or comment streams — common for a file freshly created from a blank template, or one already cleaned. It is not an error: the document was already free of the metadata this tool targets. The output is still re-packed and saved with the -clean suffix.
Office regenerates core.xml on next save
ExpectedWord, Excel, and PowerPoint write a fresh, minimal docProps/core.xml (with the current user as Creator) the next time you open and SAVE the cleaned file. The wipe is correct at the moment it runs; the metadata is only re-introduced if you edit and re-save. Best practice: wipe LAST, immediately before sending, and do not open-and-save afterwards.
Custom properties added by a DLP / classification add-in
RemovedFirm DLP tools that stamp a classification label or matter number into docProps/custom.xml are removed along with the rest of that stream. This is usually what you want before external sharing — but note that some recipients' systems expect the classification banner. Confirm with your IT/security team whether stripping the classification property is acceptable for your sharing scenario.
Personal info still visible inside chart data or named ranges
Out of scopeThe wiper removes metadata files, not body content. A hidden worksheet, a named range pointing at a staff roster, or a chart whose source data references internal cells is part of the workbook content, not a property stream, and survives. Inspect and delete those in Excel before wiping.
Repacked file is slightly larger or smaller than the original
ExpectedJSZip re-compresses the surviving entries when it repacks, so outputBytes rarely matches the source byte-for-byte even beyond the removed streams. The document opens identically in Office — the size delta reflects ZIP recompression and the deleted XML, not content loss. Compare inputBytes vs outputBytes in the result if you want the exact difference.
Frequently asked questions
Exactly which properties does this remove?
Everything in docProps/core.xml (Creator, Last Modified By, Revision, Created/Modified dates), docProps/app.xml (Company, Template, Total Editing Time, application name), and docProps/custom.xml (any custom properties, including firm-injected matter numbers, client codes, and DLP classification tags). The whole stream files are deleted, so it is all-or-nothing per stream — there is no per-field option.
Does it remove track changes?
No. Track-changes nodes live inside word/document.xml, which is the document body, not a metadata stream — the wiper intentionally does not modify it. Accept or reject all changes in Word's Review tab before exporting, otherwise the redlines and their authorship reach the recipient even though comments and properties are gone.
Will my macros still work after wiping?
Yes. vbaProject.bin is not in the strip list, so macros in a .docm / .xlsm / .pptm are preserved and continue to function. This is a metadata wiper, not a macro remover. If you want a macro-free copy, save the file as the non-macro format (.docx / .xlsx / .pptx) in Office, which drops the VBA part.
What about legacy .doc, .xls, or .ppt files?
They are not supported. Legacy formats are binary OLE compound files, not the OOXML ZIP containers this tool understands, and the picker's accept filter is .docx,.xlsx,.pptx. Open the file in Office and Save As the modern format first, then run the wiper on the converted copy.
Does it remove comments and reviewer names?
Yes — comprehensively. For Word it deletes comments.xml, commentsExtended.xml, commentsExtensible.xml, commentsIds.xml, people.xml, and threadedComments.xml; for Excel comments1.xml, threaded-comment files, and persons/person.xml; for PowerPoint comments/comment1.xml and commentAuthors.xml. A wildcard sweep also catches any numbered comment streams not named explicitly, so a heavily reviewed file is fully scrubbed of comment authorship.
Is my confidential document uploaded anywhere?
On the public website, no — JSZip unpacks, strips, and repacks the file entirely in your browser, so a privileged or client-confidential document never leaves your machine. The optional API path is upload-free too: it dispatches the job to an @jadapps/runner running on your own machine, so even automated runs keep the file on your network. A counter of runs (no content) is recorded for dashboard/enterprise audit.
Does it strip the embedded thumbnail preview?
Yes. docProps/thumbnail.jpeg and docProps/thumbnail.png are deleted. This matters because the thumbnail is a rendered image of the first page/slide/sheet that file explorers and some viewers display — it can survive a visual redaction of the body text, so removing it closes that leak.
Can I wipe several files at once?
The picker lets you select multiple files (and Pro allows up to 5 in a batch), but the browser processor cleans the first selected file per run and returns one cleaned copy. For a folder of documents, run them one at a time. If you need true unattended batch processing, script it against the local runner endpoint.
What plan do I need and how big can the file be?
The tool requires the Pro plan or higher. File-size caps follow the Security family limits: Pro 100 MB, Pro-media 500 MB, Developer 2 GB per file. An oversize file errors before processing with a message naming the file and your plan's limit. Almost every real Office document is well under these caps unless it embeds large media.
Why does the author reappear after I edit the cleaned file?
Office regenerates a fresh, minimal docProps/core.xml listing the current user as Creator the next time you open and save the document. The wipe was correct at the moment it ran. To avoid re-introducing metadata, make the wipe the LAST step before sending and do not open-and-save the cleaned copy afterwards.
How do I confirm it actually worked?
Two ways. In Office, check File → Info → Properties (Word/PowerPoint) or File → Info (Excel) — Author, Company, and custom properties should be blank and the comments pane empty. For a deeper check, copy the cleaned file to a .zip and list its contents: docProps/core.xml, app.xml, custom.xml, and the comment streams should be absent. The result panel also reports a removedEntries count.
How does this compare to the PDF and audio metadata tools?
This tool targets OOXML Office containers only. For PDFs, the Info dictionary and XMP are scrubbed by pdf-history-sanitizer; for MP3 ID3 tags and album art use audio-id3-ghoster. To redact PII text inside a CSV or to validate a file's true type before trusting its extension, see email-phone-scrubber and magic-byte-validator. They share the same browser-side, no-upload model.
Privacy first
Every JAD Security operation runs entirely in your browser. Files, passwords, and PGP private keys never leave your device — verified by zero outbound network requests during processing.