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

Pro รุ่น

Legal — การอ้างอิงเชิงลึก

  • สร้างตราประทับเลข Bates แบบเรียงลำดับเป็นส่วนย่อยสตรีมเนื้อหา PDF รายหน้า
  • ประเภทสาธารณะสามชนิด: BatesNumberConfig (การกำหนดค่าแบบไม่เปลี่ยนแปลง) BatesNumberer (เอนจิน) BatesPosition (enum ตำแหน่งหกกรณี)
  • แต่ละส่วนย่อยเป็นอิสระในตัว มีการบันทึกและกู้คืนสถานะกราฟิก ดังนั้นการต่อท้ายจึงไม่รบกวนเนื้อหาหน้าที่มีอยู่
  • ผลลัพธ์เป็นแบบกำหนดได้แน่นอน: ส่วนย่อยเป็นฟังก์ชันบริสุทธิ์ของการกำหนดค่า ข้อความตราประทับ และขนาดหน้า
  • โมดูลไม่ยก exception ใด ๆ อินพุตที่อยู่นอกช่วงจะลดระดับตามกฎสำรองที่บันทึกไว้

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

ไม่มีแฟล็กใบอนุญาตรายฟีเจอร์ นี่เป็นความสามารถของรุ่น Pro

Terminal window
composer require nextpdf/pro:^3
สัญลักษณ์พารามิเตอร์พฤติกรรมปริยายคืนค่ายก exception หรือล้มเหลวด้วยหมายเหตุ
BatesNumberConfig::__constructstring $prefix = '', string $suffix = '', int $startNumber = 1, int $padding = 5, BatesPosition $position = BatesPosition::BottomRight, float $fontSize = 9.0, string $fontFamily = 'Courier', float $opacity = 1.0, bool $useLayer = true, string $layerName = 'Bates Numbers', float $inset = 15.0การกำหนดค่ารูปลักษณ์และการกำกับเลขแบบไม่เปลี่ยนแปลงBatesNumberConfigคุณสมบัติทั้งสิบเอ็ดรายการเป็น public และ readonly
BatesNumberConfig::formatNumberint $pageIndex (นับจาก 0)prefix + เติมศูนย์ (startNumber + pageIndex) + suffixstringเลขที่กว้างกว่า padding จะไม่ถูกตัดทอน
BatesNumberConfig::getRangeint $pageCountตราประทับที่จัดรูปแบบแล้วตัวแรกและตัวสุดท้ายของชุดarray{first: string, last: string}สมมติว่า pageCount >= 1; ค่าเท่ากับ 0 จะจัดรูปแบบดัชนีหน้า -1
BatesNumberer::__constructBatesNumberConfig $configผูกการกำหนดค่าBatesNumbererคลาสนี้เป็น final และ readonly
BatesNumberer::generateint $pageCount, array $pageSizes, string $prefix = '', int $startFrom = 1เส้นทางเร็วแบบ static ด้วยรูปลักษณ์ปริยายlist<string>คำต่อท้าย ตำแหน่ง ฟอนต์ ความทึบ และเลเยอร์คงอยู่ที่ค่าปริยาย
BatesNumberer::generateStreamsint $pageCount, list<array{width: float, height: float}> $pageSizesหนึ่งส่วนย่อยที่เป็นอิสระในตัวต่อหนึ่งหน้าlist<string>ไม่ยก exception; รายการขนาดที่ขาดหายจะสำรองเป็น A4 แนวตั้งจำนวนส่วนย่อยเท่ากับ pageCount; รายการขนาดส่วนเกินจะถูกละเว้น
BatesNumberer::buildPageStreamstring $text, float $pageWidth, float $pageHeightสร้างส่วนย่อยตราประทับของหน้าหนึ่งหน้าstringห่อด้วย q/Q; ข้อความตราประทับถูก escape สำหรับไวยากรณ์สตริงตัวอักษร
BatesNumberer::getConfigคืนค่าการกำหนดค่าที่ผูกไว้BatesNumberConfig
BatesPositionกรณี enum BottomLeft, BottomCenter, BottomRight, TopLeft, TopCenter, TopRightคำศัพท์ตำแหน่งที่รองรับด้วยสตริงค่ารองรับเป็น kebab-case (เช่น bottom-right)
BatesPosition::coordinatesfloat $pageWidth, float $pageHeight, float $textWidth, float $inset = 15.0X/Y สำหรับเส้นฐานของตราประทับในปริภูมิเนทีฟของ PDFarray{x: float, y: float}จุดกำเนิดอยู่ที่มุมล่างซ้าย; แถวบนวางเส้นฐานห่างจากขอบบน inset
public function __construct(
public string $prefix = '',
public string $suffix = '',
public int $startNumber = 1,
public int $padding = 5,
public BatesPosition $position = BatesPosition::BottomRight,
public float $fontSize = 9.0,
public string $fontFamily = 'Courier',
public float $opacity = 1.0,
public bool $useLayer = true,
public string $layerName = 'Bates Numbers',
public float $inset = 15.0,
) {}
public static function generate(
int $pageCount,
array $pageSizes,
string $prefix = '',
int $startFrom = 1,
): array
public function generateStreams(int $pageCount, array $pageSizes): array
public function buildPageStream(string $text, float $pageWidth, float $pageHeight): string
public function coordinates(
float $pageWidth,
float $pageHeight,
float $textWidth,
float $inset = 15.0,
): array

