ฉันจะแยกช่วงหน้า / ส่วนหนึ่งของ PDF ได้อย่างไร


423

คุณมีความคิดวิธีแยกส่วนของเอกสาร PDF และบันทึกเป็น PDF หรือไม่ บน OS X มันเป็นเรื่องเล็กน้อยโดยใช้ Preview ฉันลองใช้โปรแกรมแก้ไข PDF และโปรแกรมอื่น ๆ แต่ก็ไม่มีประโยชน์

ฉันต้องการโปรแกรมที่ฉันเลือกส่วนที่ฉันต้องการแล้วบันทึกเป็น pdf ด้วยคำสั่งง่ายๆเช่นCMD+ Nบน OS X ฉันต้องการให้ส่วนที่แยกออกมาถูกบันทึกในรูปแบบ PDF ไม่ใช่ jpeg เป็นต้น


คุณลอง ImageMagick หรือไม่
Martin Schröder

3
สำหรับบิตแมปฉันต้องการบางสิ่งที่บันทึกเป็น PDF!
user72469

3
pdfshufflerใน repos
Marc

2
pdfshufflerไม่ทำงานอีกต่อไปใน Ubuntu 14.04+ คุณสามารถใช้กล่องโต้ตอบการพิมพ์หรือตัวเลือกอื่น ๆ เช่น Terminalpdfseparate
Rho

@Rho เวอร์ชันที่ติดตั้งโดยตรงapt-getยังคงทำงานได้ดีสำหรับฉันใน 16.04 บางทีพวกเขาอาจแก้ไขข้อบกพร่องถ้ามี?
xji

คำตอบ:


476

pdftkเป็นเครื่องมือที่มีประโยชน์หลายแพลตฟอร์มสำหรับงาน ( หน้าแรก pdftk )

pdftk full-pdf.pdf cat 12-15 output outfile_p12-15.pdf

คุณผ่านชื่อไฟล์ของไฟล์ PDF หลักจากนั้นคุณบอกให้รวมเฉพาะบางหน้า (12-15 ในตัวอย่างนี้) และส่งออกไปยังไฟล์ใหม่


6
หากฉันต้องการแยกหน้า 1-10, 15 และ 17 ฉันจะเขียนคำสั่งได้อย่างไร
Patrick Li

31
@PatrickLipdftk A=in.pdf cat A1-10 A15 A17 output out.pdf
m8mble

9
โปรดทราบว่าpdftkไม่มีใน Ubuntu 18.04 (ดูaskubuntu.com/questions/1028522/ … )
alkamid

6
@alkamid คือ: sudo snap install pdftk
Qubix

12
แม้ว่าpdftkจะเป็นเครื่องมือที่สามารถทำงานได้ แต่ฉันก็อยากจะแนะนำ นี่ไม่ใช่ซอฟต์แวร์ฟรี แต่เป็นโปรแกรมแชร์แวร์ชิ้นใหญ่ นอกจากนี้ยังต้องการ JVM เครื่องมือที่เหมาะสมมากขึ้นคือqpdfเป็นข้อเสนอแนะในคำตอบอื่น
leftaroundabout

246

ง่ายมากใช้ตัวอ่าน PDF ที่เป็นค่าเริ่มต้น:

พิมพ์เป็นไฟล์ อย่างนั้นแหละ! เมนูพิมพ์

แล้วก็

ตั้งค่า PDF ใหม่


12
Flippin brilliant
andybleaden

17
สร้างผลลัพธ์ที่เป็นความหายนะด้วยไฟล์ beamer แผนที่และเอกสารอื่น ๆ ที่ไม่สอดคล้องกับรูปแบบหน้าเครื่องพิมพ์
Luís de Sousa

11
ซึ่งอาจส่งผลให้ไฟล์มีขนาดใหญ่กว่าเอกสารต้นฉบับมาก
ดาด

7
ดังนั้นจึงไม่ "แยก" ช่วงหน้า มันสร้าง pdf ใหม่จากไฟล์เก่าราวกับว่าคุณใช้คู่เครื่องพิมพ์ / สแกนเนอร์ความละเอียดสูง
sylvainulg

6
ดีสำหรับกรณีง่าย ๆ แต่ผลลัพธ์ที่ไม่พึงประสงค์ในเอกสารที่มีการเน้นความคิดเห็น: การเน้นจะกลายเป็นความทึบ 100% และบล็อกข้อความ
รัก .by.Jesus

79

