GNU/Linux >> Belajar Linux >  >> Linux

Mengonversi PDF ke CMYK (dengan identifikasi mengenali CMYK)

Oke, ini ada sesuatu, setidaknya...

Awalnya, saya memerlukan ini sebagai cara untuk memastikan bahwa file PDF saya dalam CMYK, dan memiliki teks sebagai "hitam polos" C:0, M:0, Y:0, K:100 - karena saya mengalami masalah dengan printer sebelumnya, di mana mereka akan mengeluh tentang PDF Lateks saya yang berisi "hitam kaya" untuk teks (yang karenanya lebih mahal). Dan saya biasanya menggunakan identify karena tampaknya menjadi satu-satunya alat yang dapat mengurai PDF dan warna (dan juga relatif mudah diingat).

Yah, saya membaca Tip Teknologi:Menggunakan Ghostscript untuk Mengonversi dan Menggabungkan File | Jurnal Linux; di mana disarankan untuk menggunakan tiffsep perangkat gs untuk memperoleh pemisahan. Dan ini bagi saya memenuhi peran yang sama dengan identify; Saya hanya bisa melakukan:

$ gs -sDEVICE=tiffsep -dNOPAUSE -dBATCH -dSAFER -r150x150 -sOutputFile=p%08d.tif test.pdf 

$ ls p*
p00000001.Black.tif  p00000001.Magenta.tif  p00000001.Yellow.tif  p00000001.Cyan.tif   p00000001.tif

$ eog p00000001.tif

... dan kemudian saya bisa 'berulang' melalui gambar pemisahan menggunakan panah kiri/kanan - dan segera terlihat jelas apakah itu 'hitam polos' atau 'hitam kaya'.

Jadi ini menunjukkan bahwa, terlepas dari apa identify menunjukkan, test.pdf dari pdflatex sebenarnya memiliki 'hitam polos' sebagai warna teks, seperti yang seharusnya (pemisahan lainnya kosong) - namun, melakukan sesuatu seperti:

# do a conversion of original PDF
$ gs -dPDFA -dBATCH -dNOPAUSE -dNOOUTERSAVE -dUseCIEColor -sProcessColorModel=DeviceCMYK -sDEVICE=pdfwrite -sOutputFile=out_pdfa.pdf test.pdf

# do a separation on the converted pdf
$ gs -sDEVICE=tiffsep -dNOPAUSE -dBATCH -dSAFER -r150x150 \
  -dFirstPage=1 -dLastPage=1 -sOutputFile=p%08d.tif out_pdfa.pdf

# view
$ eog p00000001.tif

... akan mengungkapkan bahwa out_pdfa.pdf tertentu sebenarnya memiliki 'hitam kaya' - yaitu tinta untuk teks melewati keempat pemisahan! (identify juga menunjukkan yang ini sebagai RGB juga).

Jadi, saya harap gs/tiffsep ini teknik lebih dapat diandalkan daripada identify :)

Catatan:Saya menggunakan Ubuntu Natty, yang mengirimkan GhostScript 9.01 - namun, yang satu ini memiliki bug jahat dengan tiffsep :Bug 691857 – tiffsep macet di Versi 9 (lab.icc hilang). Itu telah diperbaiki untuk 9.02 - dan 9.02 telah dirilis sebagai ghostscript di oneiric. Untuk menggunakan 9.02 di bawah Natty, saya mengikuti cara memperbarui satu paket menggunakan apt-get? - Forum Ubuntu:

sudo nano /etc/apt/sources.list # add deb http://archive.ubuntu.com/ubuntu/ oneiric main restricted
sudo apt-get update
sudo apt-get install ghostscript # this upgrades only gs and dependencies 
sudo nano /etc/apt/sources.list  # remove/comment oneiric repo
sudo apt-get update && sudo apt-get upgrade # should be back to normal here

Perhatikan bahwa dengan versi buggy 9.01, perintah ini pun akan gagal:

