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

ย้ายมาใช้ NextPDF

NextPDF เป็นเอนจิน Portable Document Format (PDF) 2.0 สำหรับ PHP หากคุณสร้าง PDF ด้วยไลบรารีอื่นอยู่แล้ว คู่มือการย้ายระบบจะแมป application programming interface (API) ของไลบรารีนั้นไปยัง NextPDF และบันทึกความแตกต่างเชิงพฤติกรรมที่คุณจะพบ ดัชนีข้ามรีโพนี้บันทึกว่าคู่มือใดย้ายคุณมาจากไลบรารีใด รีโพใดเป็นเจ้าของแต่ละคู่มือ และโมเดลร่วมที่ทุกคู่มือใช้

เนื่องจากหน้านี้เป็นดัชนี จึงไม่กล่าวอ้างเชิงพฤติกรรมใดๆเกี่ยวกับคู่มือใด คู่มือแต่ละฉบับเป็นของรีโพของตนเอง และตัวรวบรวมจะเผยแพร่คู่มือเข้ามายังไซต์นี้ การกล่าวอ้างเชิงพฤติกรรมทั้งหมดอยู่ในตัวคู่มือเอง โดยมีการทดสอบในรีโพหรือข้อกำหนด ISO 32000-2 / Cascading Style Sheets Working Group (CSS WG) ที่ตรึงไว้รองรับ ไม่ใช่ในหน้านี้

คู่มือการย้ายระบบของ NextPDF ทุกฉบับใช้โมเดลที่ตรงไปตรงมาแบบเดียวกัน อ่านแต่ละคู่มือโดยคำนึงถึงโมเดลนั้น:

  • เข้ากันได้ แต่ไม่เหมือนกันในระดับไบต์ NextPDF และไลบรารีที่คุณกำลังเลิกใช้เป็นการนำไปใช้งานที่เป็นอิสระต่อกัน เอกสารที่ย้ายแล้วจะรักษาเจตนาเชิงฟังก์ชัน ไม่ใช่ความเหมือนกันในระดับพิกเซลหรือไบต์ ไม่มีคู่มือใดกล่าวอ้างว่าเป็นการแทนที่แบบ drop-in หรือเข้ากันได้ 100%
  • ความครอบคลุมเป็นจำนวนที่วัดได้ ไม่ใช่การยืนยัน เมื่อคู่มือระบุตัวเลขความครอบคลุม เช่น ตัวเลขของอะแดปเตอร์ TCPDF ตัวเลขนั้นเป็นเมตริกความครบถ้วนเชิงฟังก์ชันที่ได้จากเมทริกซ์ในรีโพ ในความหมายของ ISO/IEC 25023 ข้อ 43 ตัวเลขนี้เป็นจำนวนเมธอดที่ครอบคลุมซึ่งวัดได้ ไม่ใช่การรับประกันแบบครอบคลุมทั้งหมด
  • แต่ละคู่มือระบุความแตกต่างเชิงพฤติกรรมอย่างเปิดเผย ทุกคู่มือมีตารางความแตกต่างที่ชัดเจนและส่วน “unsupported / no direct equivalent” ความแตกต่างเหล่านี้เป็นคุณสมบัติของเอนจินที่บันทึกไว้ ไม่ใช่ข้อบกพร่อง
  • การเปลี่ยนเรนเดอเรอร์ต้องมีการทบทวนใหม่ การย้ายระบบทำให้โค้ดเปลี่ยนแปลงและต้องสร้างเบสไลน์ผลลัพธ์ใหม่ แต่ละคู่มืออธิบายวิธีทดสอบการย้ายระบบ การยอมรับเชิงภาพเป็นรายเอกสาร และยังคงเป็นความรับผิดชอบของผู้ผสานรวม

คู่มือแบ่งออกเป็นสองรูปแบบ แต่ละรูปแบบบอกคุณว่าโค้ดต้องเปลี่ยนแปลงมากน้อยเพียงใด

  • การย้ายระบบแบบเขียน API ใหม่ ไม่มีชิมความเข้ากันได้ ทุกจุดที่เรียกใช้จะถูกเขียนใหม่โดยใช้การแมปคำกริยาและการแมปตัวเลือกของคู่มือ การย้ายระบบจากไลบรารี Hypertext Markup Language (HTML) เป็น PDF (dompdf, mpdf) ใช้รูปแบบนี้ โดยมุ่งไปยัง Html pipeline ของ NextPDF โดยตรง
  • การย้ายระบบแบบ drop-in แล้วค่อยย้าย มาพร้อมอะแดปเตอร์ที่เข้ากันได้กับซอร์สเกือบทั้งหมด การย้ายขั้นแรกจึงเป็นเพียงการสลับ dependency เล็กน้อย จากนั้นคุณจะค่อยๆย้ายจุดที่เรียกใช้ไปยัง API สมัยใหม่ แล้วจึงเลิกใช้อะแดปเตอร์ การย้ายระบบ TCPDF ใช้รูปแบบนี้ผ่าน nextpdf/compat-legacy ซึ่งเป็นอะแดปเตอร์

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