BatesNumberConfig::formatNumber คำนวณ startNumber + pageIndex เติมศูนย์ทางซ้ายให้เลขครบ padding หลัก และห่อด้วย prefix และ suffix getRange คืนค่าตราประทับที่จัดรูปแบบแล้วตัวแรกและตัวสุดท้ายสำหรับจำนวนหน้าหนึ่งค่า ใช้เพื่อเชื่อมการกำกับเลขต่อเนื่องข้ามชุดเอกสาร

แต่ละส่วนย่อยประกอบด้วย ตามลำดับ: การบันทึกสถานะกราฟิก (q) โอเปอเรเตอร์สีเติม จุดเริ่มต้น marked-content เสริม บล็อกข้อความที่วางตำแหน่งและแสดงตราประทับ จุดสิ้นสุด marked-content เสริม และการกู้คืน (Q) พิกัดและขนาดฟอนต์ถูกทำให้เป็นอนุกรมด้วยทศนิยมหกตำแหน่ง ดังนั้นอินพุตที่เหมือนกันจึงให้ไบต์ที่เหมือนกัน ข้อความตราประทับจะ escape \, (, และ ) ก่อนเข้าสู่สตริงตัวอักษร

บล็อกข้อความเลือกชื่อทรัพยากรฟอนต์คงที่ /BatesFont พจนานุกรมทรัพยากรของหน้าที่ฝังต้องแมปชื่อนั้นกับฟอนต์ที่ตรงกับ fontFamily ที่กำหนดค่าไว้ และตระกูลฟอนต์ต้องแปลงค่าได้ในรีจิสทรีฟอนต์ การสร้างส่วนย่อยเองไม่เคยเรียกดูรีจิสทรี

BatesPosition::coordinates คำนวณเส้นฐานของตราประทับในปริภูมิเนทีฟของ PDF; จุดกำเนิดอยู่ที่มุมล่างซ้าย การจัดวางกึ่งกลางและขวาจะลบความกว้างข้อความโดยประมาณ: ความยาวไบต์คูณ 0.6 คูณขนาดฟอนต์ ซึ่งเป็นการประมาณแบบ monospace ฟอนต์สัดส่วนและข้อความหลายไบต์จะทำให้การประมาณนั้นคลาดเคลื่อน การจัดวางซ้ายไม่ขึ้นกับค่านั้น

เมื่อเปิดใช้ useLayer (ค่าปริยาย) ส่วนย่อยจะคร่อมข้อความไว้ระหว่างโอเปอเรเตอร์ marked-content BDC และ EMC ชื่อ marked-content มีรูปแบบ /Lyr_<name> ที่ได้มาจาก layerName โดยแทนอักขระที่ไม่ใช่ตัวอักษรด้วยขีดล่าง การคร่อมนี้เป็นระดับส่วนย่อยเท่านั้น: การลงทะเบียนกลุ่มเนื้อหาเสริมที่สอดคล้องกันในเอกสาร — ขั้นตอนที่ทำให้เลเยอร์สลับเปิดปิดได้ในโปรแกรมดู — เป็นหน้าที่ของตัวเขียนที่ฝัง

