บรรทัดคำสั่ง: คุณจะหมุนไฟล์ PDF 90 องศาได้อย่างไร


52

เมื่อฉันสแกนเอกสารที่เป็นแนวนอนไฟล์ PDF ที่ส่งออกจะเป็นแนวตั้งดังนั้นตัวแสดง PDF ทั้งหมดจึงแสดงเอกสารที่สแกนในแนวตั้ง

จากบรรทัดคำสั่งคุณจะหมุนไฟล์ PDF 90 องศาได้อย่างไร

ฉันลองค้นหาและพบวิธีแก้ไขปัญหามากมาย แต่ฉันมีปัญหาในการค้นหาสิ่งที่ดูเหมือนว่าเป็นโซลูชันที่เชื่อถือได้ [1] ที่ใช้เครื่องมือ linux / unix ที่เสถียร


เชิงอรรถ [1]

ตัวอย่างเช่นต่อไปนี้เป็นตัวอย่างของโซลูชันจับจดที่ฉันพบ:

  • "เพียงใช้ Adobe Acrobat Pro เพื่อหมุนไฟล์แล้วบันทึกไฟล์"
  • "ใช้ pdfjam"
  • "ใช้ pdftk"
  • "ใช้ $ {PROGRAM_NAME} จาก Poppler"
  • "ใช้การแปลงของ Imagemagick" - แต่จากนั้นความคิดเห็นทั้งหมดนั้นเป็นลบมากและระบุว่า "คุณภาพของภาพจะถูกทำลาย"
  • "เปิดไฟล์ในโปรแกรมดู PDF จากนั้นหมุนแล้วพิมพ์โดยใช้เครื่องพิมพ์ PDF เช่น CUTEPDF หรือ PDFPRINTER หรืออื่น ๆ "
  • "ใช้ $ {PROGRAM_NAME}" จากนั้นฉันค้นหา "$ {PROGRAM_NAME}" และมีบางอย่างเกี่ยวกับ "Fedora ลบออก $ {PROGRAM_NAME} เนื่องจากปัญหาเรื่องใบอนุญาต"

5
ไม่มี "วิธีแก้ปัญหาแบบผู้มีอำนาจ" แต่คุณควรจำไว้ว่าวิธีการแก้ปัญหาแบบต่างๆใช้: การจัดการโครงสร้าง PDF โดยตรง (pdftk, Adobe Acrobat และโปรแกรมอื่น ๆ ) แปลงเป็นภาพแล้วแปลงกลับเป็น PDF (เช่น Imagemagick แปลง, การพิมพ์โดยใช้เครื่องพิมพ์ PDF เป็นต้น) เห็นได้ชัดว่าเป็นความคิดที่ไม่ดี
dirkt

วิธีการแก้ปัญหาแบบจับจดเหล่านั้นเป็นอย่างไร คุณรู้สึกผิดหวังกับแต่ละคนอย่างไร คุณลองพวกเขาจริงเหรอ?
simlev

คำตอบ:


48

เพียงใช้ pdftk

  1. สำหรับหมุนตามเข็มนาฬิกา:

    pdftk input.pdf cat 1-endeast output output.pdf
    
  2. สำหรับหมุนทวนเข็มนาฬิกา:

    pdftk input.pdf cat 1-endwest output output.pdf
    

เกี่ยวกับการติดตั้ง pdftk บน Fedora ฉันพบลิงค์นี้


4
หน้าคนของ pdftk ระบุตัวเลือกเพิ่มเติมสำหรับการหมุน:The page rotation setting can cause pdftk to rotate pages and documents. Each option sets the page rotation as follows (in degrees): north: 0, east: 90, south: 180, west: 270, left: -90, right: +90, down: +180. left, right, and down make relative adjustments to a page's rotation.
Tapper

เอาต์พุตถูกหมุน แต่ยังคงปรับขนาดเล็กพอที่จะวางแนวเดิมได้ ไม่เป็นประโยชน์
JohnMudd

@JohnMudd คุณหมายถึงอะไรโดย "ปรับขนาดเล็กพอให้พอดีกับการวางแนวดั้งเดิม"? ฉันคิดว่าคุณมีปัญหากับโปรแกรมดู PDF ไม่ใช่การหมุนหน้ากระดาษ
163859