จากคู่มือรูปแบบรีโพที่เป็นเจ้าของหน้า
DompdfDompdf → Html pipeline ของ NextPDFเขียน API ใหม่nextpdf (core)คู่มือ Dompdf
mPDFmPDF → NextPDF coreเขียน API ใหม่nextpdf (core)คู่มือ mPDF
FPDFFPDF → NextPDF coreเขียน API ใหม่nextpdf (core)คู่มือ FPDF
TCPDF 6.xTCPDF → NextPDF ผ่านอะแดปเตอร์ compat-legacyDrop-in แล้วค่อยย้ายnextpdf-compat-tcpdf รีโพ แพ็กเกจ nextpdf/compat-legacyคู่มือ TCPDF

คู่มือ dompdf, mpdf และ fpdf อยู่ในรีโพ core เพราะมุ่งไปยัง API ของเอนจิน core และมี examples/ ของ core รองรับ คู่มือ tcpdf-compat อยู่ในรีโพ compat-tcpdf เพราะแพ็กเกจ nextpdf/compat-legacy เป็นเจ้าของพื้นผิวเชิงพฤติกรรมของ TCPDF และการทดสอบอะแดปเตอร์ที่รองรับคู่มือนี้ ดัชนีนี้เป็นของรีโพ docs โดยธรรมชาติ เพราะครอบคลุมหลายรีโพ และไม่กล่าวอ้างเชิงพฤติกรรมใดๆเกี่ยวกับคู่มือฉบับใดฉบับหนึ่ง

  • Dompdf → NextPDF — สำหรับโค้ดเบสฝั่งเซิร์ฟเวอร์ที่ใช้ dompdf/dompdf คู่มือนี้แมป loadHtml/render/output และคีย์ Options ไปยัง Html pipeline ของ NextPDF และส่งต่อความคาดหวังด้านฟีเจอร์ CSS ไปยังเมทริกซ์การรองรับ CSS แบบ Verified-only ไม่มีชิมคลาส Dompdf คุณต้องเขียนทุกจุดที่เรียกใช้ใหม่
  • mPDF → NextPDF — สำหรับโค้ดเบสที่ใช้ mpdf/mpdf คู่มือนี้แมป WriteHTML/Output/AddPage และอาร์เรย์การตั้งค่าของคอนสตรักเตอร์ไปยัง API ของ core โดยมีความแตกต่างด้านการจัดการฟอนต์หนึ่งประการ คือ NextPDF แก้ไขฟอนต์ผ่านไดเรกทอรีฟอนต์เดียวร่วมกับการจับคู่ CSS และทำ subset เสมอ ไม่มีชิมคลาส Mpdf
  • FPDF → NextPDF — สำหรับโค้ดเบสที่ใช้ API การวาดของ FPDF โดยตรง คู่มือนี้แมป AddPage/SetFont/Cell/MultiCell/Write/Text/Image/Output และโมเดลเคอร์เซอร์แบบกำหนดตำแหน่งด้วยตนเองไปยัง API ของ core และบันทึกความแตกต่างด้านหน่วย ไม่มีชิมคลาส FPDF
  • TCPDF → NextPDF (compat-legacy) — สำหรับโค้ดเบส TCPDF 6.x ที่ต้องการให้การเปลี่ยนแปลงขั้นแรกมีน้อยที่สุด ติดตั้งอะแดปเตอร์ ตรวจสอบพื้นผิวจริงของคุณด้วยโหมด strict เทียบกับเมทริกซ์ความครอบคลุมในรีโพ ย้ายจุดที่เรียกใช้ออกจากอะแดปเตอร์ จากนั้นเพิ่มโครงสร้างแท็กแบบ PDF/Universal Accessibility (PDF/UA-2) ทับลงไป ซึ่งเป็นความสามารถที่ TCPDF ไม่เคยมี อะแดปเตอร์เป็นโครงนั่งร้าน ไม่ใช่ปลายทาง และไม่ใช่การรับประกันแบบ drop-in
  • เมทริกซ์การรองรับ CSS — แหล่งอ้างอิงแบบ Verified-only สำหรับความคาดหวังด้านฟีเจอร์ CSS ในคู่มือ dompdf และ mpdf
  • ตำราการผสานรวม — ดัชนีข้ามรีโพสำหรับแพ็กเกจการผสานรวมในระบบนิเวศ ตำรานี้ครอบคลุมประเด็นอีกด้านหนึ่ง คือการเชื่อมต่อเข้ากับเอนจิน ไม่ใช่การย้ายมายังเอนจิน