ข้ามไปยังเนื้อหา
LeedyBox
สนับสนุน

วิธีแยก PDF และดึงหน้าที่ต้องการออกมา

การแยก PDF คือการคัดลอกหน้าที่คุณเลือกไปไว้ในไฟล์ PDF ใหม่ โดยไฟล์ต้นฉบับยังคงเหมือนเดิม คู่มือนี้อธิบายสองโหมดของเครื่องมือ LeedyBox วิธีเขียนช่วงหน้า เหตุผลที่ไฟล์ที่แยกออกมาอาจรวมกันแล้วใหญ่กว่าต้นฉบับ และสิ่งที่ควรตรวจสอบก่อนส่งไฟล์

ควรแยก PDF เมื่อใด

  • ส่งเฉพาะส่วนที่เกี่ยวข้อง เช่น สองหน้าที่ต้องลงนามจากสัญญาความยาว 48 หน้า
  • แบบฟอร์มอัปโหลดที่จำกัดขนาดไฟล์หรือจำนวนหน้า
  • แยกเอกสารที่สแกนรวดเดียว ใบเสร็จ 30 ใบที่ป้อนเข้าเครื่องสแกนในครั้งเดียวจะรวมอยู่ในไฟล์เดียว หากใบเสร็จแต่ละใบมีหน้าเดียว โหมด "แยกทุกหน้า" จะให้ไฟล์หนึ่งไฟล์ต่อใบเสร็จหนึ่งใบ
  • เตรียมหน้าสำหรับเครื่องมืออื่น เครื่องมือ PDF เป็น JPG จะแปลงทุกหน้ารวมไว้ใน ZIP ไฟล์เดียว หรือให้บันทึกทีละหน้าโดยคลิกทีละครั้ง การดึงหน้า 5–12 ออกจากรายงาน 80 หน้าก่อนจึงได้ ZIP ที่มีภาพ 8 ภาพแทนที่จะเป็น 80 ภาพ (ดูการแปลงหน้า PDF เป็น JPG หรือ PNG)

หากต้องการแก้ลำดับหน้าหรือลบเพียงไม่กี่หน้า ให้ดูวิธีเรียงลำดับ หมุน และลบหน้า PDFแทน

สองโหมด ผลลัพธ์สามแบบ

ไฟล์ที่คุณดาวน์โหลดได้ขึ้นอยู่กับแท็บที่ใช้และจำนวนหน้าที่เลือก ตัวอย่างเช่น สำหรับไฟล์ report.pdf

โหมดผลลัพธ์ชื่อไฟล์
แยกช่วงหน้าที่กำหนดเอง (หน้าเดียว)PDF หนึ่งหน้าreport_page_7.pdf
แยกช่วงหน้าที่กำหนดเอง (หลายหน้า)PDF ไฟล์เดียวที่มีทุกหน้าที่เลือก เรียงตามลำดับเดิมreport_extracted.pdf
แยกทุกหน้าPDF หนึ่งไฟล์ต่อหนึ่งหน้า รวมอยู่ในไฟล์ ZIPreport_all_pages.zip ซึ่งมี report_page_1.pdf report_page_2.pdf …

ดังนั้น 1-3, 5, 8-10 จะได้ไฟล์เดียวที่มี 7 หน้า ไม่ใช่สามไฟล์ หากต้องการให้แต่ละส่วนเป็นไฟล์แยกกัน ให้ดึงออกมาทีละส่วน เอกสารจะยังโหลดค้างอยู่หลังดาวน์โหลด คุณจึงพิมพ์ 1-3 แล้วดาวน์โหลด จากนั้นพิมพ์ 5 แล้วดาวน์โหลดอีกครั้งได้ การดึงหลายหน้าทุกครั้งจะได้ชื่อไฟล์ report_extracted.pdf เหมือนกัน และเบราว์เซอร์มักเติมตัวเลขต่อท้ายชื่อที่ซ้ำกัน จึงควรเปลี่ยนชื่อไฟล์ไปทีละไฟล์ระหว่างทำ

