O unealtă PDF pe server îți încarcă fișierul pe calculatoarele operatorului, îl procesează acolo și îți trimite înapoi rezultatul. O unealtă în browser (pe partea de client) face invers: programul se descarcă în browserul tău și procesează fișierul pe propriul tău dispozitiv. În primul caz călătorește documentul tău; în al doilea, doar codul.

Această singură diferență decide cine îți poate vedea vreodată fișierul. Tot ea explică de ce cele două tipuri de unelte se simt diferit, dau greș în moduri diferite și se potrivesc la lucruri diferite. Explicația de mai jos arată pas cu pas ce se întâmplă de fapt în fiecare.

Ce se întâmplă într-o unealtă pe server

  1. Alegi un fișier. Pagina îl trimite prin internet la serverul operatorului, de obicei ca upload prin HTTPS.
  2. Serverul îl stochează, cel puțin pe disc sau în memorie pe durata lucrării, adesea într-o coadă împreună cu fișierele altor oameni.
  3. Un program de pe server, cum ar fi o bibliotecă PDF, un convertor sau un motor de recunoaștere a textului, face treaba.
  4. Și rezultatul este stocat, iar pagina îți dă un link ca să-l descarci.
  5. Ambele fișiere sunt șterse mai târziu, după regulile de păstrare ale operatorului.

Pe vremuri, acesta era singurul mod practic de a face lucrurile. Browserele erau lente, iar bibliotecile care puteau citi și rescrie PDF-uri rulau doar pe servere. Browserele de azi rulează repede cod complex, iar bibliotecile PDF open-source scrise în JavaScript pot face majoritatea treburilor de zi cu zi într-o filă.

HTTPS protejează pasul 1 de cei care ascultă pe rețea. Pașii 2–5 depind de operator: de securitatea lui, de accesul angajaților, de copiile de rezervă și de obligațiile legale din țara în care se află serverele. Majoritatea operatorilor se ocupă de asta în mod responsabil, dar tu ai încredere că o fac.

Ce se întâmplă într-o unealtă în browser

  1. Deschizi pagina uneltei. Browserul descarcă pagina și codul ei JavaScript, la fel ca la orice site.
  2. Alegi un fișier. API-ul File al browserului îl citește de pe disc în memoria filei. Nu se trimite nimic.
  3. Codul care rulează în filă face treaba. Părțile grele rulează adesea într-un Web Worker, un fir de execuție în fundal, ca pagina să răspundă în continuare.
  4. Rezultatul este construit în memorie și îți este dat ca descărcare, printr-un link temporar care arată spre memoria din propriul tău browser.
  5. Când închizi fila, memoria este eliberată. Nu e nimic de șters în altă parte, pentru că nu s-a trimis nimic.

Uneltele PDF Kopitiam funcționează așa. Folosesc pdf.js, motorul PDF open-source de la Mozilla, ca să citească și să afișeze paginile, cu parserul rulând într-un Web Worker. Folosesc pdf-lib, o altă bibliotecă open-source, ca să construiască noul PDF. Ambele rulează în fila ta.

„În browser” nu înseamnă că pagina nu face nicio cerere în rețea. Tot încarcă cod, fonturi și, pe un site gratuit, reclame. Contează ca octeții fișierului tău să nu facă niciodată parte din vreo cerere.

De ce uneltele din browser pot merge offline

Odată ce programul e în browserul tău, nu mai are nevoie de rețea ca să ruleze. De aceea merge testul offline: încarci unealta, oprești Wi-Fi-ul, iar unealta merge mai departe. Dacă ar încărca într-adevăr fișierul, ar da greș imediat.

Sunt câteva detalii bune de știut. Kopitiam pornește workerul motorului PDF imediat ce se deschide pagina unei unelte, nu când tragi un fișier, așa că uneltele merg în continuare dacă se pierde conexiunea după ce pagina s-a încărcat. Unele funcții mai rar folosite încarcă cod suplimentar prima dată când le folosești, cum ar fi motorul de fonturi pentru text în alfabete non-latine. Acela e cod care vine spre tine, nu fișierul tău care pleacă.