ช่วงหน้า - สคริปต์ Nautilus


ภาพรวม

ฉันสร้างสคริปต์ขั้นสูงขึ้นเล็กน้อยจากกวดวิชา @ThiagoPonte ที่ลิงก์ไป คุณสมบัติที่สำคัญคือ

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

ภาพหน้าจอ

ป้อนคำอธิบายรูปภาพที่นี่

รหัส

#!/bin/bash
#
# TITLE:        PDFextract
#
# AUTHOR:       (c) 2013-2015 Glutanimate (https://github.com/Glutanimate)
#
# VERSION:      0.2
#
# LICENSE:      GNU GPL v3 (http://www.gnu.org/licenses/gpl.html)
# 
# OVERVIEW:     PDFextract is a simple PDF extraction script based on Ghostscript/qpdf/cpdf.
#               It provides a simple way to extract a page range from a PDF document and is meant
#               to be used as a file manager script/addon (e.g. Nautilus script).
#
# FEATURES:     - simple GUI based on YAD, an advanced Zenity fork.
#               - preserves _all_ attributes of your original PDF file and does not compress 
#                 embedded images further than they are.      
#               - can choose from three different backends: ghostscript, qpdf, cpdf
#
# DEPENDENCIES: ghostscript/qpdf/cpdf poppler-utils yad libnotify-bin
#                         
#               You need to install at least one of the three backends supported by this script.
#
#               - ghostscript, qpdf, poppler-utils, and libnotify-bin are available via 
#                 the standard Ubuntu repositories
#               - cpdf is a commercial CLI PDF toolkit that is free for personal use.
#                 It can be downloaded here: https://github.com/coherentgraphics/cpdf-binaries
#               - yad can be installed from the webupd8 PPA with the following command:
#                 sudo add-apt-repository ppa:webupd8team/y-ppa-manager && apt-get update && apt-get install yad
#
# NOTES:        Here is a quick comparison of the advantages and disadvantages of each backend:
#
#                               speed     metadata preservation     content preservation        license
#               ghostscript:     --               ++                         ++               open-source
#               cpdf:             -               ++                         ++               proprietary
#               qpdf:            ++                +                         ++               open-source
#
#               Results might vary depending on the document and the version of the tool in question.
#
# INSTALLATION: https://askubuntu.com/a/236415
#
# This script was inspired by Kurt Pfeifle's PDF extraction script 
# (http://www.linuxjournal.com/content/tech-tip-extract-pages-pdf)
#
# Originally posted on askubuntu
# (https://askubuntu.com/a/282453)

# Variables

DOCUMENT="$1"
BACKENDSELECTION="^qpdf!ghostscript!cpdf"

# Functions

check_input(){
  if [[ -z "$1" ]]; then
    notify "Error: No input file selected."
    exit 1
  elif [[ ! "$(file -ib "$1")" == *application/pdf* ]]; then
    notify "Error: Not a valid PDF file."
    exit 1
  fi
}

check_deps () {
  for i in "$@"; do
    type "$i" > /dev/null 2>&1 
    if [[ "$?" != "0" ]]; then
      MissingDeps+="$i"
    fi
  done
}

ghostscriptextract(){
  gs -dFirstPage="$STARTPAGE "-dLastPage="$STOPPAGE" -sOutputFile="$OUTFILE" -dSAFER -dNOPAUSE -dBATCH -dPDFSETTING=/default -sDEVICE=pdfwrite -dCompressFonts=true -c \
  ".setpdfwrite << /EncodeColorImages true /DownsampleMonoImages false /SubsetFonts true /ASCII85EncodePages false /DefaultRenderingIntent /Default /ColorConversionStrategy \
  /LeaveColorUnchanged /MonoImageDownsampleThreshold 1.5 /ColorACSImageDict << /VSamples [ 1 1 1 1 ] /HSamples [ 1 1 1 1 ] /QFactor 0.4 /Blend 1 >> /GrayACSImageDict \
  << /VSamples [ 1 1 1 1 ] /HSamples [ 1 1 1 1 ] /QFactor 0.4 /Blend 1 >> /PreserveOverprintSettings false /MonoImageResolution 300 /MonoImageFilter /FlateEncode \
  /GrayImageResolution 300 /LockDistillerParams false /EncodeGrayImages true /MaxSubsetPCT 100 /GrayImageDict << /VSamples [ 1 1 1 1 ] /HSamples [ 1 1 1 1 ] /QFactor \
  0.4 /Blend 1 >> /ColorImageFilter /FlateEncode /EmbedAllFonts true /UCRandBGInfo /Remove /AutoRotatePages /PageByPage /ColorImageResolution 300 /ColorImageDict << \
  /VSamples [ 1 1 1 1 ] /HSamples [ 1 1 1 1 ] /QFactor 0.4 /Blend 1 >> /CompatibilityLevel 1.7 /EncodeMonoImages true /GrayImageDownsampleThreshold 1.5 \
  /AutoFilterGrayImages false /GrayImageFilter /FlateEncode /DownsampleGrayImages false /AutoFilterColorImages false /DownsampleColorImages false /CompressPages true \
  /ColorImageDownsampleThreshold 1.5 /PreserveHalftoneInfo false >> setdistillerparams" -f "$DOCUMENT"
}

