วิธีทำให้ ghostscript ไม่ต้องล้างข้อมูลเมตาของ PDF


10

Ghostscript ลบข้อมูลเมตา PDF เช่นauthor, title, subjectฯลฯ ฉันจะบอก ghostscript ไม่ให้แตะข้อมูลเมตาได้อย่างไร ฉันเรียกมันดังนี้

gs \
  -dBATCH                    \
  -dNOPAUSE                  \
  -sOutputFile=<output_file> \
  -sDEVICE=pdfwrite          \
  -dPDFSETTINGS=/ebook       \
  <input_file>

ทำไมคุณใช้ Ghostscript อาจมีวิธีอื่นในการทำสิ่งที่คุณทำ เป็นเรื่องแปลกที่จะใช้ Ghostscript เมื่ออินพุตไม่ใช่ไฟล์ Postscript
Gilles 'หยุดความชั่วร้าย'

3
@Gilles เพื่อลดขนาดรูปภาพใน PDF และลดขนาดลง ฉันไม่คิดว่ามันแปลกที่จะใช้ PDF เป็นอินพุต เครื่องมือpdf2psเช่นการใช้ Ghostscript gsสำหรับการแปลงและถูกส่งมาพร้อมกับ
Marco

ตกลง Ghostscript ดูเหมือนจะเป็นวิธีปกติในการดาวน์โหลดภาพตัวอย่างในไฟล์ PDF เครื่องมือจัดการ PDF แบบเนทีฟโอเพนซอร์สดูเหมือนจะขาดความสำคัญในเรื่องนั้น นั่นหรือ ImageMagick ซึ่งดูเฉพาะรูปภาพและไม่สนใจข้อมูลเมตา PDF
Gilles 'SO- หยุดความชั่วร้าย'

2
ImageMagick ใช้ ghostscript สำหรับการประมวลผล PDF
Marco

@Gilles: "เป็นเรื่องปกติที่จะใช้ Ghostscript เมื่ออินพุตไม่ใช่ไฟล์ Postscript" - ไม่เลยกิลส์! ฉันใช้มันตลอดเวลาทุกวันเพื่อทำการประมวลผล PDF-> PDF
Kurt Pfeifle

คำตอบ:


6

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

INPUTPDF=<input_file>
OUTPUTPDF=<output_file>
TMPPDF=$(mktemp)
METADATA=$(mktemp)

# save metadata
pdftk "$INPUTPDF" dump_data_utf8 > "$METADATA"

# compress
gs                       \
  -q                     \
  -sOutputFile="$TMPPDF" \
  -sDEVICE=pdfwrite      \
  -dNOPAUSE              \
  -dBATCH                \
  -dPDFSETTINGS=/ebook   \
  "$INPUTPDF"

# restore metadata
pdftk "$TMPPDF" update_info_utf8 "$METADATA" output "$OUTPUTPDF"

# clean up
rm -f "$TMPPDF" "$METADATA"

แก้ไข:นี่คือข้อผิดพลาดใน Ghostscript ดูรายงานข้อบกพร่องและยืนยันว่าเรื่องนี้ไม่ควรจะเกิดขึ้น


pdftks dump_data (_utf8) ส่งออกฉลากภาษาจีนอย่างแท้จริง ฉันไม่พบฟอรัมสำหรับ pdftk เช่น :(
Stefan K.
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.