ขั้นตอนการแยก PDF

  1. เปิดเครื่องมือแยก PDF แล้วเลือก PDF หนึ่งไฟล์ที่ เลือกไฟล์ PDF หรือลากและวางที่นี่ หากลากวางหลายไฟล์ เครื่องมือจะใช้เฉพาะไฟล์แรก
  2. รอให้ภาพขนาดย่อของทุกหน้าแสดงขึ้นมา จากนั้นชื่อไฟล์ ขนาด และจำนวนหน้าจะปรากฏเหนือแท็บ โดยทุกหน้าจะถูกเลือกไว้ตั้งแต่แรก
  3. ในแท็บ แยกช่วงหน้าที่กำหนดเอง ให้พิมพ์ในช่อง ช่วงหน้า (เช่น 1-3, 5, 8-10) หรือคลิกภาพขนาดย่อ ช่องนี้จะมีช่วงหน้าทั้งหมดอยู่แล้วตั้งแต่แรก เช่น 1-40 จึงควรล้างช่องหรือคลิก ยกเลิกการเลือกทั้งหมด ก่อน ปุ่ม เลือกทั้งหมด จะเลือกทุกหน้ากลับคืนมา และตัวนับจะแสดงข้อความ เช่น "เลือก 7 จาก 40 หน้า"
  4. หรือสลับไปที่แท็บ แยกทุกหน้า ซึ่งจะไม่สนใจหน้าที่เลือกไว้
  5. คลิก แยก PDF และดาวน์โหลด ส่วนปุ่ม เปลี่ยนไฟล์ ใช้สำหรับเริ่มต้นใหม่

เมื่อคลิกภาพขนาดย่อ ช่องช่วงหน้าจะถูกเขียนใหม่ให้กระชับ เช่น หน้า 2, 3, 4 และ 9 จะกลายเป็น 2-4, 9 ภาพขนาดย่อแสดงที่ความละเอียดต่ำ จึงควรตรวจเนื้อหาในไฟล์ที่ดาวน์โหลดมาอีกครั้ง

การเขียนช่วงหน้า

ตัวเลขคือตำแหน่งของหน้าในไฟล์ โดยเริ่มจาก 1 ตามที่แสดงบนป้ายใต้ภาพขนาดย่อ

  • คั่นแต่ละรายการด้วยจุลภาค และใช้ขีดกลางสำหรับช่วงหน้า จะเว้นวรรครอบเครื่องหมายเหล่านี้หรือไม่ก็ได้
  • ลำดับและการระบุซ้ำไม่มีผล 8-10, 1-3, 2 จะได้หน้า 1, 2, 3, 8, 9, 10 ตามลำดับเดิม
  • 10-8 จะถูกอ่านเป็นหน้า 8 ถึง 10 และ 38-45 ในไฟล์ 40 หน้าจะหยุดที่หน้า 40 ส่วนตัวเลขเดี่ยวที่เกินหน้าสุดท้าย หรือเลข 0 จะถูกละเว้น
  • ช่วงแบบเปิด เช่น 5- หรือ -3 จะถูกละเว้น ให้เขียนเป็น 5-40
  • ใช้ได้เฉพาะขีดกลางธรรมดา (-) เท่านั้น เครื่องหมาย en dash ที่คัดลอกมาจากโปรแกรมประมวลผลคำ เช่น 1–3 จะเลือกเฉพาะหน้า 1 เช่นเดียวกับ 1 3 และ 1;3

เลขหน้าที่พิมพ์อยู่บนหน้ามักไม่ตรงกับตำแหน่งในไฟล์ หากรายงานมีหน้าปกและหน้าส่วนนำอีกสี่หน้า (i–iv) ก่อนหน้า 1 หน้าที่พิมพ์เลข 12 จะเป็นหน้าที่ 17 ในไฟล์ (1 + 4 + 12) ควรตรวจดูภาพขนาดย่อที่ถูกไฮไลต์ก่อนดาวน์โหลด

ทำไมไฟล์ที่แยกออกมารวมกันจึงอาจใหญ่กว่าต้นฉบับ

