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

Enterprise รุ่น

Document E-Filing — เอกสารอ้างอิงเชิงลึก

  • EFilingOptimizer เตรียม PDF สำหรับการยื่นต่อศาลแบบอิเล็กทรอนิกส์ในรอบเดียวที่มีลำดับตายตัว ได้แก่ sanitize, linearize, size-split
  • EFilingProfile เข้ารหัสข้อจำกัดตามเขตอำนาจศาล แฟกทอรีในตัวครอบคลุม US PACER, EU e-Justice และ Taiwan Judicial Yuan
  • SizeAwareSplitter บังคับขีดจำกัดไบต์ต่อส่วนด้วยการแบ่งซ้ำแบบตรวจสอบแล้วแก้ไข
  • ผลลัพธ์เป็น delivery artifact ต้องไม่กลับเข้าสู่ไปป์ไลน์การลงลายเซ็นหรือการเก็บถาวร
  • โมดูลนี้ไม่ทำการดำเนินการเชิงการเข้ารหัสลับใด ๆ และไม่มีการเรียกเครือข่ายขาออก

ความสามารถนี้มาพร้อมกับ NextPDF Enterprise (nextpdf/enterprise) และเปิดใช้งานด้วย license envelope ระดับ Enterprise การติดตั้งที่ไม่มีสิทธิ์นั้นจะไม่โหลดคลาสของความสามารถนี้ Compare editions and get a license

ขอบเขตแพ็กเกจ nextpdf/enterprise จำกัดสิทธิ์พื้นผิวนี้ ไม่มีรหัสความสามารถต่อฟีเจอร์แยกต่างหาก ไม่มีขั้น Core หรือ Pro ใดที่ให้ตัวปรับให้เหมาะสำหรับ e-filing

Terminal window
composer require nextpdf/enterprise:^3
สัญลักษณ์พารามิเตอร์พฤติกรรมเริ่มต้นคืนค่าโยนหรือล้มเหลวด้วยหมายเหตุ
EFilingOptimizer::optimize()string $pdfData, ?EFilingProfile $profile = nullโปรไฟล์เริ่มต้นเป็น EFilingProfile::pacer() รัน sanitize, linearize, size-split ตามลำดับตายตัวEFilingResultInvalidArgumentException จากขั้นตอนการแบ่งเมื่ออินพุตที่เกินขีดจำกัดไม่ใช่ PDF ที่ถูกต้อง ความล้มเหลวของ sanitization และ linearization จะลดระดับเป็นคำเตือนผลลัพธ์เป็น delivery artifact
EFilingProfile::__construct()$name, $maxFileSizeBytes = 26_214_400, $flattenForms = true, $removeJavaScript = true, $imageQuality = 75, $linearize = true, $compressObjectStreams = trueโปรไฟล์เขตอำนาจศาลแบบ immutableEFilingProfileไม่โยนข้อยกเว้นขีดจำกัดแบบกำหนดเองสำหรับพอร์ทัลที่ไม่มีแฟกทอรีในตัว
EFilingProfile::pacer()ไม่มีขีดจำกัด 25 MiB คุณภาพภาพ 75EFilingProfileไม่โยนข้อยกเว้นUS PACER
EFilingProfile::euJustice()ไม่มีขีดจำกัด 10 MiB คุณภาพภาพ 70EFilingProfileไม่โยนข้อยกเว้นEU e-Justice Portal
EFilingProfile::taiwan()ไม่มีขีดจำกัด 10 MiB คุณภาพภาพ 70EFilingProfileไม่โยนข้อยกเว้นTaiwan Judicial Yuan
SizeAwareSplitter::splitByMaxSize()string $pdfData, int $maxBytesส่วนเดียวเมื่ออินพุตพอดี มิฉะนั้นประมาณ ตรวจสอบ แบ่งซ้ำlist<EFilingSegment>InvalidArgumentException เมื่ออินพุตที่เกินขีดจำกัดไม่มีส่วนหัว %PDFอินพุตที่ต่ำกว่าขีดจำกัดจะคืนเป็นส่วนเดียวโดยไม่ตรวจสอบ
EFilingResult::isSplit()ไม่มีtrue เมื่อมีมากกว่าหนึ่งส่วนboolไม่โยนข้อยกเว้น
EFilingResult::segmentCount()ไม่มีจำนวนส่วนทั้งหมดintไม่โยนข้อยกเว้น
EFilingResult::compressionRatio()ไม่มีoptimizedTotalSize / originalSizefloatไม่โยนข้อยกเว้น 0.0 สำหรับอินพุตเดิมที่ว่างเปล่ายิ่งต่ำยิ่งดี
EFilingSegment$pdfData, $pageRange, $sizeBytes, $segmentIndexส่วนผลลัพธ์แบบ immutableออบเจ็กต์ค่าไม่โยนข้อยกเว้นสตริงช่วงหน้า เช่น 1-25 หรือ all
public function optimize(string $pdfData, ?EFilingProfile $profile = null): EFilingResult
public function __construct(
public string $name,
public int $maxFileSizeBytes = 26_214_400,
public bool $flattenForms = true,
public bool $removeJavaScript = true,
public int $imageQuality = 75,
public bool $linearize = true,
public bool $compressObjectStreams = true,
) {}
public static function pacer(): self
public static function euJustice(): self
public static function taiwan(): self
public function splitByMaxSize(string $pdfData, int $maxBytes): array
public function __construct(
public array $segments,
public int $originalSize,
public int $optimizedTotalSize,
public array $optimizations = [],
public array $warnings = [],
) {}
public function isSplit(): bool
public function segmentCount(): int
public function compressionRatio(): float