$ GS_LIB=/usr/share/ghostscript/9.01/iccprofiles/ gs -sICCProfilesDir=/usr/share/ghostscript/9.01/iccprofiles/ -sDEVICE=tiffsep -dNOPAUSE -dBATCH -dSAFER -sOutputFile=p%08d.tif out_pdfa.pdf

...
sfopen: gs_parse_file_name failed.
sfopen: gs_parse_file_name failed.
... gsicc_open_search(): Could not find lab.icc ...

.. dan dengan 9.02, tidak perlu menentukan sICCProfilesDir secara eksplisit.


sdaau, perintah yang Anda gunakan untuk mengonversi PDF ke CMYK salah. Coba yang ini saja:

 gs \
   -o test-cmyk.pdf \
   -sDEVICE=pdfwrite \
   -sProcessColorModel=DeviceCMYK \
   -sColorConversionStrategy=CMYK \
   -sColorConversionStrategyForImages=CMYK \
    test.pdf 

Perbarui

Jika konversi warna tidak berfungsi seperti yang diinginkan dan jika Anda melihat pesan seperti "Tidak dapat mengonversi ruang warna menjadi Abu-abu, kembalikan strategi ke LeaveColorUnchanged" lalu...

  1. Ghostscript Anda mungkin adalah rilis yang lebih baru dari seri versi 9.x , dan
  2. PDF sumber Anda kemungkinan besar menggunakan profil warna ICC tersemat

Dalam hal ini tambahkan -dOverrideICC ke baris perintah dan lihat apakah hasilnya berubah seperti yang diinginkan.

Perbarui 2

Untuk menghindari artefak JPEG muncul di gambar (yang sebelumnya tidak ada), tambahkan:

-dEncodeColorImages=false

ke dalam baris perintah.

(Hal ini berlaku untuk hampir semua GS PDF->PDF pengolahan, bukan hanya untuk kasus ini. Karena GS secara default membuat file yang benar-benar baru dengan objek yang baru dibangun dan struktur file baru ketika diminta untuk menghasilkan keluaran PDF - itu tidak hanya menggunakan kembali objek sebelumnya, sebagai prosesor PDF yang lebih "bodoh" seperti pdftk apakah {pdftk memiliki kelebihan lain, jangan salah paham dengan pernyataan saya!} . GS menerapkan kompresi JPEG secara default -- lihat dokumentasi Ps2pdf saat ini dan telusuri "ColorImageFilter" untuk mempelajari detail lebih lanjut...)


Saya memiliki masalah yang tidak terkait tetapi saat ini saya juga kesulitan dengan PDF CMYK.

Saya menulis skrip kecil ini di sini (disebut pdf2pdfx):

#!/bin/bash

gs \
-dPDFX \
-dBATCH \
-dNOPAUSE \
-dNOOUTERSAVE \
-sDEVICE=pdfwrite \
-sColorConversionStrategy=CMYK \
-dProcessColorModel=/DeviceCMYK \
-dPDFSETTINGS=/prepress \
-sOutputFile="${1%%.pdf}_X-3.pdf" \
PDFX_def.ps \
"$1"

dan PDFX_def.ps saya berisi yang berikut ini (saya menghapus profil ICC dan menentukan FOGRA39, seharusnya tidak masalah):

%!
% $Id$
% This is a sample prefix file for creating a PDF/X-3 document.
% Feel free to modify entries marked with "Customize".

% This assumes an ICC profile to reside in the file (ISO Coated sb.icc),
% unless the user modifies the corresponding line below.

systemdict /ProcessColorModel known {
  systemdict /ProcessColorModel get dup /DeviceGray ne exch /DeviceCMYK ne and
} {
  true
} ifelse
{ (ERROR: ProcessColorModel must be /DeviceGray or DeviceCMYK.)=
  /ProcessColorModel cvx /rangecheck signalerror
} if

% Define entries to the document Info dictionary :

% /ICCProfile (/usr/share/color/icc/ISOcoated_v2_300_eci.icc) def  % Customize or remove.

