ข้ามไปยังเนื้อหา
getnextpdf.com

Pro รุ่น

ตัวปรับให้เหมาะสม

Optimizer วิเคราะห์ PDF เพื่อหาอ็อบเจกต์ซ้ำและศักยภาพในการบีบอัดภาพใหม่ จากนั้นรายงานการลดขนาดที่ประมาณการได้ สามระดับแลกเปลี่ยนระหว่างความเที่ยงตรงของเอาต์พุตกับขนาดไฟล์

ความสามารถนี้มาพร้อมกับ NextPDF Pro (nextpdf/pro) และเปิดใช้งานด้วย license envelope ระดับ Pro การนำไปใช้งานที่ไม่มีสิทธิ์ดังกล่าวจะไม่โหลดคลาสของความสามารถนี้ เปรียบเทียบรุ่นและขอรับสิทธิ์ใช้งาน

ไม่มีแฟล็กสิทธิ์ใช้งานแยกต่างหากรายฟีเจอร์ ระดับการปรับให้เหมาะที่สุด (lossless, balanced, aggressive) เป็นพารามิเตอร์ในขณะรันไทม์ ไม่ใช่สวิตช์สิทธิ์ใช้งาน

Terminal window
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 ไม่เปลี่ยนพฤติกรรมของ Optimizer Enterprise เพิ่มฟีเจอร์การปฏิบัติตามข้อกำหนดและการเก็บถาวรระดับสูงกว่าซึ่งจัดทำเอกสารแยกต่างหาก ฟีเจอร์เหล่านั้นไม่จำเป็นสำหรับการวิเคราะห์ศักยภาพการปรับให้เหมาะที่สุด

หากไม่มี Pro ให้ใช้การปรับให้เหมาะที่สุดพื้นฐานของ NextPDF Core การกำจัดอ็อบเจกต์ซ้ำและการวิเคราะห์การบีบอัดภาพใหม่ที่ปรับได้เป็นส่วนเพิ่มของ Pro

หน้านี้จัดทำเอกสารเฉพาะพฤติกรรมที่สังเกตได้จากภายนอกและพื้นผิว public API ที่รองรับเท่านั้น พาธเนมสเปซภายใน คลาสตัวช่วย ตารางกลไก ชื่อไฟล์ runbook และคำนำหน้า ticket อยู่นอกขอบเขต