เอกสาร · PDF ชุดเครื่องมือ
วิธีที่แท็บเบราว์เซอร์อ่านและเขียน PDF ใหม่โดยไม่ต้องอัปโหลด
· มันทำงานอย่างไร
pdf ความเป็นส่วนตัว พนักงานเว็บ
"เรียกใช้ในเบราว์เซอร์ของคุณ" เป็นการกล่าวอ้างที่คุณสามารถเข้าใจและทดสอบได้ โพสต์นี้ติดตาม PDF จากตัวเลือกไฟล์ไปยังหน่วยความจำ ผ่านทาง Web Worker และส่งออกเป็นการดาวน์โหลด โดยอธิบายว่าแต่ละขั้นตอนทำอะไรและเหตุใดจึงไม่เกี่ยวข้องกับเซิร์ฟเวอร์
เครื่องมือเลือกไฟล์ไม่ใช่การอัปโหลด — ช่วงเวลาแห่งความสับสนเมื่อเลือกไฟล์ดูเหมือนจะเป็นการส่งไฟล์
ตัวเลือกไฟล์มีลักษณะคล้ายกับตัวควบคุมการอัพโหลดเนื่องจากหลายไซต์ส่งไฟล์ที่เลือกทันที การเลือกเพียงอย่างเดียวไม่จำเป็นต้องมีการโอน ในชุดเครื่องมือนี้ เบราว์เซอร์อนุญาตให้เพจเข้าถึงออบเจ็กต์ไฟล์ที่ผู้ใช้เลือก และคอนโทรลเลอร์จะตรวจสอบประเภทและขนาดของมันก่อนที่จะอ่าน PDF ไบต์ลงในหน่วยความจำแท็บ
ขอบเขตสามารถสังเกตได้: การเลือกเอกสารจะเปลี่ยนสถานะอินเทอร์เฟซภายในเครื่อง แสดงชื่อ ขนาด และจำนวนหน้า และเปิดใช้งานการดำเนินการ มันไม่ได้โพสต์ไฟล์ไปยังจุดสิ้นสุดของแอปพลิเคชัน ขีดจำกัดของ PDF คือ 50 MB และขีดจำกัดของรูปภาพคือ 30 MB ซึ่งบังคับใช้ก่อนที่การประมวลผลที่มีราคาแพงจะเริ่มขึ้น
จากดิสก์สู่หน่วยความจำ - วิธีที่ไฟล์ API มอบอาร์เรย์ไบต์ให้กับเพจที่ JavaScript ของไซต์สามารถอ่านได้
สำหรับ PDF นั้น `arrayBuffer()` จัดหาไบต์และ `Uint8Array` จะเก็บไว้สำหรับการเรียกของผู้ปฏิบัติงาน ชุดรูปภาพได้รับการจัดการที่แตกต่างกันเพื่อหลีกเลี่ยงการอ่านครั้งที่สองโดยไม่จำเป็น: ออบเจ็กต์ไฟล์ดิบจะถูกเก็บไว้จนกว่าจะเตรียมอิมเมจของเบราว์เซอร์ นี่คือการทำงานของหน่วยความจำภายในบริบทของเบราว์เซอร์ปัจจุบัน ไม่ใช่ที่จัดเก็บข้อมูลระยะไกลหรือประวัติบัญชี
PDF แรกได้รับการตรวจสอบผ่านการเรียก `info` ในตัวผู้ปฏิบัติงาน เพื่อให้เอกสารขนาดใหญ่ไม่ปิดกั้นการวาดภาพในขณะที่กำหนดจำนวนหน้า แท็บสามารถเก็บไบต์ของแหล่งที่มา สถานะตัวแยกวิเคราะห์ เนื้อหาที่เตรียมไว้ และเอาต์พุตสุดท้ายไว้ด้วยกันได้ชั่วคราว การล้างหรือการปิดเรื่องเนื่องจากการประมวลผลในเครื่องยังคงใช้ทรัพยากรอุปกรณ์จริง
การแปลง PDF ส่วนใหญ่ใช้ toolkit worker PDF การแยกวิเคราะห์และการเข้ารหัส Canvas มีการแยกแยกกัน
ผสาน แยก แยก ลบ เรียงลำดับใหม่ หมุน ลายน้ำ และรูปภาพสุดท้ายไปยัง-PDF การเรียกแอสเซมบลี pdf-lib ผ่านทางผู้ปฏิบัติงานโมดูลเฉพาะ ข้อความความคืบหน้าและการยกเลิกข้ามขอบเขตดังกล่าว ในขณะที่งานคำนวณอยู่ห่างจากเธรดอินเทอร์เฟซหลัก การล้างไฟล์จะทำให้ผู้ปฏิบัติงานยุติการทำงานแทนที่จะรอการรวบรวมขยะ
PDF-to-image เป็นข้อยกเว้นที่สำคัญ pdf.js ใช้ตัวทำงานของตัวเองในการแยกวิเคราะห์ แต่การเข้ารหัส Canvas ของเบราว์เซอร์จะต้องยังคงอยู่ในเธรดหลัก ตัวเรนเดอร์จะแสดงผลระหว่างเพจต่างๆ เพื่อให้การควบคุมและความคืบหน้าสามารถทาสีใหม่ได้ การบอกว่าทุกการแปลงทำงานทั้งหมดในผู้ปฏิบัติงานคนเดียวจะขัดแย้งกับการใช้งานที่จัดส่ง
การแยกวิเคราะห์และการเขียนเป็นขั้นตอนในเครื่อง แต่การเตรียมรูปภาพและการเข้ารหัสแคนวาสสามารถทำงานบนเธรดหลักได้
ไปป์ไลน์ทั่วไปจะถูกอ่าน ตีความ แปลง และเข้ารหัส แต่การดำเนินการแต่ละครั้งจะเลือกเครื่องจักรที่เป็นรูปธรรมของตัวเอง การดำเนินการคัดลอกหน้าขอให้ pdf-lib สร้างเอกสารใหม่ การหมุนเปลี่ยนข้อมูลเมตาของหน้าเพิ่มเติม ลายน้ำผนวกภาพวาด PDF-to-image เรนเดอร์หน้า ในขณะที่ image-to-PDF เตรียมภาพที่ถอดรหัสโดยเบราว์เซอร์ก่อนที่ผู้ปฏิบัติงานจะประกอบ
ความแตกต่างเหล่านั้นส่งผลต่อความซื่อสัตย์ การคัดลอกหน้าจะเก็บเนื้อหาที่เลือกได้ แสดงผลเป็น PNG หรือ JPEG เปลี่ยนหน้าเป็นพิกเซลและทำให้เลเยอร์ข้อความหายไป รูปภาพที่ไม่ใช่ PNG/JPEG อาจถูกถอดรหัสและเข้ารหัสใหม่เป็น PNG ก่อนการประกอบ PDF “Local” อธิบายถึงการเคลื่อนไหวของข้อมูล ไม่ใช่อัลกอริธึมการแปลงสากลเพียงตัวเดียว
การดาวน์โหลดเป็นวัตถุในเครื่อง - วิธีที่ Blob และวัตถุ URL ให้ไฟล์ที่ไม่เคยมีอยู่บนเซิร์ฟเวอร์ใด ๆ แก่คุณ
การดำเนินการแต่ละครั้งจะส่งคืนไบต์หรือ ZIP ที่อินเทอร์เฟซล้อมรอบใน Blob ด้วยประเภทสื่อที่เหมาะสม การดำเนินการผลลัพธ์จะเรียกตัวช่วย `downloadBlob` ที่แชร์ ซึ่งสร้างการดาวน์โหลดเบราว์เซอร์แทนที่จะนำทางไปยังไฟล์เซิร์ฟเวอร์ สิ่งประดิษฐ์ที่สร้างขึ้นมีอยู่ในหน่วยความจำก่อนที่ผู้ใช้จะบันทึกลงในที่เก็บข้อมูลอุปกรณ์ปกติ
ภาพขนาดย่อของผู้จัดงานยังใช้ URL ของออบเจ็กต์ Blob แต่วงจรการใช้งานมีความชัดเจน: URL เก่าจะถูกเพิกถอนก่อนที่จะโหลดใหม่และทั้งหมดจะถูกเพิกถอนเมื่อทำลายหรือล้าง ความแตกต่างดังกล่าวขัดขวางการเรียกร้องความเป็นส่วนตัวในท้องถิ่นจากการซ่อนหน่วยความจำรั่ว เมื่อดาวน์โหลดแล้ว ไฟล์จะเป็นไปตามกฎการสำรองข้อมูลและการแชร์อุปกรณ์ทั่วไป
เหตุใดหน่วยความจำของอุปกรณ์จึงมีขีดจำกัด — ต้นฉบับ โครงสร้างที่แยกวิเคราะห์ และสำเนาที่เขียนใหม่ทั้งหมดอยู่ใน RAM พร้อมกัน
งานในพื้นที่ถูกผูกมัดโดย RAM และนโยบายของเบราว์เซอร์ เช่นเดียวกับตัวพิมพ์ใหญ่อินพุตที่ชัดเจน PDF สามารถมีอยู่พร้อมกันเป็นไบต์ต้นทาง โมเดลออบเจ็กต์ที่แยกวิเคราะห์ บัฟเฟอร์ของผู้ปฏิบัติงานที่ถ่ายโอน การแสดงตัวอย่าง และเอาต์พุตแบบอนุกรม หน้าแรสเตอร์จะเพิ่มผืนผ้าใบขนาดใหญ่ ดังนั้นตัวเรนเดอร์จึงวัดงบประมาณพิกเซลและอาจลดขนาดก่อนการจัดสรร
โทรศัพท์อาจประสบปัญหาเร็วกว่าเดสก์ท็อปแม้จะต่ำกว่า 50 MB เนื่องจากขนาดไฟล์ที่บีบอัดแทบไม่มีผลอะไรกับภาพหน้าที่ถอดรหัสเลย ปิดแท็บที่ไม่เกี่ยวข้อง ประมวลผลหน้าน้อยลง หรือใช้อุปกรณ์ขนาดใหญ่สำหรับงานที่มีความต้องการสูง ฮาร์ดแคปยังคงอยู่ 50 MB ต่อ PDF และ 30 MB ต่อภาพ หน่วยความจำไม่ใช่ข้ออ้างที่จะอ้างว่าไม่มีขีดจำกัดที่แน่นอน
ผลิตภัณฑ์ ToolAcre อื่นๆ อาจใช้เครือข่าย การวิเคราะห์การผลิตที่ยินยอมก็แยกจากกันเช่นกัน
พื้นที่เก็บข้อมูลระบุว่าผลิตภัณฑ์ ToolAcre อีกสองรายการติดต่อกับเครือข่ายโดยการออกแบบ ดังนั้นพฤติกรรมท้องถิ่นจึงต้องได้รับการตรวจสอบตามผลิตภัณฑ์ แทนที่จะทำให้ทั่วทั้งไซต์ รหัสการดำเนินการ PDF ไม่มีเอกสารปลายทาง และการทดสอบการแยกอัตโนมัติจะตรวจสอบค่าคงที่ระหว่างการประมวลผล
การวิเคราะห์ทั่วทั้งไซต์สามารถทำงานได้บนโฮสต์ที่ใช้งานจริงตามรูปแบบบัญญัติหลังจากได้รับความยินยอมเท่านั้น รายการที่อนุญาตของเหตุการณ์ ToolAcre ไม่รวมชื่อไฟล์ เนื้อหา ข้อความที่วาง URL และขนาดไฟล์ที่แน่นอน ในขณะที่สคริปต์ของ Google ยังคงเป็นโค้ดของบุคคลที่สามตามที่อธิบายไว้ในนโยบายความเป็นส่วนตัว คำขอสินทรัพย์คงที่หรือการวิเคราะห์แตกต่างจากการอัปโหลดเอกสาร
Takeaway — ทุกขั้นตอนเกิดขึ้นบนอุปกรณ์ของคุณ และหน้าของ PDF Toolkit และแผงเครือข่ายช่วยให้คุณยืนยันได้
มองเห็นวงจรชีวิตทั้งหมดได้: เลือกไฟล์ ตรวจสอบและอ่าน แปลงภายในเครื่องด้วยผู้ปฏิบัติงานหรือเส้นทางการเรนเดอร์ที่เหมาะสม รวมเอาต์พุตไว้ใน Blob ดาวน์โหลด จากนั้นล้างบัฟเฟอร์และ URL ของออบเจ็กต์ ไม่จำเป็นต้องมีแอปพลิเคชันเซิร์ฟเวอร์ในการดำเนินการเพจเหล่านั้น
ถือว่า "ในเบราว์เซอร์" เป็นสถาปัตยกรรมที่คุณสามารถตรวจสอบได้แทนที่จะเป็นสโลแกน ดูคำขอ อ่านหมายเหตุเฉพาะการดำเนินการ และใช้ล้างไฟล์และเพิ่มหน่วยความจำเมื่อเสร็จสิ้น การควบคุมดังกล่าวจะเผยแพร่อิมเมจตัวจัดระเบียบ ลดการอ้างอิง และยุติการทำงานของผู้ปฏิบัติงาน ซึ่งจะช่วยลดแรงกดดันด้านหน่วยความจำและอายุการใช้งานของเนื้อหาเอกสารที่ละเอียดอ่อนในแท็บ ดาวน์โหลดก่อน ตรวจสอบไฟล์ที่บันทึกไว้ จากนั้นจึงล้างข้อมูล การประมวลผลในเครื่องมีเจตนาไม่ให้ทางเลือกระยะไกลสำหรับผลลัพธ์ที่ถูกละทิ้งเร็วเกินไป