แปลง PDF เป็น PDF / A หรือไม่


11

ให้ PDF ของแหล่งกำเนิดแบบสุ่มฉันจะทำอย่างไรบน Linux:

  • ยืนยันว่าอยู่ในรูปแบบ PDF / Aหรือไม่?
  • หากไม่ได้อยู่ในรูปแบบ PDF / A ให้แปลงเป็น PDF / A ด้วยการสูญเสียความเที่ยงตรงขั้นต่ำใช่หรือไม่

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

คำตอบ:


9

บัตรประจำตัว

ฉันพบเครื่องมือนี้ซึ่งดูเหมือนจะเป็นสิ่งที่คุณสามารถใช้เพื่อระบุไฟล์ PDF / A มันเรียกว่าDROID (Record ดิจิตอลและวัตถุ Identification) มันขึ้นอยู่กับ Java และสามารถเรียกใช้จาก GUI หรือบรรทัดคำสั่ง

สิ่งที่สกัดมา

DROID เป็นเครื่องมือซอฟต์แวร์ที่พัฒนาโดย The National Archives เพื่อทำการระบุแบทช์อัตโนมัติของรูปแบบไฟล์ พัฒนาโดย Digital Preservation Department ซึ่งเป็นส่วนหนึ่งของกิจกรรมการอนุรักษ์ดิจิทัลที่กว้างขึ้น DROID ได้รับการออกแบบมาเพื่อตอบสนองความต้องการพื้นฐานของพื้นที่เก็บข้อมูลดิจิตอลใด ๆ เพื่อให้สามารถระบุรูปแบบที่แม่นยำของวัตถุดิจิทัลที่เก็บไว้ทั้งหมดและเชื่อมโยง ข้อมูลทางเทคนิคเกี่ยวกับรูปแบบนั้นและการอ้างอิง

ได้รับการสนับสนุนจากหอจดหมายเหตุแห่งชาติฉันคิดว่ามันเป็นเครื่องมือที่เหมาะสมสำหรับการทำเช่นนี้เนื่องจากวัตถุประสงค์ที่กำหนดในรูปแบบ PDF / A นอกจากนี้ยังมีโครงการเปิดแหล่งที่มาและรหัสที่มีอยู่ใน Githubเช่นเดียวกับที่บรรจุในรูปแบบไบนารีจากเว็บไซต์ของหอจดหมายเหตุแห่งชาติ

การตรวจสอบและการแปลง

หากคุณกำลังมองหาเครื่องมือในการตรวจสอบและแปลงผมเชื่อว่าPDFBoxสามารถทำได้ PDFBox แสดงรายการการตรวจสอบ PDF / ขวาบนหน้าแรกของเว็บไซต์ของพวกเขา เป็นอีกแอปพลิเคชัน Java 8-)

ตัดตอนมาจากเว็บไซต์

การ
ตรวจสอบPDF / A ตรวจสอบ PDF กับมาตรฐาน PDF / A ISO

ใต้ส่วนเครื่องมือบรรทัดคำสั่งทางด้านซ้ายของหน้าหลักแสดงการใช้งานต่อไปนี้สำหรับเครื่องมือ:

$ java -jar pdfbox-app-x.y.z.jar org.apache.pdfbox.ConvertColorspace [OPTIONS] <inputfile> <outputfile>

veraPDFเป็นอีกเครื่องมือหนึ่งที่สามารถตรวจสอบ PDF / A; มันเป็นส่วนหนึ่งของชุดเครื่องมืออ้างอิงของ Open Preservation Foundation นอกจากนี้ยังเป็นแอปพลิเคชัน Java

การแปลง

สำหรับการแปลงข้อมูลฉันพบวิธีนี้จากโพสต์ในบล็อกชื่อ: วิธีแปลง PDF ที่มีอยู่เป็น PDF / Aซึ่งใช้เครื่องมือต่อไปนี้:

  • Ghostscript 8.64 เท่านั้น
  • PDFBox 0.7.3
  • pdfmarks (ไฟล์เพื่อจัดหาข้อมูลเมตาเพิ่มเติม)
  • PDFA_def.ps
  • USWebCoatedSWOP.icc

ด้วยคำสั่งข้างต้นคุณจะใช้คำสั่งต่อไปนี้:

$ gs -sDEVICE=pdfwrite -q -dNOPAUSE -dBATCH -dNOSAFER     \
-dPDFA -dUseCIEColor -sProcessColorModel=DeviceCMYK       \
-sOutputFile=Out_PDFA.pdf PDFA_def.ps pdfmarks IN_PDF.pdf

มันไม่ได้หากไม่มีหูด บทความกล่าวถึงหนึ่งในนั้นแก้ไขธงพิมพ์ในการเชื่อมโยงหลายมิติเป็นหนึ่งในพวกเขา บทความแสดงแอปพลิเคชัน Java ที่คุณสามารถใช้เพื่อแก้ไขปัญหาเหล่านี้:

$ java FixPrintFlag Out_PDFA.pdf New_verifiablePDFA.pdf

มันไม่สวย แต่ดูเหมือนจะใช้การได้ ดูบทความสำหรับรายละเอียดเพิ่มเติม

อ้างอิง


ฉันจะต้องลองดูนะ - มันดูดีมาก ๆ ด้วยการเล่นซอเล็ก ๆ น้อย ๆ มันอาจเป็นไปได้ที่จะรวมเข้ากับเครื่องพิมพ์ CUPS-PDF; มีการตั้งค่าใน /etc/cups/cups-pdf.conf ที่ดูมีแนวโน้มสำหรับวัตถุประสงค์นั้น ขอบคุณที่สละเวลา! ยังไม่ถึงตอนทดสอบเลยจริงๆ แต่ฉันจะกลับมาที่นี่อีก (หวังว่าพรุ่งนี้)
CVn

@ MichaelKjörling - ขอบคุณสำหรับคำถาม ฉันไม่เคยได้ยินเกี่ยวกับรูปแบบ PDF / A มาก่อนและเราต้องการสิ่งที่แน่นอนนี้ในที่ทำงาน ดังนั้นคุณช่วยให้ฉันดูเหมือนอัจฉริยะสำหรับการรู้เกี่ยวกับสิ่งนี้ตอนนี้ 8-)
slm

อะไรนะpdfmarks?
Andrew


1

สำหรับการระบุไฟล์คำสั่งfileมักเป็นประโยชน์ มันจะค้นหาไฟล์ของคุณเพื่อหาหมายเลขมายากลตัวระบุไฟล์ข้อมูลการเข้ารหัส ฯลฯ เพื่อให้ข้อมูลที่เป็นประโยชน์ใด ๆ

ในกรณีเฉพาะของไฟล์ PDF ผู้ใช้pdfinfoจะมีประโยชน์เป็นพิเศษ ในกรณีของฉันการกระจาย Gentoo มันถูกบรรจุด้วยpopplerไลบรารีการเรนเดอร์ PDF


1
pdfinfo -metaและxmpmeta/RDF/Description/conformanceดูเหมือนว่าจะบอกว่า PDF เป็น PDF / A (โหนดนั้นA) หรือไม่ (โหนดนั้นไม่มีอยู่หรือมีค่าอื่น ๆ ) มันเป็นการเริ่มต้น!
CVn

0

นี่คือสคริปต์บรรทัดคำสั่ง bash ที่ทำเช่นนั้น:

#!/bin/bash

pdf_input=$1
ps_output=${pdf_input%.*}.ps
pdfa_output=${pdf_input%.*}_a.pdf
pdftops $input $ps_output

gs -dPDFA -dBATCH -dNOPAUSE -dNOOUTERSAVE -dUseCIEColor -sProcessColorModel=DeviceCMYK -sDEVICE=pdfwrite -sPDFACompatibilityPolicy=1 -sOutputFile=$pdfa_output $ps_output

บันทึกในไฟล์ชื่อ pdf2pdfa.sh ที่อยู่ในเส้นทางของคุณจากนั้นเรียกมันว่า:

pdf2pdfa.sh input.pdf

มันจะสร้าง input_a.pdf


2
(1) โปรดอธิบายสิ่งนี้ (2) คือinputอะไร ฉันเห็นpdf_inputแต่มันคือinputอะไร (3) คุณควรอ้างอิงตัวแปรเชลล์ทุกครั้งยกเว้นว่าคุณไม่มีเหตุผลที่ดีและคุณแน่ใจว่าคุณรู้ว่าคุณกำลังทำอะไรอยู่ กรุณาอย่าตอบในความคิดเห็น; แก้ไข  คำตอบของคุณเพื่อให้ชัดเจนและสมบูรณ์ยิ่งขึ้น
G-Man กล่าวว่า 'Reinstate Monica'
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.