ฟอนต์และภาพที่ใช้ในหลายหน้า เช่น ฟอนต์ที่ฝังไว้หรือโลโก้ในส่วนหัวของหน้า มักถูกเก็บไว้เพียงครั้งเดียวในไฟล์ต้นฉบับและใช้ร่วมกันทุกหน้า แต่ไฟล์ใหม่แต่ละไฟล์ต้องมีสำเนาของทรัพยากรทุกอย่างที่หน้าในไฟล์นั้นอ้างถึง pdf-lib คัดลอกทรัพยากรเหล่านี้ไปตามที่เป็นอยู่ โดยไม่ตัดฟอนต์ให้เหลือเฉพาะตัวอักษรที่อยู่บนหน้าที่คัดลอก และไม่ตัดรายการที่หน้าระบุไว้แต่ไม่ได้ใช้ทิ้ง หน้าเดียวจึงอาจพกซับเซ็ตฟอนต์ที่สร้างไว้สำหรับทั้งเอกสารไปด้วย และในไฟล์ที่ทุกหน้าใช้รายการทรัพยากรชุดเดียวกัน หน้าเดียวก็อาจพกฟอนต์และภาพทุกรายการในชุดนั้นไปด้วย

ในการทดสอบของเรา เราสร้างรายงานข้อความขนาด A4 จำนวน 40 หน้าด้วย ReportLab ของ Python (ฝังฟอนต์ DejaVu สองตัวแบบซับเซ็ต และมีโลโก้ JPEG ขนาด 900 × 240 พิกเซลในทุกหน้า) แล้วแยกไฟล์ใน Node.js ด้วย pdf-lib 1.17.1 ซึ่งเป็นเวอร์ชันเดียวกับที่เครื่องมือของ LeedyBox โหลด โดยเรียกใช้ฟังก์ชันแบบเดียวกัน

ผลลัพธ์ขนาด
ต้นฉบับ 40 หน้าประมาณ 151 KB
PDF หน้าเดียวแต่ละไฟล์ประมาณ 86 KB
ทั้ง 40 หน้าเป็นไฟล์แยกกัน (ZIP)ประมาณ 3.4 MB หรือราว 23 เท่าของต้นฉบับ
1-3, 5, 8-10 เป็น PDF 7 หน้าไฟล์เดียวประมาณ 94 KB

ไฟล์ที่มีลักษณะเหมือนเอกสารสแกนให้ผลต่างออกไป PDF ขนาด A4 จำนวน 10 หน้าที่สร้างด้วย Pillow จากภาพ JPEG โทนสีเทาขนาด 1,240 × 1,754 พิกเซล (150 dpi) มีขนาดประมาณ 2.6 MB และไฟล์หน้าเดียวทั้ง 10 ไฟล์รวมกันก็มีขนาดประมาณ 2.6 MB เช่นกัน เพราะไม่มีสิ่งใดที่ใช้ร่วมกัน ตัวเลขของไฟล์คุณจะแตกต่างออกไป แต่โดยสรุปคือ

  • การลดจำนวนหน้าทำให้ไฟล์สแกนเล็กลงตามสัดส่วนโดยประมาณ (ไฟล์ 7 หน้าที่เราดึงจากไฟล์สแกนมีขนาดประมาณ 1.8 MB) ส่วนเอกสารข้อความจะยังมีขนาดพื้นฐานจากฟอนต์และภาพที่ใช้ร่วมกัน
  • หลายหน้าในไฟล์เดียวมักใช้พื้นที่น้อยกว่าหน้าชุดเดียวกันที่แยกเป็นหลายไฟล์
  • เครื่องมือเก็บ PDF ไว้ใน ZIP โดยไม่บีบอัด ไฟล์ ZIP จึงมีขนาดใกล้เคียงกับผลรวมของไฟล์ที่อยู่ข้างใน

หากไฟล์ยังใหญ่เกินไป ให้ดูวิธีบีบอัด PDF

สิ่งที่ไฟล์ใหม่คงไว้และสิ่งที่หายไป

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

  • บุ๊กมาร์กและป้ายกำกับหน้า (การกำหนดเลขหน้าเอง เช่น i, ii, iii)
  • ชื่อเรื่อง ผู้เขียน และคุณสมบัติอื่นของเอกสาร ไฟล์ใหม่จะระบุ pdf-lib เป็นผู้ผลิต (Producer) และใช้เวลาที่แยกไฟล์เป็นวันที่สร้าง
  • แท็กสำหรับการเข้าถึง (accessibility tags) ซึ่งเป็นโครงสร้างที่โปรแกรมอ่านหน้าจอใช้ระบุหัวข้อและลำดับการอ่าน แม้ต้นฉบับจะมีแท็ก ไฟล์ใหม่ก็จะไม่มี
  • ลิงก์ภายใน เช่น รายการในสารบัญ อาจพาไปที่ไหนไม่ได้ หากหน้าปลายทางไม่ได้ถูกดึงออกมาด้วย หรือหากลิงก์นั้นใช้ปลายทางแบบมีชื่อ (named destination) ซึ่งเก็บไว้ในระดับเอกสาร ส่วนช่องฟอร์มอาจกรอกไม่ได้อีกต่อไป เพราะฟอร์มที่ช่องเหล่านั้นสังกัดอยู่ก็ถูกกำหนดไว้ในระดับเอกสารเช่นกัน
  • ลายเซ็นดิจิทัลจะไม่ถูกต้องอีกต่อไป เพราะลายเซ็นครอบคลุมทุกไบต์ของไฟล์ต้นฉบับตามที่เป็นอยู่ ลายเซ็นที่ยังปรากฏบนหน้าที่คัดลอกจึงไม่ได้พิสูจน์อะไรเกี่ยวกับไฟล์ใหม่ ควรเก็บต้นฉบับที่ลงนามไว้