[ /GTS_PDFXVersion (PDF/X-3:2002) % Must be so (the standard requires).
  /Title (Title)                  % Customize.
  /Trapped /False                 % Must be so (Ghostscript doesn't provide other).
  /DOCINFO pdfmark

% Define an ICC profile :

currentdict /ICCProfile known {
  [/_objdef {icc_PDFX} /type /stream /OBJ pdfmark
  [{icc_PDFX} <</N systemdict /ProcessColorModel get /DeviceGray eq {1} {4} ifelse >> /PUT pdfmark
  [{icc_PDFX} ICCProfile (r) file /PUT pdfmark
} if

% Define the output intent dictionary :

[/_objdef {OutputIntent_PDFX} /type /dict /OBJ pdfmark
[{OutputIntent_PDFX} <<
  /Type /OutputIntent              % Must be so (the standard requires).
  /S /GTS_PDFX                     % Must be so (the standard requires).
  /OutputCondition (Commercial and specialty printing) % Customize
  /Info (none)                     % Customize
  /OutputConditionIdentifier (FOGRA39)      % Customize
  /RegistryName (http://www.color.org)   % Must be so (the standard requires).
  currentdict /ICCProfile known {
    /DestOutputProfile {icc_PDFX}  % Must be so (see above).
  } if
>> /PUT pdfmark
[{Catalog} <</OutputIntents [ {OutputIntent_PDFX} ]>> /PUT pdfmark

Identifikasi lalu laporkan ruang warna CMYK dengan benar. Sebelum:

[email protected] ~/orpheus/werbung/action $ identify -verbose action_schulungsvideo_v3_print.pdf
Image: action_schulungsvideo_v3_print.pdf
  Format: PDF (Portable Document Format)
  Class: DirectClass
  Geometry: 612x859+0+0
  Resolution: 72x72
  Print size: 8.5x11.9306
  Units: Undefined
  Type: TrueColor
  Endianess: Undefined
  Colorspace: RGB
  Depth: 16/8-bit
  Channel depth:
    red: 8-bit
    green: 8-bit
    blue: 8-bit
  Channel statistics:
    Red:
      min: 0 (0)
      max: 65535 (1)
      mean: 53873.6 (0.822058)
      standard deviation: 19276.7 (0.294144)
      kurtosis: 1.854
      skewness: -1.82565
    Green:
      min: 0 (0)
      max: 65535 (1)
      mean: 55385.6 (0.84513)
      standard deviation: 19274.6 (0.294112)
      kurtosis: 2.09868
      skewness: -1.91651
    Blue:
      min: 0 (0)
      max: 65535 (1)
      mean: 51020 (0.778516)
      standard deviation: 20077.7 (0.306367)
      kurtosis: 0.860627
      skewness: -1.52344
  Image statistics:
    Overall:
      min: 0 (0)
      max: 65535 (1)
      mean: 53426.4 (0.815235)
      standard deviation: 19546.7 (0.298263)
      kurtosis: 1.59453
      skewness: -1.75701
  Rendering intent: Undefined
  Interlace: None
  Background color: white
  Border color: rgb(223,223,223)
  Matte color: grey74
  Transparent color: black
  Compose: Over
  Page geometry: 612x859+0+0
  Dispose: Undefined
  Iterations: 0
  Compression: Undefined
  Orientation: Undefined
  Properties:
    date:create: 2011-09-14T15:38:57+02:00
    date:modify: 2011-09-14T15:38:57+02:00
    pdf:HiResBoundingBox: 612.283x858.898+0+0
    pdf:Version: PDF-1.5 
    signature: 210bfc9cf90e3b9505385f8b2267da1665b5c2de28bb5223311afba01718bbeb
  Artifacts:
    verbose: true
  Tainted: False
  Filesize: 1.577MBB
  Number pixels: 526KB
  Pixels per second: 52.57MB
  User time: 0.020u
  Elapsed time: 0:01.009
  Version: ImageMagick 6.6.5-6 2011-04-08 Q16 http://www.imagemagick.org

setelah:

[email protected] ~/orpheus/werbung/action $ pdf2pdfx action_schulungsvideo_v3_print.pdf
GPL Ghostscript 9.04 (2011-08-05)
Copyright (C) 2011 Artifex Software, Inc.  All rights reserved.
This software comes with NO WARRANTY: see the file PUBLIC for details.
Processing pages 1 through 1.
Page 1


[email protected] ~/orpheus/werbung/action $ identify -verbose action_schulungsvideo_v3_print_X-3.pdf 
Image: action_schulungsvideo_v3_print_X-3.pdf
  Format: PDF (Portable Document Format)
  Class: DirectClass
  Geometry: 612x859+0+0
  Resolution: 72x72
  Print size: 8.5x11.9306
  Units: Undefined
  Type: ColorSeparation
  Base type: ColorSeparation
  Endianess: Undefined
  Colorspace: CMYK
  Depth: 16/8-bit
  Channel depth:
    cyan: 8-bit
    magenta: 8-bit
    yellow: 8-bit
    black: 8-bit
  Channel statistics:
    Cyan:
      min: 0 (0)
      max: 65535 (1)
      mean: 8331.78 (0.127135)
      standard deviation: 14902.2 (0.227392)
      kurtosis: 1.62171
      skewness: 1.7799
    Magenta:
      min: 0 (0)
      max: 62194 (0.94902)
      mean: 6739.34 (0.102836)
      standard deviation: 14517.5 (0.221523)
      kurtosis: 2.08183
      skewness: 1.93276
    Yellow:
      min: 0 (0)
      max: 65535 (1)
      mean: 13310.1 (0.203098)
      standard deviation: 17022.5 (0.259746)
      kurtosis: 0.991135
      skewness: 1.45216
    Black:
      min: 0 (0)
      max: 56540 (0.862745)
      mean: 7117.47 (0.108606)
      standard deviation: 16803.7 (0.256408)
      kurtosis: 3.02752
      skewness: 2.16554
  Image statistics:
    Overall:
      min: 0 (0)
      max: 65535 (1)
      mean: 8874.66 (0.135419)
      standard deviation: 15850.6 (0.241864)
      kurtosis: 2.17614
      skewness: 1.88139
  Total ink density: 292%
  Rendering intent: Undefined
  Interlace: None
  Background color: white
  Border color: cmyk(223,223,223,0)
  Matte color: grey74
  Transparent color: black
  Compose: Over
  Page geometry: 612x859+0+0
  Dispose: Undefined
  Iterations: 0
  Compression: Undefined
  Orientation: Undefined
  Properties:
    date:create: 2011-09-14T15:39:30+02:00
    date:modify: 2011-09-14T15:39:30+02:00
    pdf:HiResBoundingBox: 612.28x858.9+0+0
    pdf:Version: PDF-1.3 
    signature: 0416db7487ea147b974ece5748bc4284e82bfc3fb7cd07a4de050421ba112076
  Artifacts:
    verbose: true
  Tainted: False
  Filesize: 2.103MBB
  Number pixels: 526KB
  Pixels per second: 5.25708PB
  User time: 0.000u
  Elapsed time: 0:01.000
  Version: ImageMagick 6.6.5-6 2011-04-08 Q16 http://www.imagemagick.org

Ini di Gentoo 64bit dengan gs 9.04Mungkin itu bisa membantu?

Sumber PDF berasal dari ekspor inkscape pdf, warna dibatasi untuk warna yang tercakup dalam lapisan ISO ECI v2. Saya menggunakan ini sebagai solusi untuk kurangnya ekspor CMYK dari inkscape dan kurangnya keluaran PDF/X pra-cetak...


Linux
  1. Kecilkan ukuran PDF dengan trik baris perintah ini

  2. Menambal Biner Dengan Dd?

  3. Kompres file PDF di Linux dengan Densify

  1. Pisahkan PDF dengan Bookmark?

  2. Optimalkan file PDF (dengan Ghostscript atau lainnya)

  3. Gabungkan file pdf dengan pengurutan numerik

  1. Bagaimana cara mengubah PDF menjadi JPG dengan baris perintah di Linux?

  2. Pembaca PDF dengan layar terpisah untuk Linux

  3. sshfs Koneksi diatur ulang oleh rekan dengan file identifikasi