PDF ต้นฉบับของฉันคือหน้าขนาดตัวอักษรหมุนได้ 90 องศาดังนั้นความสูงของหน้าลดลงจาก 11 "เป็น 8.5" ไม่เปลี่ยนแปลงหลังจากแก้ไขการหมุน พบสิ่งนี้เป็นจริงด้วยเครื่องมือออนไลน์มากมาย อาจไม่เป็นปัญหากับการแปลงหลังจากทั้งหมด ฉันพบตัวเลือกการปรับสเกลในขณะที่ดู / พิมพ์ PDF ที่หมุนแล้วและแก้ไข ขออภัยฉันรู้สึกผิดหวังอย่างมากเมื่อถึงจุดที่ฉันเพิ่งพิมพ์และย้ายไปและไม่ได้สังเกตขั้นตอนที่แน่นอนที่ฉันทำ
JohnMudd

1
pdftkถูกลบใน Ubuntu 18.04 ขึ้นไป อูบุนตูเองแนะนำให้ติดตั้ง snap ซึ่งทำงานได้ในสถานการณ์ง่าย ๆ เท่านั้น (ไม่พบไฟล์ของฉันอาจเป็นเพราะพวกเขาอยู่นอกไดเรกทอรีหลักของฉัน) pdfjam ... --angle 270...ผมย้ายไป
Stéphane Gourichon

42

ฉันเพิ่งสะดุดกับหัวข้อนี้และเห็นว่ายังไม่มีวิธีแก้ปัญหาที่ดี ฉันพบว่า (อย่างน้อยใน Debian และ Ubuntu) pdfjam มาพร้อมกับคำสั่งต่อไปนี้:

pdf90 input.pdf
pdf180 input.pdf
pdf270 input.pdf

ฉันคิดว่านั่นเป็นวิธีที่ง่ายที่สุดและเร็วที่สุด นี่เป็นสคริปต์ที่ใช้คำสั่ง pdfjam อย่างถูกต้อง Btw pdfjam เป็นแพ็คเกจเสมือนที่มาพร้อมกับtexlive-extra-utils


4
ดูเหมือน 90 จะทวนเข็มนาฬิกาและ 270 ตามเข็มนาฬิกา - บางทีคุณควรพูดถึงมัน
Aaron Hall

2
pdf90 เป็นเสื้อคลุมบาง ๆ แต่มันบังคับให้มีการประชุมต่อท้าย ดังนั้นฉันจึงใช้ pdfjam โดยตรง:pdfjam --outfile myoutputfile.pdf --angle 270 --fitpaper true --rotateoversize true myinputfile.pdf
Stéphane Gourichon

16

คุณสามารถใช้ ImageMagick: displayหรือconvert- เช่นใช้หมุนตามเข็มนาฬิกา

convert -rotate 90 <file>.pdf <rotated-file>.pdf

ใช้ -90 สำหรับการหมุนทวนเข็มนาฬิกา

NB ใช้วิธีนี้เฉพาะเมื่อภาพต้นฉบับเป็นบิตแมป (เช่นสร้างโดยการสแกน) หากภาพต้นฉบับไม่ใช่บิตแมปวิธีนี้จะแปลงเป็นหนึ่งและคุณภาพจะประสบ ในกรณีหลังนี้โปรดใช้วิธีใดวิธีหนึ่งในคำตอบอื่น ๆ


11
สิ่งนี้จะแปลงข้อความ PDF เป็นภาพก่อนดังนั้นขนาดจะเพิ่มขึ้นและคุณภาพจะลดลง (เว้นแต่เป็นเพียงการสแกนแล้ว)
aviv

1
ใช่แล้วนั่นเป็นคำเตือนที่มีประโยชน์ แต่ในกรณีนี้ OP ระบุว่าเขากำลังสแกนเอกสาร
NickD

12
ผล pdf มีคุณภาพต่ำมาก
Ivan Romanov

วิธีนี้ดีสำหรับต้นฉบับที่สแกนเท่านั้น: มันเป็นบิตแมปอยู่แล้ว สำหรับ PDF ธรรมดาดูความคิดเห็นของ @ aviv ด้านบนและอาจใช้วิธีในคำตอบอื่น ๆ
NickD


12

pdftkไม่สามารถใช้ได้บน Ubuntu 18.04 อีกต่อไปเนื่องจากการอ้างอิงที่เลิกใช้แล้ว

ทางออกที่ดีที่สุดที่ผมพบคือ (กราฟิก) เครื่องมือpdfshuffler

ติดตั้งและเรียกใช้ เปิดไฟล์ pdf ที่ต้องการคลิกขวาที่หน้าและหมุนทีละไฟล์ นอกจากนี้ยังจัดเรียงไฟล์ PDF และสิ่งดีๆอื่น ๆ

sudo apt install pdfshuffler

