อยากทราบวิธีการแยกไฟล์ PDF พร้อมกันหลายๆไฟล์ในครั้งเดียว

รบกวนช่วยทีค่ะ หาวิธีมาสักพักแล้ว ต้องการแยกไฟล์ที่มีประมาณ 700หน้า
ด้วยการจับคู่หน้าแบบ 1,2    1,3    1,4   1,5 .........  1,700 
แบบไม่ต้องมาทำทีละไฟล์
คำตอบที่ได้รับเลือกจากเจ้าของกระทู้
ความคิดเห็นที่ 4

$file  = '248966-Optimization-Reference-Manual-V1-049.pdf'   ; `
$range = 2..10                                               ; `
Write-Host "Query CIM for number of cores.."                 ; `
$query = Get-CimInstance -ClassName Win32_Processor          ; `
$corenum   = ($query |
            Measure-Object -Property NumberOfCores -Sum).Sum ; `
$threadnum = ($query |
         Measure-Object -Property NumberOfLogicalProcessors -Sum).Sum ; `
Write-Host "Physical cores : $corenum`r`nLogical cores  : $threadnum" ; `
$range | Foreach-Object -ThrottleLimit $corenum -Parallel {
    $core = "core $([System.Threading.Thread]::GetCurrentProcessorId())"
    $ps   = "page1&$("{0:d3}" -f $_).ps"
    $pdf  = "page1&$("{0:d3}" -f $_).pdf"
    Write-Host "[$core] $pdf  ...processing"
    & ".\gswin64c"            `
        -dQUIET               `
        -o $ps                `
        -sDEVICE=ps2write     `
        -sPageList="1,$_"     `
        $Using:file           `
        2> $null
        
    & ".\gswin64c"            `
        -dQUIET               `
        -o $pdf               `
        -sDEVICE=pdfwrite     `
        -dFastWebView         `
        $ps                   `
        2> $null
    Remove-Item $ps
    Write-Host "[$core] $pdf  ...done"
}




สคริป Powershell นี้จะสร้างไฟล์ปะหน้าหนึ่ง  ของตั้งแต่หน้าที่สอง
หรือ 1,2  1,3 .... 1,10   ตามที่ท่านจขกท. ว่าไว้
page1&002.pdf
page1&003.pdf
...
page1&010.pdf

จากต้นฉบับ  248966-Optimization-Reference-Manual-V1-049.pdf
https://www.intel.com/content/www/us/en/content-details/814198

ด้วย Powershell 7
(Install จาก Windows Store)
https://apps.microsoft.com/detail/9mz1snwt0n5d

โดยสคริปเรียก Ghostscript 10.03.0 RC1
(โหลด gs10030w64.exe   จาก Github)
https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/tag/gs10030rc1

เมื่อลงโปรแกรม Powershell 7 และ Ghostscript เสร็จ
ให้ copy สองไฟล์นี้  จากโฟลเดอร์ C:\Program Files\gs\10.01.2\bin
gswin64c.exe
gswin64.dll
มาไว้ในโฟลเดอร์ของไฟล์ต้นฉบับที่จะแยก

แล้วแก้ไขตัวแปร file และ range ตามที่ต้องการ
แล้ว paste ลง powershell prompt
ที่อยู่บนโฟลเดอร์ของไฟล์ต้นฉบับที่จะแยก

สคริปต์จะใช้  คอร์ทั้งหมด  ของเครื่อง  ดังนั้นสปีดไม่ต้องพูดถึง  แป๊บเดียวก็เสร็จ
(ถ้ายังไม่ทันใจ  เปลี่ยน -ThrottleLimit $corenum เป็น -ThrottleLimit $threadnum จะบังคับ hyperthreading)

แต่ถ้า  สมมติ  มีการแก้ไขให้รันแบบยาวมาก ๆ   ต้อง  มีคนเฝ้าเครื่อง  เพราะรันนานแล้วมันจะร้อนสุด ๆ
อย่าปล่อยรันยาวไม่มีคนเฝ้าครับ



Ghostscript - PDF file output
https://ghostscript.readthedocs.io/en/latest/VectorDevices.html#the-family-of-pdf-and-postscript-output-devices
แสดงความคิดเห็น
โปรดศึกษาและยอมรับนโยบายข้อมูลส่วนบุคคลก่อนเริ่มใช้งาน อ่านเพิ่มเติมได้ที่นี่