Pro รุ่น
ตัวปรับให้เหมาะสม
ภาพรวมโดยสังเขป
หัวข้อที่มีชื่อว่า “ภาพรวมโดยสังเขป”Optimizer วิเคราะห์ PDF เพื่อหาอ็อบเจกต์ซ้ำและศักยภาพในการบีบอัดภาพใหม่ จากนั้นรายงานการลดขนาดที่ประมาณการได้ สามระดับแลกเปลี่ยนระหว่างความเที่ยงตรงของเอาต์พุตกับขนาดไฟล์
การมีให้ใช้งานและการอนุญาต
หัวข้อที่มีชื่อว่า “การมีให้ใช้งานและการอนุญาต”ความสามารถนี้มาพร้อมกับ NextPDF Pro (nextpdf/pro) และเปิดใช้งานด้วย license envelope ระดับ Pro การนำไปใช้งานที่ไม่มีสิทธิ์ดังกล่าวจะไม่โหลดคลาสของความสามารถนี้ เปรียบเทียบรุ่นและขอรับสิทธิ์ใช้งาน
ไม่มีแฟล็กสิทธิ์ใช้งานแยกต่างหากรายฟีเจอร์ ระดับการปรับให้เหมาะที่สุด (lossless, balanced, aggressive) เป็นพารามิเตอร์ในขณะรันไทม์ ไม่ใช่สวิตช์สิทธิ์ใช้งาน
การติดตั้ง
หัวข้อที่มีชื่อว่า “การติดตั้ง”composer require nextpdf/pro:^3โค้ดอยู่ภายใต้เนมสเปซ NextPDF\Pro\Optimizer
ภาพรวมเชิงแนวคิด
หัวข้อที่มีชื่อว่า “ภาพรวมเชิงแนวคิด”PdfOptimizer ประสานงานตัวกำจัดอ็อบเจกต์ซ้ำและตัวบีบอัดภาพใหม่ เมื่อได้รับไบต์ PDF ดิบ มันจะหากลุ่มอ็อบเจกต์ซ้ำ (เมื่อระดับอนุญาต) วิเคราะห์ภาพ และประมาณการการบีบอัดสำหรับแต่ละภาพที่คุณภาพเป้าหมายของระดับนั้น มันรวบรวมผลการตรวจพบเข้าเป็น OptimizationResult ที่รายงานขนาดเดิม ขนาดที่ปรับให้เหมาะที่สุดที่ประมาณการได้ อ็อบเจกต์ที่ลบออก และจำนวนภาพก่อนและหลัง
OptimizationLevel กำหนดการแลกเปลี่ยน คือ lossless รักษาคุณภาพภาพและข้ามการกำจัดซ้ำเพื่อเอาต์พุตที่เสถียรในระดับไบต์ balanced กำจัดซ้ำและตั้งเป้าคุณภาพภาพ 75 เปอร์เซ็นต์ aggressive กำจัดซ้ำ ลดความละเอียด และตั้งเป้าคุณภาพ 50 เปอร์เซ็นต์
เหตุผลที่ทำงานเช่นนี้
หัวข้อที่มีชื่อว่า “เหตุผลที่ทำงานเช่นนี้”ตัวปรับให้เหมาะที่สุดจะวิเคราะห์มากกว่าจะเขียนใหม่ analyze() ประมาณการการประหยัดที่เป็นไปได้และคืนค่า OptimizationResult โดยไม่กลายพันธุ์อินพุต นั่นทำให้การประมวลผลไม่ทำลายข้อมูลและให้คุณตัดสินใจว่าจะนำไปใช้ผ่าน Writer หรือไม่ การนามธรรมของระดับเก็บการแลกเปลี่ยนไว้ในที่เดียว คือ lossless คืนค่า false จาก deduplicateStreams() เพื่อให้เอาต์พุตยังคงเหมือนกันในระดับไบต์ได้ ในขณะที่ balanced และ aggressive บีบอัดสตรีมภาพใหม่ที่เป้าคุณภาพต่ำกว่า การประหยัดที่ทำได้ขึ้นอยู่กับว่าเอกสารเข้ารหัสสตรีมและภาพไว้อย่างไรอยู่แล้ว โมดูลจึงรายงานค่าประมาณจากอ็อบเจกต์ที่มีอยู่จริงแทนที่จะเป็นตัวเลขพาดหัวคงที่ ที่มาเชิงการออกแบบ Streams and filters
สัญญาพฤติกรรม
หัวข้อที่มีชื่อว่า “สัญญาพฤติกรรม”analyze($pdfData)คืนค่าOptimizationResultไม่ได้กลายพันธุ์อินพุต- ระดับ lossless ข้ามการกำจัดสตรีมซ้ำเพื่อให้เอาต์พุตเสถียรในระดับไบต์ได้ ส่วน balanced และ aggressive เปิดใช้งานการกำจัดซ้ำ
- เป้าคุณภาพภาพคือ 100, 75 และ 50 เปอร์เซ็นต์สำหรับ lossless, balanced และ aggressive ตามลำดับ
- ขนาดที่ปรับให้เหมาะที่สุดที่ประมาณการได้ไม่เคยต่ำกว่าศูนย์และไม่เคยเกินขนาดเดิม
withLevel($level)คืนค่า optimizer ใหม่ที่ระดับที่ร้องขอ อินสแตนซ์ไม่ถูกกลายพันธุ์
ตัวอย่างโค้ด — เริ่มต้นอย่างรวดเร็ว
หัวข้อที่มีชื่อว่า “ตัวอย่างโค้ด — เริ่มต้นอย่างรวดเร็ว”ต่อไปนี้สะท้อน public API ที่จัดทำเอกสารไว้ repository ไม่ได้มาพร้อมตัวอย่างที่รันได้สำหรับโมดูลนี้
use NextPDF\Pro\Optimizer\PdfOptimizer;
$result = (new PdfOptimizer())->analyze($pdfBytes);ตัวอย่างโค้ด — การใช้งานจริง
หัวข้อที่มีชื่อว่า “ตัวอย่างโค้ด — การใช้งานจริง”use NextPDF\Pro\Optimizer\PdfOptimizer;use NextPDF\Pro\Optimizer\OptimizationLevel;
$optimizer = new PdfOptimizer(OptimizationLevel::Aggressive);$result = $optimizer->analyze($pdfBytes);
$savings = $result->originalSize > 0 ? (1 - $result->optimizedSize / $result->originalSize) * 100 : 0.0;กรณีขอบและข้อควรระวัง
หัวข้อที่มีชื่อว่า “กรณีขอบและข้อควรระวัง”analyze()ประมาณการศักยภาพ ให้จับคู่กับโมดูล Writer เพื่อสร้างเอกสารที่ปรับให้เหมาะที่สุด- ระดับ lossless จงใจให้การลดขนาดเพียงเล็กน้อยเพราะรักษาคุณภาพและข้ามการกำจัดซ้ำ
- จำนวนภาพหลังสะท้อนภาพที่ถูกลบผ่านการกำจัดซ้ำ ไม่ใช่ภาพที่ถูกตัดทิ้ง
ประสิทธิภาพ
หัวข้อที่มีชื่อว่า “ประสิทธิภาพ”การวิเคราะห์เป็นเชิงเส้นตามขนาดอินพุตบวกกับต้นทุนการสแกนโครงสร้างอ็อบเจกต์และภาพ ระดับควบคุมว่าการประมาณการกำจัดซ้ำและการบีบอัดใหม่เข้มข้นเพียงใด ไม่มีตัวเลขการลดขนาดคงที่ที่เผยแพร่ ผลลัพธ์ขึ้นอยู่กับเอกสารทั้งหมด วัดผลด้วยเอกสารที่เป็นตัวแทน
หมายเหตุด้านความปลอดภัย
หัวข้อที่มีชื่อว่า “หมายเหตุด้านความปลอดภัย”ถือว่าอินพุตไม่น่าเชื่อถือ การวิเคราะห์ยังคงอ่านอย่างเดียวและไม่ดำเนินการเนื้อหาที่ฝังไว้ โมดูลนี้ไม่บันทึกเนื้อหาเอกสาร
การเป็นไปตามข้อกำหนด
หัวข้อที่มีชื่อว่า “การเป็นไปตามข้อกำหนด”การปรับให้เหมาะที่สุดทำงานบนแบบจำลองอ็อบเจกต์และภาพของ PDF ที่กำหนดไว้ใน ISO 32000-2 ซอร์สอธิบายข้อที่เกี่ยวข้องไว้ คลังข้อมูล RAG ไม่พร้อมใช้งานในเวลาเขียน หน้านี้จึงไม่อ้างตัวระบุข้อภายนอกและจำกัดคำแถลงการเป็นไปตามข้อกำหนดไว้เฉพาะพฤติกรรมที่ตรวจสอบโดยการทดสอบของโมดูล
หมายเหตุขอบเขตของ Enterprise
หัวข้อที่มีชื่อว่า “หมายเหตุขอบเขตของ Enterprise”Enterprise ไม่เปลี่ยนพฤติกรรมของ Optimizer Enterprise เพิ่มฟีเจอร์การปฏิบัติตามข้อกำหนดและการเก็บถาวรระดับสูงกว่าซึ่งจัดทำเอกสารแยกต่างหาก ฟีเจอร์เหล่านั้นไม่จำเป็นสำหรับการวิเคราะห์ศักยภาพการปรับให้เหมาะที่สุด
ทางเลือกสำรองของ Core
หัวข้อที่มีชื่อว่า “ทางเลือกสำรองของ Core”หากไม่มี Pro ให้ใช้การปรับให้เหมาะที่สุดพื้นฐานของ NextPDF Core การกำจัดอ็อบเจกต์ซ้ำและการวิเคราะห์การบีบอัดภาพใหม่ที่ปรับได้เป็นส่วนเพิ่มของ Pro
ขอบเขตการเผยแพร่
หัวข้อที่มีชื่อว่า “ขอบเขตการเผยแพร่”หน้านี้จัดทำเอกสารเฉพาะพฤติกรรมที่สังเกตได้จากภายนอกและพื้นผิว public API ที่รองรับเท่านั้น พาธเนมสเปซภายใน คลาสตัวช่วย ตารางกลไก ชื่อไฟล์ runbook และคำนำหน้า ticket อยู่นอกขอบเขต