cpdfextract(){
  cpdf "$DOCUMENT" "$STARTPAGE-$STOPPAGE" -o "$OUTFILE"
}

qpdfextract(){
  qpdf --linearize "$DOCUMENT" --pages "$DOCUMENT" "$STARTPAGE-$STOPPAGE" -- "$OUTFILE"
  echo "$OUTFILE"
  return 0 # even benign qpdf warnings produce error codes, so we suppress them
}

notify(){
  echo "$1"
  notify-send -i application-pdf "PDFextract" "$1"
}

dialog_warning(){
  echo "$1"
  yad --center --image dialog-warning \
  --title "PDFExtract Warning" \
  --text "$1" \
  --button="Try again:0" \
  --button="Exit:1"

  [[ "$?" != "0" ]] && exit 0
}

dialog_settings(){
  PAGECOUNT=$(pdfinfo "$DOCUMENT" | grep Pages | sed 's/[^0-9]*//') #determine page count

  SETTINGS=($(\
      yad --form --width 300 --center \
          --window-icon application-pdf --image application-pdf \
          --separator=" " --title="PDFextract"\
          --text "Please choose the page range and backend"\
          --field="Start:NUM" 1[!1..$PAGECOUNT[!1]] --field="End:NUM" $PAGECOUNT[!1..$PAGECOUNT[!1]] \
          --field="Backend":CB "$BACKENDSELECTION" \
          --button="gtk-ok:0" --button="gtk-cancel:1"\
      ))

  SETTINGSRET="$?"

  [[ "$SETTINGSRET" != "0" ]] && exit 1

  STARTPAGE=$(printf %.0f ${SETTINGS[0]}) #round numbers and store array in variables
  STOPPAGE=$(printf %.0f ${SETTINGS[1]})
  BACKEND="${SETTINGS[2]}"
  EXTRACTOR="${BACKEND}extract"

  check_deps "$BACKEND"

  if [[ -n "$MissingDeps" ]]; then
    dialog_warning "Error, missing dependency: $MissingDeps"
    unset MissingDeps
    dialog_settings
    return
  fi

  if [[ "$STARTPAGE" -gt "$STOPPAGE" ]]; then 
    dialog_warning "<b>   Start page higher than stop page.   </b>"
    dialog_settings
    return
  fi

  OUTFILE="${DOCUMENT%.pdf} (p${STARTPAGE}-p${STOPPAGE}).pdf"
}

extract_pages(){
  $EXTRACTOR
  EXTRACTORRET="$?"
  if [[ "$EXTRACTORRET" = "0" ]]; then
    notify "Pages $STARTPAGE to $STOPPAGE succesfully extracted."
  else
    notify "There has been an error. Please check the CLI output."
  fi
}


# Main

check_input "$1"
dialog_settings
extract_pages

การติดตั้ง

โปรดปฏิบัติตามคำแนะนำการติดตั้งทั่วไปสำหรับสคริปต์ Nautilus ตรวจสอบให้แน่ใจว่าได้อ่านส่วนหัวของสคริปต์อย่างระมัดระวังเนื่องจากจะช่วยให้การติดตั้งและการใช้สคริปต์ชัดเจนยิ่งขึ้น


หน้าบางส่วน - PDF Shuffler


ภาพรวม

PDF-Shuffler เป็นแอพพลิเคชั่น python-gtk ขนาดเล็กซึ่งช่วยให้ผู้ใช้สามารถผสานหรือแยกเอกสาร PDF และหมุน, ครอบตัดและจัดเรียงหน้าใหม่โดยใช้ส่วนต่อประสานกราฟิกแบบโต้ตอบและใช้งานง่าย มันเป็นส่วนหน้าสำหรับ python-pyPdf