EFilingOptimizer::optimize() รันไปป์ไลน์ที่มีลำดับตายตัวกับไบต์อินพุต ขั้นที่หนึ่งลบเนื้อหาที่ทำงานได้เมื่อมีการตั้ง removeJavaScript โดยมอบหมายให้เอนจิน content-disarm-and-reconstruction ด้วยนโยบายเฉพาะสำหรับการยื่น ได้แก่ JavaScript, named JavaScript, launch action, การส่งฟอร์ม และ data-import action จะถูกลบ ส่วน URI action จะถูกเก็บไว้ (allowUriActions) เพราะการยื่นอาจมีลิงก์ที่ถูกต้องตามกฎหมาย และ incremental update จะถูก flatten ให้เป็นรีวิชันเดียว (flattenIncrementalUpdates) ขั้นที่สอง linearize ไบต์ที่ sanitize แล้วผ่าน Core NextPDF\Writer\Linearizer เมื่อมีการตั้ง linearize ขั้นที่สามบังคับ maxFileSizeBytes ของโปรไฟล์ผ่าน SizeAwareSplitter

ตัวแบ่งประมาณจำนวนหน้าต่อส่วนจากขนาดหน้าเฉลี่ย ทำการแบ่ง แล้วตรวจสอบทุกส่วนที่สร้างขึ้นเทียบกับขีดจำกัด ส่วนใดที่เกินขีดจำกัดและยังครอบคลุมมากกว่าหนึ่งหน้าจะถูกแบ่งซ้ำแบบเวียนเกิด โดยลดช่วงหน้าของตัวเองลงครึ่งหนึ่งในแต่ละรอบ จนกว่าทุกส่วนย่อยจะพอดีหรือเหลือหน้าเดียว ความลึกของการแบ่งซ้ำที่มีขอบเขตช่วยป้องกันการไม่ลู่เข้าที่ผิดปกติ ดัชนีผลลัพธ์ถูกปรับให้เป็นปกติใหม่เพื่อให้ต่อเนื่องและเริ่มจากศูนย์

optimize() ใช้ฟิลด์ของโปรไฟล์สามฟิลด์ ได้แก่ maxFileSizeBytes, removeJavaScript และ linearize ส่วนฟิลด์ flattenForms, imageQuality และ compressObjectStreams เป็นข้อจำกัดของโปรไฟล์ที่ประกาศไว้ซึ่ง optimize() ไม่ได้ดำเนินการใน 3.1.0

ผลลัพธ์ของ e-filing เป็น delivery artifact ไม่ใช่สถานะของวงจรชีวิตเอกสาร PDF ที่ปรับให้เหมาะแล้วหรือถูกแบ่งแล้วถือเป็นขั้นสุดท้ายสำหรับการส่ง และต้องไม่กลับเข้าสู่ไปป์ไลน์การลงลายเซ็นหรือการเก็บถาวรอีก การประมวลผลซ้ำจะทำลายห่วงโซ่ hash และความถูกต้องสมบูรณ์ในเชิงพยานหลักฐาน

โมดูลนี้เตรียม รูปแบบสำหรับการยื่นต่อ e-court / หน่วยงานภาครัฐตามที่กำหนดค่าไว้ มันไม่รับประกันการยอมรับโดยศาล หน่วยทะเบียน คณะตุลาการ หรือพอร์ทัลการยื่นใด ๆ ขีดจำกัดของโปรไฟล์ในตัวเข้ารหัสข้อจำกัดที่เผยแพร่กันโดยทั่วไปไว้เพื่อความสะดวก ไม่ใช่ฟีดสดจากแต่ละพอร์ทัล กฎของพอร์ทัลแตกต่างกันตามเขตอำนาจศาลและเปลี่ยนแปลงได้ การตรวจสอบกฎเหล่านั้นเทียบกับกฎปัจจุบันของหน่วยทะเบียนปลายทางเป็นความรับผิดชอบของผู้ยื่น