Limitele reale ale procesării în browser

Să faci treaba pe dispozitivul tău are costuri, iar o unealtă cinstită ar trebui să ți le spună.

  • Memoria. Tot fișierul stă în memoria filei, adesea în mai multe copii cât e procesat. O scanare de 200 MB poate avea nevoie de câteva ori pe atât. Browserele limitează memoria per filă, iar telefoanele o limitează cel mai tare.
  • Viteza. Treaba o face laptopul sau telefonul tău, nu un centru de date. Să transformi 400 de pagini în imagini sau să recomprimi fiecare poză dintr-o scanare lungă durează vizibil mai mult pe un dispozitiv mai vechi.
  • Bateria și căldura. O lucrare lungă pe telefon solicită procesorul din plin o vreme.
  • Lucrările grele. Unele sarcini sunt mult mai ușoare cu software de server, cum ar fi recunoașterea textului în arhive mari de scanări sau convertirea fișierelor Office complexe cu aspect exact. Multe unelte care altfel lucrează în browser trimit tocmai aceste lucrări la un server.

În practică, limita de mărime a unei unelte din browser este dispozitivul tău, nu un număr de pe o pagină de prețuri. Kopitiam nu are nicio limită de mărime a fișierului în cod, așa că un fișier foarte mare fie merge, fie rămâne fără memorie. De obicei trece dacă îl împarți mai întâi sau dacă folosești un browser pe calculator în loc de telefon.

Să zicem că ai o scanare de 40 MB pe care trebuie s-o micșorezi pentru email, pe o conexiune mobilă lentă. O unealtă pe server trebuie să încarce toți cei 40 MB înainte să poată începe, apoi descarci rezultatul, deci cea mai mare parte din așteptare ține de rețea. O unealtă în browser sare peste ambele transferuri, dar compresia o face chiar telefonul tău, ceea ce poate dura o vreme la o scanare lungă. Niciuna nu e mereu mai rapidă: depinde de conexiune și de dispozitiv.

Variante hibride și afirmații de citit cu atenție

Nu orice unealtă este pur una sau alta. Vei întâlni câteva tipare:

  • Mai mult local, puțin pe server. Treburile simple rulează în browser, iar convertirea sau recunoașterea textului se încarcă pe server. Caută o declarație pentru fiecare unealtă, nu una pentru tot site-ul.
  • Upload criptat. Fișierul este încărcat, dar criptat pe drum și în stocare. E mai bine decât nimic, dar serverul tot îl decriptează ca să lucreze cu el.
  • Local, cu salvare în cloud. Treaba se face local, dar rezultatul este stocat în contul tău ca să-l poți deschide mai târziu. Asta e o copie pe server, prin design.
  • Aplicații pentru calculator. Un program instalat lucrează tot pe dispozitivul tău, dar poate și el să trimită fișiere sau date de utilizare înapoi la producător. Politica lui de confidențialitate tot contează.

Cum verifici pe care o folosești

Deschide instrumentele pentru dezvoltatori ale browserului (F12 în majoritatea browserelor pe calculator), mergi la fila Rețea și trece un fișier de test prin unealtă. O unealtă pe server arată o cerere cam de mărimea fișierului tău care pleacă atunci când pornești. O unealtă în browser arată doar cereri mici, cum ar fi reclame sau semnale de analiză, și niciuna care crește odată cu fișierul tău. Aceeași lucrare făcută cu Wi-Fi-ul oprit este varianta rapidă a aceluiași test.

Pe care s-o alegi

Pentru contracte, fluturași de salariu, scrisori medicale și scanări de acte de identitate, varianta din browser este alegerea implicită mai bună: nu există nicio copie în altă parte care să fie scursă sau păstrată. Pentru o broșură publică sau un meniu, merge oricare. Când ai nevoie de ceva ce un browser nu face bine, cum ar fi recunoașterea textului într-o arhivă de 2.000 de pagini, o unealtă pe server de încredere, cu o politică de păstrare clară, este o alegere rezonabilă, folosită pentru acel fișier și nu din obișnuință.