การแยก PDF ไม่ใช่วิธีที่ปลอดภัยในการนำหน้าที่มีข้อมูลอ่อนไหวออก

ในการทดสอบด้วย pdf-lib 1.17.1 เราดึงหน้า 1 ออกจาก PDF 6 หน้า ซึ่งหน้า 1 มีลิงก์ไปยังหน้า 5 ไฟล์ใหม่แสดงเพียงหน้าเดียว และโปรแกรมดึงข้อความพบเฉพาะข้อความของหน้า 1 แต่เนื้อหาของหน้า 5 ยังถูกเก็บอยู่ในไฟล์ในรูปของข้อมูลที่ไม่ได้ใช้ ซึ่งใครก็ตามที่ตรวจดูโครงสร้างภายในของไฟล์ก็อ่านได้ สารบัญและการอ้างอิงข้ามหน้าอาจดึงหน้าอื่นติดมาด้วยในลักษณะนี้ เนื้อหาที่ซ่อนอยู่บนหน้าที่คัดลอก เช่น ข้อความใต้กล่องสีดำหรือข้อความที่อยู่นอกพื้นที่ที่มองเห็นได้ ก็จะถูกคัดลอกไปด้วย สำหรับเอกสารลับ ให้ใช้ฟังก์ชันปกปิดข้อมูล (redaction) หรือล้างข้อมูลแฝง (sanitize) ของโปรแกรมแก้ไข PDF หรือส่งภาพของหน้าที่สร้างด้วยเครื่องมือPDF เป็น JPG ภาพจะเก็บไว้เพียงหน้าตาของหน้าตามที่วาดออกมา ไม่มีชั้นข้อความหรือออบเจ็กต์ที่ซ่อนอยู่ แต่ข้อความในภาพก็จะเลือกหรือค้นหาไม่ได้อีก

ปัญหาที่พบบ่อยและวิธีแก้

  • "… เป็นไฟล์ PDF ที่เบราว์เซอร์อ่านไม่ได้หรือไฟล์เสียหาย" ไฟล์อาจเสียหายหรือต้องใช้รหัสผ่านในการเปิด ซึ่งเครื่องมือนี้ไม่มีช่องให้ใส่รหัสผ่าน หากคุณได้รับอนุญาต ให้บันทึกสำเนาที่ไม่มีการป้องกันจากแอปพลิเคชันที่ใส่รหัสผ่านได้
  • ภาพขนาดย่อแสดงขึ้นมา แต่การแยกล้มเหลวพร้อมข้อความเกี่ยวกับการเข้ารหัสลับ (encrypted) PDF นี้เปิดได้โดยไม่ต้องใช้รหัสผ่าน แต่ถูกเข้ารหัสลับไว้ ซึ่งเป็นวิธีจัดเก็บการตั้งค่าสิทธิ์ เช่น การจำกัดการแก้ไขหรือการพิมพ์ ภาพตัวอย่างวาดด้วย PDF.js แต่การแยกไฟล์ทำโดย pdf-lib ซึ่งจะปฏิเสธไฟล์ที่เข้ารหัสลับเมื่อถูกเรียกใช้แบบที่เครื่องมือนี้ใช้ และเครื่องมือนี้ไม่ลบหรือหลบเลี่ยงการป้องกันดังกล่าว
  • "โปรดเลือกอย่างน้อยหนึ่งหน้าที่ต้องการแยก" ไม่มีหน้าที่ถูกต้องถูกเลือกไว้ เช่น หลังคลิก ยกเลิกการเลือกทั้งหมด หรือเมื่อใช้ช่วงแบบเปิด
  • ได้หน้าไม่ตรงกับที่ต้องการ ตรวจหา en dash จุลภาคที่ขาดหายไป หรือการใช้เลขหน้าที่พิมพ์อยู่บนหน้าแทนตำแหน่งในไฟล์
  • ทำงานช้ากับไฟล์ที่มีหลายหน้า เครื่องมือจะวาดภาพขนาดย่อทุกหน้าให้เสร็จก่อนจึงแสดงตัวควบคุม และระหว่างนั้นแถบความคืบหน้าจะค้างอยู่ที่ประมาณหนึ่งในห้า ไฟล์ที่มีหลายหน้าจึงอาจดูเหมือนค้าง นอกจากนี้ โหมด "แยกทุกหน้า" ยังสร้างทุกไฟล์และไฟล์ ZIP ไว้ในหน่วยความจำ เครื่องมือไม่ได้กำหนดขนาดไฟล์สูงสุดไว้เอง แต่โทรศัพท์อาจประมวลผลไฟล์ขนาดใหญ่มากไม่สำเร็จ ในขณะที่คอมพิวเตอร์ยังทำได้