การติดตั้ง

sudo apt-get install pdfshuffler

การใช้

PDF-Shuffler สามารถครอบตัดและลบหน้า PDF เดียว คุณสามารถใช้มันเพื่อแยกช่วงหน้าจากเอกสารหรือแม้แต่บางส่วนของหน้าโดยใช้ฟังก์ชั่นการครอบตัด:

ป้อนคำอธิบายรูปภาพที่นี่


องค์ประกอบหน้า - Inkscape


ภาพรวม

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

การติดตั้ง

sudo apt-get install inkscape

การใช้

1. )เปิดไฟล์ PDF ที่คุณต้องการด้วย Inkscape กล่องโต้ตอบการนำเข้าจะปรากฏขึ้น เลือกหน้าเว็บที่คุณต้องการแยกองค์ประกอบ ออกจากการตั้งค่าอื่น ๆ ตามที่:

ป้อนคำอธิบายรูปภาพที่นี่

2. )ใน Inkscape คลิกและลากเพื่อเลือกองค์ประกอบที่คุณต้องการแยก:

ป้อนคำอธิบายรูปภาพที่นี่

3. )สลับส่วนที่เลือกด้วย!และลบวัตถุที่เลือกด้วยDELETE:

ป้อนคำอธิบายรูปภาพที่นี่

4. )ครอบตัดเอกสารไปยังวัตถุที่เหลือโดยการเข้าสู่กล่องโต้ตอบDocument Propertiesด้วยCTRL+ SHIFT+ Dและเลือก "fit document to image":

ป้อนคำอธิบายรูปภาพที่นี่

5. )บันทึกเอกสารเป็นไฟล์ PDF จากไฟล์ -> บันทึกเป็นกล่องโต้ตอบ:

6. )หากมีภาพบิตแมป / แรสเตอร์ในเอกสารที่ครอบตัดของคุณคุณสามารถตั้งค่า DPI ในกล่องโต้ตอบที่ปรากฏขึ้นถัดไป:

ป้อนคำอธิบายรูปภาพที่นี่

7. )ถ้าคุณทำตามทุกขั้นตอนคุณจะได้สร้างไฟล์ PDF จริงซึ่งประกอบด้วยวัตถุที่คุณเลือกเท่านั้น:

ป้อนคำอธิบายรูปภาพที่นี่


สุดยอดความพยายาม ขอบคุณ! ฉันเข้าใจว่ามันไม่อนุญาตให้เลือกบางส่วนของหน้า แต่เป็นทั้งหน้า ฉันถูกไหม?
carnendil

2
@carnendil: ใช่แน่นอน ฉันไม่คิดว่าผีมีความสามารถในเรื่องนั้น แต่อาจจะมีการแก้ปัญหาอื่น ๆ ออกมีการทำเช่นนี้โปรแกรม ตอนนี้ฉันได้แก้ไขคำตอบของฉันด้วยโซลูชันสำรอง (และแฮ็คบิต) โดยใช้ PDF-shuffler
Glutanimate

3
ตกลงฉันได้เพิ่มวิธีการอื่นโดยใช้ Inkscape
Glutanimate

1
pdfshufflerไม่เพียงพอหากคุณต้องการแยกส่วนของหน้า PDF ข้อมูล PDF ต้นฉบับของหน้ายังคงอยู่ในไฟล์ อย่าใช้วิธีนี้หากคุณต้องการลบข้อมูลที่ละเอียดอ่อนออกจากไฟล์ PDF
Rob W

pdfshufflerpdfarrangerเรียกว่าตอนนี้
อะมี

69

QPDFยอดเยี่ยม ใช้วิธีนี้ในการดึงหน้า 1-10 จากและบันทึกเป็นinput.pdfoutput.pdf

qpdf --pages input.pdf 1-10 -- input.pdf output.pdf

โปรดทราบว่าinput.pdfเขียนสองครั้ง

คุณสามารถติดตั้งได้โดยเรียกใช้:

sudo apt-get install qpdf

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

http://sourceforge.net/projects/qpdf/


3
ปัญหาเดียวที่ฉันมีคือมันยังคงแสดงรายการหน้าทั้งหมดในสารบัญแม้ว่าส่วนใหญ่จะถูกลบออก นอกจากนี้ขอบคุณมาก! :)
วิลฟ์

3
สุดยอดซอฟต์แวร์ ดี
อันวาร์