1
คุณต้องหมุนแต่ละหน้าด้วยตนเองหรือไม่? นั่นเป็นตัวทำลายข้อตกลง ฉันต้องหมุนหนังสือ PDF ยาวหลายร้อยหน้าเพื่อให้ดูดีขึ้น (ใหญ่ขึ้น) บน Kindle อัปเดต : ลองเลยไม่เลยคุณสามารถ Ctrl-A เพื่อเลือกหน้าทั้งหมดจากนั้นหมุนทั้งหมดในขั้นตอนเดียว
Gerry Lufwansa

12

ในลินุกซ์มิ้นท์ 18.3 (ผมเชื่อว่าในการกระจาย Debian มาอื่น ๆ เช่นกัน) QPDFคุณมีเครื่องมือบรรทัดคำสั่งง่ายชื่อ

คุณสามารถใช้: qpdf in.pdf out.pdf --rotate==[+|-]angle[:page-range].

จากเอกสาร :

--rotate = [+ | -] มุม [: หน้าช่วง]

ใช้การหมุนกับหน้าเว็บที่ระบุ ส่วนช่วงหน้าของค่าตัวเลือกมีรูปแบบเช่นเดียวกับช่วงหน้าในส่วน 3.5 "ตัวเลือกการเลือกหน้า" หากไม่ระบุช่วงหน้าการหมุนจะถูกนำไปใช้กับทุกหน้า ส่วนมุมของพารามิเตอร์อาจเป็น 90, 180, หรือ 270 หากนำหน้าด้วย + หรือ - มุมจะถูกเพิ่มหรือลบออกจากการหมุนเดิมของหน้าเว็บที่ระบุ มิฉะนั้นการหมุนหน้า 'จะถูกตั้งค่าที่แน่นอน ตัวอย่างเช่นคำสั่งqpdf in.pdf out.pdf --rotate=+90:2,4,6 --rotate=180:7-8จะหมุนหน้า 2, 4 และ 6 90 องศาตามเข็มนาฬิกาจากการหมุนเดิมและบังคับให้หมุนหน้า 7 ถึง 9 ถึง 180 องศาโดยไม่คำนึงถึงการหมุนดั้งเดิมและคำสั่งqpdf in.pdf out.pdf --rotate=180จะหมุนหน้าทั้งหมด 180 องศา


3
การระบุช่วงหน้าดูเหมือนว่าจะบังคับอย่างน้อยในเวอร์ชัน qpdf ปัจจุบันของฉัน (8.0.2)
Xtreme Biker

6

เพื่อปรับปรุงความละเอียดเอาต์พุต (ค่าเริ่มต้นคือ 72 DPI) ฉันได้ผลลัพธ์ที่ดีด้วย:

convert -rotate -90 -density 200 input.pdf output.pdf

นี่เป็นไฟล์. pdf ของเอกสารที่สแกน ฉันพบว่ามีคุณภาพลดลงบ้างเมื่อเทียบกับ-density 300-density 200


การเพิ่มความหนาแน่น 300, 600 และแม้กระทั่ง 1200 นั้นมีการปรับปรุงคุณภาพผลผลิตเพียงเล็กน้อยเท่านั้น
JohnMudd

1

แม้ว่ามันจะมีข้อ จำกัด แต่ฉันก็มักจะใช้ PDFedit โดยเฉพาะอย่างยิ่งสำหรับการหมุนของการสแกน PDF ในขณะที่การแปลงของ ImageMagick (โดยใช้ค่าความหนาแน่นค่อนข้างสูง) จะได้คุณภาพที่ค่อนข้างดี แต่ก็ยังขยายไฟล์ (ดั้งเดิม: 155 kiB, สำเนาที่หมุนได้ 180 °: 1.2 MiB) PDFedit จะหมุนภาพเดียวกันด้วยคุณภาพที่ไม่เปลี่ยนแปลงโดยไม่เปลี่ยนแปลงขนาดไฟล์อย่างเห็นได้ชัด


ฟังดูมีแนวโน้มมาก! ฉันยังสังเกตเห็นปัญหาด้วยการเปลี่ยนขนาดไฟล์อย่างมากที่คุณอ้างถึง
Trevor Boyd Smith

0

ฉันใช้คำสั่งนี้เพื่อหมุนไฟล์ pdf โดยอัตโนมัติเพื่อให้ตั้งตรงถ้าไม่ตรงในตอนแรก:

gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -dAutoRotatePages=/All -sOutputFile="$outputFile" "$file"

สิ่งนี้มีผลเป็นศูนย์
Colin 't Hart

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