ก่อนส่งไฟล์

ตรวจสอบจำนวนหน้า หน้าแรกและหน้าสุดท้าย และขนาดของแต่ละไฟล์ แล้วตั้งชื่อที่สื่อความหมาย เช่น contract_signature_pages.pdf และเก็บต้นฉบับไว้ หากต้องการรวมส่วนต่าง ๆ กลับเข้าด้วยกัน ให้ใช้เครื่องมือรวม PDF หากต้นฉบับไม่มีเลขหน้าพิมพ์อยู่ และต้องการให้ส่วนที่ดึงออกมาเริ่มที่เลขอื่น เช่น 31 ให้ดูการใส่เลขหน้าใน PDF หน้าเครื่องมือโหลด PDF.js, pdf-lib และ JSZip จาก leedybox.com โดยตรง แต่ไฟล์ของคุณจะถูกอ่านและแยกในเบราว์เซอร์ของคุณ และไม่ถูกส่งไปยังเซิร์ฟเวอร์ของ LeedyBox

คำถามที่พบบ่อย

แยก PDF ทุก 30 หน้าโดยอัตโนมัติได้หรือไม่

ไม่มีตัวเลือกแบบอัตโนมัติ ให้ดึงแต่ละส่วนด้วยโหมด "แยกช่วงหน้าที่กำหนดเอง" ไฟล์ 120 หน้าต้องดึง 1-30 31-60 61-90 และ 91-120 รวมเป็นการดาวน์โหลดสี่ครั้ง

ดึงหน้า 1 ถึง 3 และหน้า 7 เป็นสองไฟล์แยกกันในครั้งเดียวได้หรือไม่

ทำในขั้นตอนเดียวไม่ได้ โหมด "แยกช่วงหน้าที่กำหนดเอง" สร้างหนึ่งไฟล์ต่อการดาวน์โหลดหนึ่งครั้ง จึงต้องดึง 1-3 ก่อน แล้วจึงดึง 7 ส่วนโหมด "แยกทุกหน้า" จะแยกทุกหน้าออกเป็นไฟล์ของตัวเอง

เปลี่ยนลำดับหน้าระหว่างการดึงได้หรือไม่

ไม่ได้ หน้าจะเรียงตามลำดับเดิม ให้จัดเรียงไฟล์ผลลัพธ์ใหม่ด้วยเครื่องมือจัดระเบียบหน้า PDF

การแยกไฟล์ทำให้คุณภาพลดลงหรือไม่

ไม่ หน้าถูกคัดลอกด้วย pdf-lib แทนการเรนเดอร์ใหม่ ข้อความและภาพจึงคงเดิม สิ่งที่อาจหายไปคือส่วนระดับเอกสาร เช่น บุ๊กมาร์กและป้ายกำกับหน้า และลิงก์หรือช่องฟอร์มอาจใช้งานไม่ได้ ตามที่อธิบายไว้ข้างต้น

ทำไมโปรแกรมดู PDF จึงแสดงเป็นหน้า 1 บนหน้าที่พิมพ์เลข 23

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