Yo uso Mac OS X Snow Leopard. Tengo un PDF con campos de formulario, anotaciones y sellos en él. Me gustaría congelar (o "aplanar") ese PDF para que los campos del formulario no se puedan cambiar y las anotaciones / sellos ya no sean editables. Como realmente tengo muchos de estos archivos PDF, quiero hacer esto automáticamente en la línea de comandos.
Algunas cosas que he probado / considerado, con su grado de éxito:
- Abrir en Vista previa e Imprimir en archivo. Esto crea un PDF totalmente plano sin cambiar el tamaño del archivo. Sin embargo, la única forma de automatizar parece ser escribir un AppleScript basado en una interfaz de usuario poco convincente , que he estado tratando de evitar.
- Abra en Acrobat Pro y use una función de JavaScript para aplanar . Nuevamente, no estoy seguro de cómo automatizar esto en la línea de comando.
- Usar
pdftk
con laflatten
opción. Pero esto solo aplana los campos de formulario, no los sellos y otras anotaciones. - Uso
cupsfilter
que puede crear PDF desde muchos formatos de archivo. Depdftk
esta manera, solo se aplanaron los campos del formulario. - Use
cups-pdf
para conectar al servidor de impresión de la Mac y guardar un archivo PDF en lugar de imprimir. He utilizado la versión macports . El archivo resultante es plano pero enorme. Intenté esto en un archivo de 8 MB; ¡el PDF aplanado tenía 358 MB! Quizás esto se pueda combinar con una llamada ghostscript como en Ubuntu Consejo: Cómo reducir el tamaño del archivo PDF desde la línea de comandos .
Cualquier otra sugerencia sería apreciada.
Respuestas:
Intente usar
pdf2ps
yps2pdf
en sucesión. Es un poco engorroso, pero me ayudó a reducir mi documento de 30 MB a 17 MB. No tanto como me hubiera gustado, pero aún mejor. Se me ocurrió esta idea de un amigo que usó este método para deshacerse de los permisos de contraseña en un pdf.¡Espero que ayude!
fuente
pdf2ps file.pdf - | ps2pdf - file_flat.pdf
. El archivo pasó de 300K a 500K, que es un gran aumento porcentual, pero nada como el aumento del 4400%cups-pdf
que arrojó el método.pdf2ps -q -sOutputFile=- file.pdf | ps2pdf - file_flat.pdf
.brew install ghostscript
.Así que esto es lo que he estado usando últimamente. Creo que funcionalmente hace lo mismo que
pdf2ps file.pdf - | ps2pdf - file_flat.pdf
, pero parecía funcionar mejor para mí.fuente
Puede ser subopcional, pero ¿ha considerado encadenar cups-pdf con pdftk o cupsfilter? Como mencionó, cups-pdf producirá un archivo pdf plano y luego lo pasará a través de pdftk o cupsfilter para reducirlo a un tamaño aceptable.
Alternativamente, eche un vistazo a
/System/Library/Printers/Libraries/convert
Debería poder hacer algo comofuente
/System/Library/Printers/Libraries/convert
. Probécupsfilter
. Al convertir de PDF a PDF, no se realizó ningún cambio en el archivo. Al convertir de PDF a PS y luego a PDF, las anotaciones se perdieron.ADVERTENCIA: gs y pdf2ps | ps2pdf ¡NO aplanar archivos PDF!
El uso de gs o pdf2ps seguido de ps2pdf producirá un PDF de varias capas con el contenido bajo anotaciones presentes en forma original . Puede verificar esta falla en Vista previa usando Seleccionar todo, luego Copiar, luego Pegar en una ventana TextEdit (en modo de texto enriquecido). Verá el texto o los gráficos debajo de las anotaciones de redacción, por ejemplo. Esto es claramente muy malo si legalmente necesita que ese contenido desaparezca de la salida.
Una solución de trabajo
ImageMagick puede producir un PDF aplanado de varias páginas y calidad configurable con rásteres de cada página con el siguiente comando:
Este comando rasteriza document_original.pdf, crea una imagen basada en píxeles de cada página, a 150 DPI, y genera el resultado como document_flat.pdf.
Una nota sobre la calidad de imagen
Debido a la rasterización , produce un PDF no escalable (zoom y verá que el texto o las imágenes vectoriales originales se pixelan). Es probable que tenga un tamaño de archivo más grande a menos que el original tenga un contenido vectorial muy complejo como gráficos de dispersión de un millón de puntos.
Al cambiar la densidad , puede intercambiar archivos de mayor tamaño por una resolución más alta
Todo el texto se convertirá en píxeles sin formato en cada imagen de página. Los diagramas de texto y vectoriales son los que más sufren, así que experimente con el DPI hasta que obtenga archivos de salida utilizables.
fuente
Applescript es probablemente la mejor / más rápida forma de acceder a la línea de comando. Una vez que funciona, puede guardarlo como una aplicación y crear un alias en su shell de comandos para ejecutarlo. A partir de entonces, simplemente escriba su alias en la línea de comando.
fuente