C&M PDF Studio Beta

By C&M Bookkeeping and Accounting Services โ€” edit, convert, OCR and share PDFs.

โ† cmconsultingpartners.com Book a Meeting

Sign in

Sign in with Google to save your plan status. Requires Firebase to be configured in the Settings tab first (Firebase project โ†’ Google sign-in provider โ†’ paste config).

1. Add PDF files

Drag PDFs in to combine them โ€” drop several at once, or add more later to append them to the end. Click the box to browse instead.
๐Ÿ“„ Drop PDFs here to merge
or click to browse your files

2. Pages

Drag a page to reorder. Use the buttons on each page to rotate or delete it.
Clears the current pages, logo and file name so you can merge or edit a fresh file โ€” doesn't affect anything you've already downloaded.
No pages yet โ€” add a PDF above.

3. Add your logo / watermark

Stamps an image onto every page (or a page range) of the exported PDF.

4. Export

This name is used for the PDF download, Word/Excel conversions, and device/cloud sharing below.

Scan a document with your camera

On a phone this opens the camera directly. On desktop it opens a file picker instead. Snap a photo of the document โ€” background and all, you'll crop it next.

Adjust the corners

Drag the 4 dots onto the actual corners of the document to cut out the background around it.

Added โœ“

This scan was added to your page list in the Editor tab, where you can reorder it, rotate it, add a logo, or export/convert it like any other page.
๐Ÿ”’ Sign in and subscribe (Account tab) to unlock conversions.

Convert to Word or Excel

Best-effort text extraction from the pages in the editor (in their current order). This is a plain-text conversion โ€” layout, tables and images are not preserved. For scanned pages with no embedded text, run OCR first and save the result as page text.
๐Ÿ”’ Sign in and subscribe (Account tab) to unlock OCR.

OCR (scanned pages / images)

Recognizes text from a page image using Tesseract.js, entirely in your browser. Useful for scanned PDFs with no selectable text.

Share via device

Opens your device's native share sheet (Messenger, WhatsApp, Mail, Files, etc.) โ€” works on most mobile browsers and some desktop browsers. Builds the PDF from the current editor state.

Email

Downloads the PDF and opens your email client. Browsers can't auto-attach files for security reasons, so drag the downloaded file into the email manually.

Facebook / Messenger

Facebook and Messenger can only share a public link, not a local file. Upload to Google Drive or OneDrive in the Cloud tab first (or paste any link you already have), then share it below.
๐Ÿ”’ Sign in and subscribe (Account tab) to unlock cloud upload.

Google Drive

Requires your own Google OAuth Client ID (set it in Settings). Uploads the current PDF and puts the shareable link into the Share tab.
Not connected

OneDrive

Requires your own Microsoft (Azure) App Client ID (set it in Settings). Uploads the current PDF and puts the shareable link into the Share tab.
Not connected

Sign-in & subscriptions (Firebase + Stripe)

Real Gmail login and paid subscriptions need a Firebase project (free to start) wired to Stripe. Full walkthrough is in the setup guide that came with this file โ€” short version:

1. Create a project at console.firebase.google.com โ†’ Build โ†’ Authentication โ†’ enable the Google sign-in provider.
2. Build โ†’ Firestore Database โ†’ create database.
3. Project settings โ†’ General โ†’ Your apps โ†’ add a Web app โ†’ copy the firebaseConfig object โ†’ paste it below.
4. Extensions โ†’ install "Run Subscription Payments with Stripe" (by Invertase) โ†’ follow its prompts to connect your Stripe account and sync your product/price.
5. Paste the monthly subscription's Stripe Price ID below.
6. Authentication โ†’ Settings โ†’ Authorized domains โ†’ add whatever domain you're hosting this file on.

Cloud credentials

These features need your own API credentials โ€” Claude can't ship working Google/Microsoft app keys inside a static file, since they're tied to a specific registered app and origin.

Google Drive: create a project at console.cloud.google.com โ†’ APIs & Services โ†’ Credentials โ†’ OAuth client ID (type: Web application) โ†’ add the URL you're hosting/opening this file from as an Authorized JavaScript origin โ†’ paste the Client ID below.

OneDrive: register an app at portal.azure.com โ†’ Azure AD โ†’ App registrations โ†’ add a SPA redirect URI matching this page's URL โ†’ paste the Client ID below.

Important: OAuth requires this file to be served over http:// or https:// (e.g. python3 -m http.server, or upload it to Netlify/Vercel/GitHub Pages) โ€” it will not work if opened directly as a file:// path.

About this build

Everything except cloud upload and Facebook/Messenger link-sharing runs entirely in your browser โ€” no server, no data leaves your device. Planned next: a native/PWA install option and higher-fidelity Word/Excel conversion via a small backend converter.