2
คำเตือน - ไฟล์มีขนาดใหญ่มาก .. เกี่ยวกับขนาดเดียวกันกับต้นฉบับ
Corey Alix

3
ใช้งานได้ แต่ไวยากรณ์นั้นสำหรับการระบุหน้าเว็บ (การแสดงไฟล์อินพุตสองครั้งจากนั้นเพิ่ม--) นั้นแปลกจริงๆ
Dan Dascalescu

3
แฟล็ก --pages อนุญาตให้คุณแบ่งหน้าจากหลาย PDF โปรดทราบว่าคุณสามารถหลีกเลี่ยงการทำซ้ำชื่อโดยใช้.ในสถานที่ของแฟ้มใส่ในตัวเลือก qpdf --pages . 1-10 -- input.pdf output.pdf--pages:
บาร์ต

43

บันทึกสิ่งนี้เป็นเชลล์สคริปต์เช่น pdfextractor.sh:

#!/bin/bash
# this function uses 3 arguments:
#     $1 is the first page of the range to extract
#     $2 is the last page of the range to extract
#     $3 is the input file
#     output file will be named "inputfile_pXX-pYY.pdf"
gs -sDEVICE=pdfwrite -dNOPAUSE -dBATCH -dSAFER \
   -dFirstPage="${1}" \
   -dLastPage="${2}" \
   -sOutputFile="${3%.pdf}_p${1}-p${2}.pdf" \
   "${3}"

หากต้องการเรียกใช้ประเภท:

./pdfextractor.sh 4 20 myfile.pdf
  1. 4 หมายถึงหน้ามันจะเริ่ม pdf ใหม่

  2. 20 หมายถึงหน้ามันจะจบ pdf ด้วย

  3. myfile.pdf เป็นไฟล์ pdf ที่คุณต้องการแยกส่วน

ผลลัพธ์จะอยู่myfile_p4_p20.pdfในไดเรกทอรีเดียวกับไฟล์ pdf ต้นฉบับ

ข้อมูลทั้งหมดนี้และอื่น ๆ ที่นี่: เคล็ดลับเทค


15
ให้มันง่าย:gs -sDEVICE=pdfwrite -dNOPAUSE -dBATCH -dFirstPage=1 -dLastPage=10 -sOutputFile=output.pdf input.pdf
Ho1

และฉันจะระบุไฟล์อินพุตได้อย่างไร
อันวาร์

1
-1 สำหรับทำการขยายพารามิเตอร์ bash นอกสตริงที่มีเครื่องหมายคำพูดคู่ (ควรเป็น"-sOutputFile=${3%.pdf}_p${1}-p${2}.pdf"อื่น ๆ (หมายเหตุเครื่องหมายคำพูด))
Rotsor

1
@ Ho1 โปรดเขียนมันเป็นคำตอบใหม่มันช่วยได้จริงๆ!
Joshua Salazar

นี่เป็นคำตอบที่พกพาได้มากที่สุดเนื่องจาก ghostscript มีแนวโน้มที่จะติดตั้งได้ทุกที่
Calimo


27

มีอรรถประโยชน์บรรทัดคำสั่งที่เรียกว่าเป็นpdfseparate

จากเอกสาร:

pdfseparate sample.pdf sample-%d.pdf

extracts  all pages from sample.pdf, if i.e. sample.pdf has 3 pages, it
   produces

sample-1.pdf, sample-2.pdf, sample-3.pdf

หรือในการเลือกหน้าเดียว (ในกรณีนี้คือหน้าแรก) จากไฟล์ sample.pdf:

pdfseparate -f 1 -l 1 sample.pdf sample-1.pdf

2
เครื่องมือที่ยอดเยี่ยม! เร็วกว่ามากpdftk
อันวาร์

3
ดี แต่มันถูก จำกัด ไว้เพียงหน้าเดียวและถ้าคุณต้องการมากกว่านั้นคุณจะได้รับหน้าแยกกัน
Ho1

2
แน่นอนว่าเราสามารถทำตามคำสั่งด้านบนด้วย pdfunite เพื่อสร้างเอกสารเดียว
jdmcbr

3
หากคุณมีเอกสารขนาดใหญ่และจำเป็นต้องแบ่งหน้ามันเป็นเรื่องที่รวดเร็วและมีประโยชน์
MEDVIS

19