การประมวลผลทำในกระบวนการและในเครื่อง การส่งไปยังศาล หน่วยทะเบียน หรือพอร์ทัลการยื่นอยู่ภายนอกโมดูลนี้

  • อินพุตที่เท่ากับหรือต่ำกว่าขีดจำกัด คืนส่วนเดียวที่มีช่วงหน้า all ขั้นตอนการแบ่งไม่เปลี่ยนแปลงไบต์
  • การปฏิเสธของ sanitization (เช่น อินพุตที่แจงไม่ได้) จะบันทึกคำเตือน CDR sanitization rejected: <reason> และไปป์ไลน์ดำเนินต่อด้วยไบต์เดิม
  • การ sanitize ที่ไม่พบภัยคุกคาม ไบต์ยังคงถูกแทนที่ด้วย PDF ที่สร้างใหม่ และรายการปรับให้เหมาะจะบันทึกการผ่านที่สะอาด
  • ความล้มเหลวของ linearization จะบันทึกคำเตือน Linearization skipped: <message> และไปป์ไลน์ดำเนินต่อด้วยไบต์ที่ไม่ได้ linearize
  • หน้าเดียวที่เกินขีดจำกัด แบ่งต่อไม่ได้จริง ๆ จะถูกคืนโดยไม่เปลี่ยนแปลงเป็นส่วนเดียวที่เกินขีดจำกัด กรณีนี้ไม่มีการบันทึกคำเตือน ควรเทียบ sizeBytes ของแต่ละส่วนกับขีดจำกัดของโปรไฟล์ก่อนการยื่น
  • เมื่อถึงขีดจำกัดความลึกของการแบ่งซ้ำ ส่วนที่เกินขีดจำกัดจะผ่านไปโดยไม่เปลี่ยนแปลงแทนที่จะวนซ้ำ
  • compressionRatio() คืน 0.0 เมื่ออินพุตเดิมว่างเปล่า
  • โมดูลนี้ไม่ทำการดำเนินการเชิงการเข้ารหัสลับใด ๆ โหมด FIPS จึงไม่นำมาใช้
พฤติกรรมอ้างอิงสถานะ
การจัดระเบียบผลลัพธ์แบบ linearized (ข้อมูลหน้าแรกที่ต้นไฟล์)ISO 32000-2:2020 Annex F / Annex Gสร้างเทียบกับ
ความหมายของความสัมพันธ์ associated-fileISO 19005-3:2012 §6.7.8ปฏิบัติตามในที่ที่ carrier นำมาใช้
ข้อกำหนดของ carrier แบบ embedded-fileISO 19005-4:2020 Annex Aปฏิบัติตามในที่ที่ carrier นำมาใช้

การ linearize มุ่งไปที่การจัดระเบียบแบบ Linearized PDF ซึ่งวางข้อมูลทั้งหมดที่จำเป็นต่อการแสดงหน้าแรกไว้ที่ต้นไฟล์เพื่อการเข้าถึงแบบเพิ่มทีละส่วนอย่างมีประสิทธิภาพ

แถวเหล่านี้อธิบายความสามารถที่สร้างเทียบกับข้อกำหนดที่อ้างถึง การรองรับไม่ใช่ความสอดคล้อง และความสอดคล้องไม่ใช่การรับรอง NextPDF ไม่ถือการรับรองใด ๆ ไม่มีคำแถลงใดในหน้านี้รับประกันการยอมรับโดยพอร์ทัลการยื่นใด ๆ

หน้านี้มี export_control_class: legal-review-required NextPDF ไม่ให้คำแนะนำทางกฎหมาย กฎการยื่นแตกต่างกันตามเขตอำนาจศาลและเปลี่ยนแปลงได้ การปฏิบัติตามกฎเหล่านั้นเป็นความรับผิดชอบของผู้ยื่น ปรึกษาที่ปรึกษากฎหมายและแนวทางปัจจุบันของหน่วยทะเบียนปลายทาง

use NextPDF\Enterprise\Document\EFiling\EFilingOptimizer;
use NextPDF\Enterprise\Document\EFiling\EFilingProfile;
$optimizer = new EFilingOptimizer();
$result = $optimizer->optimize($pdfBytes, EFilingProfile::euJustice());
foreach ($result->segments as $segment) {
// Persist $segment->pdfData; confirm $segment->sizeBytes fits the cap.
}
  • ตรวจสอบ $result->warnings ก่อนการยื่น การ sanitization ที่ถูกปฏิเสธหรือการ linearization ที่ถูกข้ามจะปรากฏที่นั่น ไม่ใช่เป็นข้อยกเว้น
  • ลงลายเซ็นและเก็บถาวรเอกสารต้นฉบับก่อน แล้วจึงปรับสำเนาให้เหมาะสำหรับการส่ง อย่าลงลายเซ็นซ้ำ ประทับซ้ำ หรือเก็บถาวรส่วนที่ปรับให้เหมาะแล้ว
  • ตรวจสอบ sizeBytes ของทุกส่วนเทียบกับขีดจำกัดของโปรไฟล์ หน้าที่เกินขีดจำกัดและแบ่งต่อไม่ได้จะไปถึงผลลัพธ์อย่างเงียบ ๆ
  • สำหรับพอร์ทัลที่ไม่มีแฟกทอรีในตัว ให้สร้าง EFilingProfile แบบกำหนดเองด้วยขีดจำกัดที่พอร์ทัลเผยแพร่

หน้านี้บันทึกเฉพาะพฤติกรรมที่สังเกตได้จากภายนอกและพื้นผิว API สาธารณะที่รองรับเท่านั้น internal namespace paths, คลาสตัวช่วย, ตารางกลไก, ชื่อไฟล์ runbook และ ticket prefixes อยู่นอกขอบเขต