แทนที่รูปภาพใน PDF โดยใช้บรรทัดคำสั่ง


11

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

ฉันได้อ่านเกี่ยวกับ poppler-utils และ pdftk แต่เท่าที่ฉันรู้แล้วเครื่องมือเหล่านี้ไม่อนุญาตให้แทนที่รูปภาพเป็น PDF


1
หากคุณพบคำตอบมันจะน่าสนใจจริง ๆ รู้ หลังจากแยกหน้า "ปัญหา" แล้วคุณสามารถใช้ ImageMagick เพื่อแทรกรูปภาพไปเป็นรูปอื่นแล้วแปลงกลับเป็น pdf: imagemagick.org/Usage/layers ด้วย: superuser.com/questions/614784/ …
Konstantinos

ขอบคุณ @pidosaurus ฉันมีตัวเลือกนี้เพิ่มขึ้น แต่ก็มีปัญหาใหญ่: มันหมายถึงการแปลง PDF (หรือหน้าลายเซ็น) เป็นภาพ มันเป็นปัญหาเพราะ PDF ที่ได้จะมีขนาดใหญ่กว่ามากและผู้ใช้ไม่สามารถเลือกข้อความที่จะคัดลอกและวางได้เช่นกัน
อีวาน

ค้นหาแปลงจาก imagemagick และอื่น ๆ ดังนั้นเครื่องมือที่ ooconv จาก openoffice (ตอนนี้ libreoffice จริง ๆ ) ให้ - ฉันเคยจ้างใครสักคนที่จะเขียน PPT เป็น PDF และสิ่งเหล่านี้เป็นเครื่องมือที่ใช้
คณิตศาสตร์

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

คำตอบ:


1

ตกลง ... ฉันคิดว่าpdflatexเป็นส่วนที่ขาดหายไปที่นี่

สหกรณ์กล่าวว่าเขาได้มองเข้าไปในและpoppler-utils ผมขอเพิ่มว่าpdftk pdfimagesเหล่านี้พร้อมกับpdflatexเป็นชิ้นส่วนของการแก้ปัญหา

pdfimages -f 4 -l 20 -j -png target.pdf imageroot

ในรหัสตัวอย่างข้างต้นpdfimages ลักษณ์ผ่านหน้า 4 ถึง 20 และสารสกัดจากภาพทั้งหมดลงในไฟล์ที่มีชื่อขึ้นต้น target.pdfimageroot

poppler-utilspdftotextให้ ฉันแนะนำ-layoutตัวเลือกที่ใช้งานได้ดีมากในการรักษาเอกสารที่มนุษย์อ่านได้

pdftotext -layout $1.pdf $1.txt

ข้อคัดค้านของ OP ต่อimagemagickวิธีแก้ปัญหาที่เสนอโดยpidosaurusคือรูปภาพไม่มีข้อความที่แตกได้ เมื่อยูทิลิตี้ที่ฉันระบุไว้ตอนนี้ OP จะมีรูปภาพทั้งหมดรวมถึงข้อความที่แยกออกมาทั้งหมดและหมายเลขหน้าและเนื้อหาจะยังคงอยู่ใน-layoutตัวเลือก OP สามารถระบุหน้าที่ถูกต้องของข้อความและโยนมันลงใน.texไฟล์ที่ลงท้ายด้วย%includegraphicsคำสั่งและอ้างถึงรูปภาพที่ถูกแทนที่ด้วยชื่อไฟล์ จากนั้นคุณpdflatexนี้และจบลงด้วย .pdf pdftkหน้าเดียวใหม่เพื่อแทรกลงในส่วนที่เหลือของเอกสารของคุณด้วย หากคุณรู้ว่าอยู่ที่ไหนในข้อความของภาพต้นฉบับที่อยู่คุณสามารถ%includegraphics [h]และรับภาพในสถานที่ที่เหมาะสม

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