pdftk( sudo apt-get install pdftk) เป็นบรรทัดคำสั่งที่ยอดเยี่ยมเช่นกันสำหรับการจัดการ PDF นี่คือตัวอย่างของสิ่งที่pdftkสามารถทำได้:

   Collate scanned pages
     pdftk A=even.pdf B=odd.pdf shuffle A B output collated.pdf
     or if odd.pdf is in reverse order:
     pdftk A=even.pdf B=odd.pdf shuffle A Bend-1 output collated.pdf

   Join in1.pdf and in2.pdf into a new PDF, out1.pdf
     pdftk in1.pdf in2.pdf cat output out1.pdf
     or (using handles):
     pdftk A=in1.pdf B=in2.pdf cat A B output out1.pdf
     or (using wildcards):
     pdftk *.pdf cat output combined.pdf

   Remove page 13 from in1.pdf to create out1.pdf
     pdftk in.pdf cat 1-12 14-end output out1.pdf
     or:
     pdftk A=in1.pdf cat A1-12 A14-end output out1.pdf

   Burst a single PDF document into pages and dump its data to
   doc_data.txt
     pdftk in.pdf burst

   Rotate the first PDF page to 90 degrees clockwise
     pdftk in.pdf cat 1east 2-end output out.pdf

   Rotate an entire PDF document to 180 degrees
     pdftk in.pdf cat 1-endsouth output out.pdf

ในกรณีของคุณฉันจะทำ:

     pdftk A=input.pdf cat A<page_range> output output.pdf

แพ็คเกจ 'pdftk' ไม่มีการติดตั้ง
FireInTheSky

8

คุณได้ลอง PDF Mod แล้วหรือยัง

ตัวอย่างเช่นคุณสามารถแยกหน้าและบันทึกเป็น pdf ได้

รายละเอียด:

PDF Mod เป็นเครื่องมือง่าย ๆ สำหรับแก้ไขเอกสาร PDF มันสามารถหมุนดึงแยก
และเรียงลำดับหน้าใหม่ได้ด้วยการลากและวาง อาจรวมเอกสารหลายชุดผ่านการลาก
และวาง คุณสามารถแก้ไขชื่อเรื่องหัวเรื่องผู้แต่งและคำสำคัญของ
เอกสาร PDF โดยใช้ PDF Mod

ติดตั้งผ่านศูนย์ซอฟต์แวร์

หวังว่ามันจะมีประโยชน์

Regars


ใช่จริง ๆ แล้วฉันลองแล้ว แต่มันไม่อนุญาตให้ฉันบันทึกบางส่วนของหน้าเช่นพล็อตเป็น pdf ... เว้นแต่ฉันจะไม่เห็นตัวเลือก มันช่วยให้ฉันสามารถดึงทั้งหน้าจากเอกสารได้ แต่นั่นไม่ใช่สิ่งที่ฉันต้องการ
user72469

ฉันใช้เป็นประจำเครื่องมือที่ยอดเยี่ยม! แต่ฉันมีเอกสารประมาณ 170 หน้าที่ pdfmod ไม่สามารถจัดการได้
รัก .by.Jesus

ว้าว. นี่เป็นสิ่งที่ราบรื่นอย่างน่าประหลาดใจ โยนหนังสือจริง 512 หน้าของฉันลงที่มัน (50MiB) และมัน ... เป็นพรอมต์ UI เป็นเรื่องง่าย สำหรับขี้ยา CLI อย่างฉันต้องใช้ GUI ในระดับหนึ่งในการโน้มน้าวใจฉัน แต่จะทำเช่นนี้!
sehe

PDF Mod มีข้อผิดพลาดที่ทำงานใน Kubuntu 18
Joshua Salazar

8

ฉันพยายามทำเช่นเดียวกัน สิ่งที่คุณต้องทำคือ:

  1. ติดตั้งpdftk:

    sudo apt-get install pdftk
    
  2. หากคุณต้องการแยกหน้าสุ่ม:

    pdftk myoldfile.pdf cat 1 2 4 5 output mynewfile.pdf
    
  3. หากคุณต้องการแยกช่วง:

    pdftk myoldfile.pdf cat 1-2 4-5 output mynewfile.pdf
    

โปรดตรวจสอบแหล่งข้อมูลเพิ่มเติม


ฉันคิดว่าคำตอบนี้ดีที่สุดเพราะมันแสดงให้เห็นว่าคุณสามารถใส่หลายช่วงได้อย่างไร
Roman Luštrik

6

imagemagickมันจะเปิดออกผมสามารถทำมันได้ด้วย หากคุณไม่มีให้ติดตั้งง่ายๆด้วย:

