איך זה עובד

הדפדפן מוריד את מנוע ה-PDF, ולא להפך. זה מה שקורה כשמשתמשים בכלי, וכך אפשר לבדוק את זה בעצמך.

בקצרה

Scissor PDF אף פעם לא מקבל את הקבצים שלך. כשפותחים כלי, הדפדפן מוריד את האתר ומנוע PDF. כשבוחרים קובץ, הוא נקרא לזיכרון של כרטיסיית הדפדפן, מעובד על ידי המנוע במעבד של המכשיר שלך, והתוצאה מוחזרת אליך כהורדה. סגירת הכרטיסייה מוחקת הכול.

מה רץ איפה

מנוע ה-PDF שממזג, מפצל, מסדר מחדש, מסובב, מכווץ, ממספר, מוסיף סימני מים, מצפין ומפענח קובצי PDF כתוב ב-Rust, בעזרת ספריית הקוד הפתוח lopdf, ומהודר ל-WebAssembly. ‏WebAssembly הוא פורמט מבודד שכל דפדפן מודרני מריץ במהירות קרובה לזו של תוכנה מקומית. הוא רץ ב-worker ברקע, כך שהדף נשאר רספונסיבי.

תצוגות מקדימות של עמודים והמרת PDF ל-JPG מתבצעות בעזרת PDF.js, מנוע התצוגה בקוד פתוח שמובנה ב-Firefox, וגם הוא רץ מקומית.

השרת רק מארח את קובצי האתר עבור כלי ה-PDF. אין בו נקודת העלאה למסמכים, כך שאין שם שום דבר שיכול לקבל מסמך. מערכת שירות לקוחות קטנה באותו דומיין מקבלת רק את מה שבוחרים לשלוח, כמו משוב או הרשמה לרשימת ההמתנה, וגם ספירות אנונימיות של צפיות בדפים.

לבדוק בעצמך

פותחים את כלי המפתחים של הדפדפן, עוברים ללשונית Network ומשתמשים באיזה כלי שרוצים. רואים את הקבצים של הדף עצמו נטענים, בקשות קטנות ואנונימיות של ספירת צפיות אל /_care/, ואף בקשה שנושאת את המסמך. אפשר גם להתנתק מהאינטרנט אחרי שהדף נטען: כל הכלים ממשיכים לעבוד.

האתר שולח גם מדיניות אבטחת תוכן (Content Security Policy) מחמירה, שמורה לדפדפן לחסום כל ניסיון של הדף ליצור קשר עם שרת אחר, כך שגם טעות בקוד שלנו לא יכולה לשלוח את הקבצים שלך למקום אחר.

עובד בלי אינטרנט, מותקן כמו אפליקציה

אחרי הביקור הראשון, service worker שומר את האתר ואת המנוע במטמון של הדפדפן, כך שהכלים נפתחים ועובדים גם בלי חיבור. ב-Chrome או ב-Edge בוחרים “התקנה” בשורת הכתובת. ב-Safari בוחרים “הוספה ל-Dock” (Mac) או “הוספה למסך הבית” (iPhone ו-iPad).

המגבלות של עיבוד מקומי

מכיוון שהעבודה מתבצעת במכשיר שלך, קבצים גדולים מאוד מוגבלים לפי הזיכרון שלו. כמה מאות מגה-בייט זה בסדר גמור במחשב נייד רגיל, וטלפונים מתמודדים עם מסמכים יומיומיים. המהירות תלויה במעבד שלך ולא בתור בשרת, ובפועל זה בדרך כלל מהיר יותר מהעלאה והורדה.