ฉันรู้ว่าฉันได้ทำสิ่งนี้มาก่อนดังนั้นฉันมั่นใจว่าเป็นไปได้ฉันแค่ลืมวิธีที่จะทำ มีวิธีที่จะบอกให้ผู้ใช้ Conversion จับหน้าเฉพาะของ PDF และฉันต้องการเก็บรูปแบบของหน้านั้นเป็น PDF
ฉันรู้ว่าฉันได้ทำสิ่งนี้มาก่อนดังนั้นฉันมั่นใจว่าเป็นไปได้ฉันแค่ลืมวิธีที่จะทำ มีวิธีที่จะบอกให้ผู้ใช้ Conversion จับหน้าเฉพาะของ PDF และฉันต้องการเก็บรูปแบบของหน้านั้นเป็น PDF
คำตอบ:
ImageMagick เป็นเครื่องมือสำหรับภาพบิตแมปซึ่ง PDF ส่วนใหญ่ไม่ใช่ หากคุณใช้มันจะทำให้ข้อมูลrasterizeซึ่งมักไม่เป็นที่ต้องการ
Pdftkสามารถแยกหนึ่งหน้าขึ้นไปจากไฟล์ PDF
pdftk A=input.pdf cat A42 A43 output pages_42_43.pdf
หากคุณมีการติดตั้งน้ำยางกับ pdflatex คุณสามารถใช้pdfpages มีเสื้อคลุมเปลือกสำหรับ pdfpages เป็น, pdfjam
pdfjam -o pages_42_43.pdf input.pdf 42,43
ความเป็นไปได้อีกอย่าง (เกินความจริงที่นี่ แต่มีประโยชน์สำหรับความต้องการที่ซับซ้อนยิ่งขึ้นที่หน้าหนึ่ง) คือ Python กับไลบรารีPyPdf
#!/usr/bin/env python
import copy, sys
from pyPdf import PdfFileWriter, PdfFileReader
input = PdfFileReader(sys.stdin)
output = PdfFileWriter()
for i in [42, 43]:
output.addPage(input.getPage(i))
output.write(sys.stdout)
pdfjam
ใช้งานได้อย่างมีเสน่ห์และติดตั้งแล้วกับการกระจาย LaTeX ของฉัน มันใช้งานง่ายมาก
pdftk
ดังนั้นจึงไม่สามารถแยกหน้าได้อย่างง่ายดาย ผลก็คือไม่เป็นไร
คุณสามารถใช้สัญกรณ์ห้อยด้วยconvert(1)
เพื่อ "ดัชนี" เป็น PDF:
$ convert source.pdf[1] dest.pdf
ค่าดัชนีขึ้นอยู่กับวิธีที่ผู้ส่งออก PDF ระบุหมายเลขหน้า ในการทดสอบไฟล์ที่นี่ตัวเลขดูเหมือนจะเป็นศูนย์ดังนั้นตัวอย่างข้างต้นจะทำให้คุณได้หน้าที่สองในเอกสาร ฉันได้เห็นตัวอย่างออนไลน์ซึ่งพวกเขาแสดงดัชนีจดหมายแทนเนื่องจากผู้สร้าง PDF เห็นว่า "หมายเลข" หน้าเอกสารในแบบนั้นแทน
น่าเสียดายที่นี่ไม่ได้ผลที่ดีนักเพราะ ImageMagick ถือว่าทุกอย่างเป็นพิกเซลและดังนั้นจึงทำให้ภาพเวกเตอร์ rasterizes เช่นการพิมพ์ในรูปแบบ PDF ทั่วไป
เครื่องมือที่ดีกว่าสำหรับงานนี้คือGhostscriptซึ่งคุณอาจติดตั้งแล้ว:
$ gs -dNOPAUSE -dBATCH -dFirstPage=2 -dLastPage=2 -sDEVICE=pdfwrite \
-sOutputFile=dest.pdf -f src.pdf
สิ่งนี้จะส่งผ่านข้อมูล PDF ผ่านไม่เปลี่ยนแปลงเนื่องจาก Ghostscript เข้าใจ PDF (อนุพันธ์ของ PostScript) ไปสู่ระดับที่ลึกกว่าที่ ImageMagick ทำ
-density 300
คือจุดหวาน มีอะไรที่ใหญ่กว่าและคุณกำลังสร้างไฟล์ชั่วคราวขนาดใหญ่ - ซึ่งคุณอาจจะปรับขนาดเป็นรูปขนาดย่อต่อไป
source.pdf[3-6]
pdftk
เช่นกัน คุณจะต้องการใช้มัน