sudo apt-get install imagemagick

หมายเหตุ 1 : ฉันได้ลองด้วย pdf แบบหน้าเดียว (ฉันกำลังเรียนรู้ที่จะใช้imagemagickดังนั้นฉันจึงไม่ต้องการปัญหามากกว่าที่จำเป็น) ฉันไม่รู้ว่าจะทำงานร่วมกับหลาย ๆ หน้าได้อย่างไร แต่คุณสามารถดึงความสนใจหนึ่งหน้าด้วยpdftk:

pdftk A=myfile.pdf cat A1 output page1.pdf

โดยที่คุณระบุหมายเลขหน้าที่จะแยกออก (ในตัวอย่างด้านบนA1เลือกหน้าแรก)

หมายเหตุ 2 : ภาพที่ได้จากการใช้โพรซีเดอร์นี้จะเป็นภาพแรสเตอร์


เปิดไฟล์ PDF ด้วยคำสั่งdisplayซึ่งเป็นส่วนหนึ่งของimagemagickชุด:

display file.pdf

ฉันดูเหมือนว่า:

Imagemagick แสดงผลเป็น pdf
คลิกที่ภาพเพื่อดูรุ่นความละเอียดเต็ม

ตอนนี้คุณคลิกที่หน้าต่างและเมนูจะปรากฏขึ้นที่ด้านข้าง ที่นั่นเลือกแปลง | พืชผล

การแปลงภาพถ่าย imagemagick> ครอบตัด

กลับไปที่หน้าต่างหลักคุณสามารถเลือกพื้นที่ที่คุณต้องการครอบตัดโดยเพียงลากตัวชี้ (ตัวเลือกแบบมุมต่อมุมแบบดั้งเดิม)

การเลือกพื้นที่เพาะปลูก
สังเกตตัวชี้รูปมือรอบ ๆ รูปภาพขณะเลือก

การเลือกนี้สามารถปรับปรุงได้ก่อนที่จะดำเนินการในขั้นตอนถัดไป

เมื่อเสร็จแล้วให้สังเกตสี่เหลี่ยมเล็ก ๆ ที่ปรากฏที่มุมบนซ้าย (ดูภาพด้านบน) มันแสดงขนาดของพื้นที่ที่เลือกไว้ก่อน (เช่น281x218) และสองพิกัดของมุมแรก (เช่น+256+215)

จดขนาดของพื้นที่ที่เลือก คุณจะต้องใช้มันในขณะที่บันทึกภาพที่ถูกครอบตัด

ตอนนี้กลับไปที่เมนูป๊อป (ซึ่งตอนนี้เป็นเฉพาะเมนู "ตัด") ให้คลิกปุ่มพืช

เมนูครอบตัด imagemagick

ในที่สุดเมื่อคุณมีความพึงพอใจกับผลของการปลูกพืชให้คลิกที่เมนูไฟล์ | บันทึก

นำทางไปยังโฟลเดอร์ที่คุณต้องการบันทึกไฟล์ PDF ที่ถูกตัดพิมพ์ชื่อให้คลิกที่ปุ่มรูปแบบในการ "เลือกประเภทของรูปแบบภาพ" หน้าต่างเลือกรูปแบบไฟล์ PDFและคลิกที่ปุ่มเลือก กลับไปที่ "Browse และเลือกไฟล์" หน้าต่างให้คลิกปุ่มบันทึก

imagemagick บันทึกเป็น pdf

ก่อนที่จะบันทึกimagemagickจะขอให้ "เลือกหน้าเรขาคณิต" ที่นี่คุณพิมพ์ขนาดของภาพที่ครอบตัดโดยใช้ตัวอักษร "x" เพื่อแยกความกว้างและความสูง

imagemagick เลือกหน้าเรขาคณิต

ตอนนี้คุณสามารถทำสิ่งนี้ได้อย่างสมบูรณ์แบบจากบรรทัดคำสั่ง (คำสั่งอยู่ที่convertตัวเลือก-crop) - แน่นอนว่ามันเร็วกว่า แต่คุณจะต้องรู้ล่วงหน้าพิกัดของภาพที่คุณต้องการแยก ตรวจสอบman convertและตัวอย่างในหน้าเว็บของพวกเขา