opacity ที่ต่ำกว่า 1.0 จะถูกส่งออกเป็นสีเติมโทนเทาที่จางลง ตราประทับที่ทึบเต็มที่จะแสดงเป็นสีดำ

เอนจินใช้การกำกับเลข Bates ตามที่กำหนดค่าไว้อย่างเป๊ะ มันไม่ยืนยันว่าเอกสารที่กำกับเลขแล้วจะรับฟังได้ในศาลหรือมีผลทางกฎหมาย รูปแบบการกำกับเลข การเก็บรักษา และการจัดการพยานหลักฐานยังคงเป็นความรับผิดชอบของลูกค้า ปรึกษาทีมกฎหมายและทีมการปฏิบัติตามข้อกำหนดของคุณเพื่อความเพียงพอตามกระบวนการ

  • generateStreams ไม่ยก exception เมื่อ pageSizes ไม่ตรงกัน รายการที่ขาดหายจะสำรองเป็น A4 แนวตั้ง 595.276 คูณ 841.890 จุด; รายการส่วนเกินจะถูกละเว้น
  • จำนวนส่วนย่อยเท่ากับ pageCount เสมอ
  • เลขที่กว้างกว่า padding จะไม่ถูกตัดทอน; ข้อความตราประทับจะยาวขึ้นเท่านั้น
  • getRange สมมติว่า pageCount >= 1 ค่าเท่ากับ 0 จะจัดรูปแบบดัชนีหน้า -1 นั่นคือ startNumber - 1
  • ความทึบเป็นการทำโทนเทาให้จางลง ไม่ใช่ความโปร่งใสแบบ ExtGState; เนื้อหาที่ซ้อนอยู่ใต้ตราประทับจะไม่ถูกผสมสี
  • ไบต์ตราประทับอื่นนอกจาก \, (, และ ) จะผ่านไปโดยไม่ถูกเข้ารหัส ความถูกต้องของการเข้ารหัสสำหรับข้อความที่ไม่ใช่ ASCII ขึ้นกับฟอนต์ที่ผูกไว้
  • เครื่องหมาย Bates เป็นเนื้อหาทับซ้อน ไม่ได้ปิดบัง ลบ หรือเข้ารหัสสิ่งใดบนหน้า
  • โมดูลไม่ดำเนินการเข้ารหัสลับใด ๆ; โหมด FIPS ไม่เปลี่ยนพฤติกรรมของมัน
พฤติกรรมการอ้างอิงสถานะ
การคร่อมเลเยอร์ผ่านโอเปอเรเตอร์ marked-content BDC/EMCISO 32000-2:2020 §8.11.3.2บางส่วน — ส่วนย่อยส่งการคร่อมออกมา; การลงทะเบียนกลุ่มเนื้อหาเสริมเป็นขั้นตอนของตัวเขียนที่ฝัง

แถวเหล่านี้บันทึกข้อกำหนดที่โมดูลถูกสร้างขึ้นให้เป็นไปตาม ไม่ใช่การรับรอง; NextPDF ไม่ถือใบรับรองความสอดคล้องใด ๆ ตารางนี้ยังไม่ใช่คำแถลงเรื่องความมีผลทางกฎหมายหรือความเพียงพอของพยานหลักฐาน

  • ส่วนย่อยเป็นค่าสตริงบริสุทธิ์ ทดสอบได้ด้วยการเปรียบเทียบไบต์โดยตรง; ไม่ต้องมีบริบทเอกสาร
  • buildPageStream เป็น public และทดสอบหน่วยได้แบบแยกเดี่ยว: ส่งข้อความที่จัดรูปแบบไว้ล่วงหน้าและมิติหน้าที่ระบุชัดเจน
  • สำหรับการกำกับเลขต่อเนื่องข้ามชุดเอกสาร ให้ตั้ง startNumber จากรอบก่อนหน้าและบันทึกผลลัพธ์ getRange ไว้ในบันทึกชุดเอกสารของคุณ
  • ชื่อเลเยอร์ถูกทำให้สะอาดเหลือเฉพาะอักขระตัวอักษร ควรใช้ชื่อเลเยอร์แบบ ASCII เพื่อให้ชื่อ marked-content อ่านได้ในเครื่องมือตรวจสอบ

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