ไม่ทราบเกี่ยวกับ GUI ของ imagemagick ดูน่าสนใจ อย่างไรก็ตามโปรดแก้ไขให้ฉันถ้าฉันผิด แต่ฉันคิดว่า imagemagick ไม่สามารถจัดการภาพเวกเตอร์ได้ ดังนั้นสิ่งที่คุณส่งออกน่าจะเป็นภาพแรสเตอร์ / บิตแมปเท่านั้น ในกรณีนี้วิธีนี้เหมือนกับการถ่ายภาพหน้าจอของพื้นที่ของเอกสาร
Glutanimate

1
อันที่จริงimagemagickทำงานได้เฉพาะภาพแรสเตอร์และdisplayเป็นเพียงคำสั่งเดียวของชุด มีอินเทอร์เฟซมากมายสำหรับimagemagick- ตรวจสอบหน้าเว็บของพวกเขา สำหรับภาพเวกเตอร์ทางออกที่ดีที่สุดคือฉันคิดว่าวิธีการของคุณกับ Inkscape
carnendil

2
คุณอาจต้องการเพิ่มข้อจำกัดความรับผิดชอบที่ด้านบนของคำตอบเพื่อเป็นการเตือนว่าสิ่งนี้จะแปลงจากเวกเตอร์เป็นกราฟิกแรสเตอร์ คุณสมบัตินี้ทำให้เป็นแนวทางที่แตกต่างกันโดยพื้นฐาน
bluenote10

2

PDF Split and Merge ค่อนข้างมีประโยชน์สำหรับการดำเนินการจัดการ PDF นี้และอื่น ๆ

ดาวน์โหลดจาก ที่นี่


1
คุณสามารถดาวน์โหลดเวอร์ชันล่าสุดได้จากลิงค์ด้านบน แต่ถ้าคุณต้องการความสะดวกสบายของ Software Center คุณสามารถติดตั้งได้จากที่นั่น (หรือจากเทอร์มินัลจนถึงsudo apt-get install pdfsam) อย่างไรก็ตามเวอร์ชั่นใน Ubuntu นั้นค่อนข้างล้าสมัยเพราะมันยังอยู่ในเวอร์ชั่น 1.1.4ในขณะที่เวอร์ชั่นของ sourceforge นั้นมีอยู่แล้ว 2.2.2
Waldir Leoncio

3.x ล่าสุด (ปัจจุบัน 3.1.0) มีแพ็คเกจ. debที่สามารถติดตั้งบน Ubuntu และมีโมดูลแยกหน้าที่ทำตามที่ OP ขอ
Andrea Vacondio

1
@Andrea Vacondio Bravo สำหรับการแก้ไขที่ยอดเยี่ยมของคุณ! คุณกำลังช่วยทำให้อินเทอร์เน็ตปลอดภัย ฉันพบว่าไฟล์จากลิงค์เก่าที่ sourceforge.net มีอึฝังอยู่ เจ้าของคนใหม่ของเว็บไซต์ SourceForge บอกว่าพวกเขาจะหยุดทำสิ่งนี้ แต่เห็นได้ชัดว่าพวกเขาโกหก
karel

2

ตามที่ผู้ใช้ดั้งเดิมขอเครื่องมือโต้ตอบและไม่ใช่เครื่องมือบรรทัดคำสั่ง: วิธีแก้ปัญหาง่าย ๆ คือการใช้โปรแกรมดู PDF ใด ๆ (okular บน Kubuntu, evince หรือ Firefox บน Ubuntu) จากนั้นเพียงใช้กล่องโต้ตอบการพิมพ์มาตรฐานเลือก "print to ไฟล์ PDF "จากนั้นเลือกในกล่องโต้ตอบการตั้งค่าเพิ่มเติมหน้าใดที่" พิมพ์ " ตัวแปรนี้มีข้อบกพร่องบางประการเนื่องจากกลไกบางอย่างใน PDF ดั้งเดิม (เช่นหน้าที่หมุนหน้าแบบฟอร์ม ฯลฯ ) อาจหายไป แต่มันใช้งานได้ง่ายสำหรับ PDF ที่ง่ายที่สุด


0

หากคุณต้องการที่จะดึงจากไฟล์ PDF ของคุณคุณสามารถใช้http://www.sumnotes.net มันเป็นเครื่องมือที่ยอดเยี่ยมในการแยกบันทึกย่อไฮไลท์และรูปภาพจาก PDF นอกจากนี้คุณยังสามารถดูบทเรียนใน Youtube sumnotesโดยการพิมพ์

ฉันหวังว่าคุณจะสนุกกับมัน!

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.