'EPSをPDFに変換するためのGhostScriptコマンドラインパラメータ'に対するこの回答では、Ghostscriptのデバイスのデフォルトの解像度pdfwrite
は720x720であると言われていますが、これは最初は信じられないほどでした。
Ghostscriptデバイスのデフォルトオプションを一覧表示する方法はありますか?
'EPSをPDFに変換するためのGhostScriptコマンドラインパラメータ'に対するこの回答では、Ghostscriptのデバイスのデフォルトの解像度pdfwrite
は720x720であると言われていますが、これは最初は信じられないほどでした。
Ghostscriptデバイスのデフォルトオプションを一覧表示する方法はありますか?
Ghostscriptは本格的なPostScriptインタープリターであるため、ページ要素の描画を引き起こさないが、内部状態を照会するPostScriptスニペットを送信することもできます。
ディスプレイのデフォルト設定を知りたい場合はgs some.pdf
、PDFを画面に表示するように要求するときに、次のことを試してみてください。
gs \
-c "currentpagedevice {exch ==only ( ) print == } forall"
Windowsでは、これは次のようになります。
gswin32c.exe ^
-c "currentpagedevice {exch ==only ( ) print == } forall"
/SomeName somevalue
結果は、現在の画面にページをレンダリングするために使用される設定を説明するペアのリストです。
これは、通常、ディスプレイがGhostscriptの出力を送信するデフォルトのデバイスであるためです。ここで、空のGhostscriptウィンドウがポップアップ表示されることに気付くかもしれません。これを閉じる必要があります。...ああ、ポップアップウィンドウを回避するためにいくつかのオプションを追加してみませんか?
gs \
-o /dev/null \
-dNODISPLAY \
-c "currentpagedevice {exch ==only ( ) print == } forall"
または、Windowsの場合:
gswin32c.exe ^
-o nul ^
-dNODISPLAY ^
-c "currentpagedevice {exch ==only ( ) print == } forall"
ただし、(意図せずに)出力デバイス設定を変更したため、これによりクエリの戻り値が変更されます。
gs -c "currentpagedevice {exch ==only ( ) print == } forall" | grep Resolution
結果:
HWResolution [86.5426483 86.5426483]
/.MarginsHWResolution [1152.0 1152.0]
これをと比較してください
gs \
-o /dev/null \
-dNODISPLAY \
-c "currentpagedevice {exch ==only ( ) print == } forall" \
| grep Resolution
結果:
/HWResolution [72.0 72.0]
/.MarginsHWResolution [72.0 72.0]
したがって、このトラップは避けてください。私は数年前にうまくそれに陥りました、そしてかなり長い間それにさえ気づいていませんでした...
ここで、PDF書き込みデバイスのデフォルト設定を照会する場合は、次のように実行します。
gs \
-o /dev/null \
-sDEVICE=pdfwrite \
-c "currentpagedevice {exch ==only ( ) print == } forall" \
| tee ghostscript-pdfwrite-default-pagedevice-settings.txt
これで、デバイスのすべての設定がpdfwrite
*.txtファイルに保存されます。そして、他のいくつかの興味深いGhostscriptデバイスでそれを繰り返してから、それらの詳細な違いをすべて比較することができます。
for _dev in \
pswrite ps2write pdfwrite \
tiffg3 tiffg4 tiff12nc tiff24nc tiff32nc tiff48nc tiffsep \
jpeg jpeggray jpegcmyk \
png16 png16m png256 png48 pngalpha pnggray pngmono; \
do \
gs \
-o /dev/null \
-sDEVICE=${_dev} \
-c "currentpagedevice {exch ==only ( ) print == } forall" \
| sort \
| tee ghostscript-${_dev}-default-pagedevice-settings.txt; \
done
たとえば、このようなデバイスの設定を比較することはかなり興味深いpswrite
ですps2write
(また、一方のデバイスで使用できるが、もう一方のデバイスでは使用できないパラメータを検出します)。
sdiff -sbB ghostscript-ps*write-default-pagedevice-settings.txt
アップデート:
ご想像のとおり、これはさまざまなGhostscriptバージョンを比較し、最近のリリースでさまざまなデバイスのデフォルト設定がどのように変更されたかを追跡するための優れた方法でもあります。これは、Ghostscriptに現在存在するすべての新しく実装されたカラープロファイルとICCサポートについて知りたい場合に特に興味深いものです。
-dict-
また、特定のキー値に対してのみ返されるのを避けるために、マクロの===
代わりに使用してください。辞書のように機能しますが、辞書の内容も印刷します。==
===
==
これがpdfwrite
デバイスの出力例です。Ghostscriptのデバイスは、 Adobe Acrobat Distillerpdfwrite
とほぼ同じ機能を提供することを目的としています(PostScriptを入力として受け入れるだけでなく、PDFも受け入れるという追加機能を備えているため、既存のPDFファイルを並べ替えて修復、改善することができますまたは他の方法でそれらを操作します)。したがって、Ghostscriptは、元のDistillerもサポートしているオペレーターのほとんどを尊重します。pdfdevice
setdistillerparams
gs \
-o /dev/null \
-sDEVICE=pdfwrite \
-c "currentpagedevice {exch ==only ( ) print === } forall" \
| sort
/%MediaDestination 0
/%MediaSource 0
/.AlwaysEmbed []
/.HWMargins [0.0 0.0 0.0 0.0]
/.IgnoreNumCopies false
/.LockSafetyParams false
/.MarginsHWResolution [720.0 720.0]
/.MediaSize [612.0 792.0]
/.NeverEmbed [/Courier /Courier-Bold /Courier-Oblique /Courier-BoldOblique /Helvetica /Helvetica-Bold /Helvetica-Oblique /Helvetica-BoldOblique /Times-Roman /Times-Bold /Times-Italic /Times-BoldItalic /Symbol /ZapfDingbats]
/ASCII85EncodePages false
/AllowIncrementalCFF false
/AllowPSRepeatFunctions false
/AlwaysEmbed []
/AntiAliasColorImages false [*]
/AntiAliasGrayImages false [*]
/AntiAliasMonoImages false [*]
/AutoFilterColorImages true
/AutoFilterGrayImages true
/AutoPositionEPSFiles true
/AutoRotatePages /PageByPage
/BeginPage {--.callbeginpage--}
/Binding /Left [*]
/BitsPerPixel 24
/BlueValues 256
/CalCMYKProfile (None) [*]
/CalGrayProfile (None) [*]
/CalRGBProfile (None) [*]
/CannotEmbedFontPolicy /Warning [*]
/CenterPages false
/ColorACSImageDict << /Blend 1 /VSamples [2 1 1 2] /QFactor 0.9 /HSamples [2 1 1 2] >>
/ColorConversionStrategy /LeaveColorUnchanged
/ColorImageDepth -1
/ColorImageDict << /Blend 1 /VSamples [2 1 1 2] /QFactor 0.9 /HSamples [2 1 1 2] >>
/ColorImageDownsampleThreshold 1.5
/ColorImageDownsampleType /Subsample
/ColorImageFilter /DCTEncode
/ColorImageResolution 150
/ColorValues 16777216
/Colors 3
/CompatibilityLevel 1.4
/CompressEntireFile false
/CompressFonts true
/CompressPages true
/ConvertCMYKImagesToRGB false
/ConvertImagesToIndexed true
/CoreDistVersion 5000
/CreateJobTicket false [*]
/DSCEncodingToUnicode []
/DefaultRenderingIntent /Default
/DetectBlends true [*]
/DetectDuplicateImages true
/DeviceGrayToK true
/DeviceLinkProfile ()
/DoNumCopies false
/DoThumbnails false [*]
/DocumentTimeSeq 0
/DocumentUUID ()
/DownsampleColorImages false
/DownsampleGrayImages false
/DownsampleMonoImages false
/EmbedAllFonts true
/EmitDSCWarnings false [*]
/EncodeColorImages true
/EncodeGrayImages true
/EncodeMonoImages true
/EncryptionR 0
/EndPage {--.callendpage--} [*]
/FirstObjectNumber 1
/FitPages false
/ForOPDFRead false
/GraphicICCProfile ()
/GraphicIntent 0
/GraphicsAlphaBits 1
/GrayACSImageDict << /Blend 1 /VSamples [2 1 1 2] /QFactor 0.9 /HSamples [2 1 1 2] >>
/GrayImageDepth -1
/GrayImageDict << /Blend 1 /VSamples [2 1 1 2] /QFactor 0.9 /HSamples [2 1 1 2] >>
/GrayImageDownsampleThreshold 1.5
/GrayImageDownsampleType /Subsample
/GrayImageFilter /DCTEncode
/GrayImageResolution 150
/GrayValues 256
/GreenValues 256
/HWResolution [720.0 720.0]
/HWSize [6120 7920]
/HaveCIDSystem false
/HaveTransparency true
/HaveTrueTypes true
/HighLevelDevice true
/ImageICCProfile ()
/ImageIntent 0
/ImageMemory 524288 [*]
/ImagingBBox null
/InputAttributes << 59 << /PageSize [612 792] >> 36 << /PageSize [649 918] >> 13 << /PageSize [595 842] >> 49 << /PageSize [354 499] >> 26 << /PageSize [2004 2835] >> 3 << /PageSize [792 1224] >> 62 << /PageSize [595 792] >> 39 << /PageSize [612 936] >> 16 << /PageSize [297 420] >> 52 << /PageSize [1460 2064] >> 29 << /PageSize [709 1001] >> 6 << /PageSize [2448 3168] >> 42 << /PageSize [396 612] >> 19 << /PageSize [105 148] >> 55 << /PageSize [516 729] >> 32 << /PageSize [2599 3677] >> 9 << /PageSize [1684 2384] >> 45 << /PageSize [1417 2004] >> 22 << /PageSize [1296 1728] >> 58 << /PageSize [612 1008] >> 35 << /PageSize [918 1298] >> 12 << /PageSize [842 1191] >> 48 << /PageSize [499 709] >> 25 << /PageSize [2835 4008] >> 2 << /PageSize [612 792] >> 61 << /PageSize [612 792] >> 38 << /PageSize [323 459] >> 15 << /PageSize [420 595] >> 51 << /PageSize [2064 2920] >> 28 << /PageSize [1001 1417] >> 5 << /PageSize [1585 2448] >> 64 << /PageSize [0 0 524287 524287] >> 41 << /PageSize [283 420] >> 18 << /PageSize [148 210] >> 54 << /PageSize [729 1032] >> 31 << /PageSize [354 499] >> 8 << /PageSize [2384 3370] >> 44 << /PageSize [2004 2835] >> 21 << /PageSize [864 1296] >> 57 << /PageSize [1224 792] >> 34 << /PageSize [1298 1837] >> 11 << /PageSize [1191 1684] >> 47 << /PageSize [709 1001] >> 24 << /PageSize [2592 3456] >> 1 << /PageSize [792 1224] >> 60 << /PageSize [612 792] >> 37 << /PageSize [459 649] >> 14 << /PageSize [595 842] >> 50 << /PageSize [2920 4127] >> 27 << /PageSize [1417 2004] >> 4 << /PageSize [1224 1585] >> 63 << /PageSize [792 1224] >> 40 << /PageSize [612 936] >> 17 << /PageSize [210 297] >> 53 << /PageSize [1032 1460] >> 30 << /PageSize [499 709] >> 7 << /PageSize [2016 2880] >> 43 << /PageSize [2835 4008] >> 20 << /PageSize [648 864] >> 56 << /PageSize [363 516] >> 33 << /PageSize [1837 2599] >> 10 << /PageSize [73 105] >> 46 << /PageSize [1001 1417] >> 23 << /PageSize [1728 2592] >> 0 << /PageSize [612.0 792.0] >> >>
/Install {--.callinstall--}
/InstanceUUID ()
/IsDistiller true
/KeyLength 0
/LZWEncodePages false
/Margins [0.0 0.0]
/MaxClipPathSize 12000
/MaxInlineImageSize 4000
/MaxPatternBitmap 0
/MaxSeparations 3
/MaxShadingBitmapSize 256000
/MaxSubsetPct 100
/MaxViewerMemorySize -1
/MonoImageDepth -1
/MonoImageDict << /K -1 >>
/MonoImageDownsampleThreshold 1.5
/MonoImageDownsampleType /Subsample
/MonoImageFilter /CCITTFaxEncode
/MonoImageResolution 300
/Name (pdfwrite)
/NeverEmbed [/Courier /Courier-Bold /Courier-Oblique /Courier-BoldOblique /Helvetica /Helvetica-Bold /Helvetica-Oblique /Helvetica-BoldOblique /Times-Roman /Times-Bold /Times-Italic /Times-BoldItalic /Symbol /ZapfDingbats]
/NoEncrypt ()
/NoT3CCITT false
/NumCopies null
/OPM 1
/OffOptimizations 0
/Optimize false [*]
/OutputAttributes << 0 << >> >>
/OutputDevice /pdfwrite
/OutputFile (/dev/null)
/OutputICCProfile (default_rgb.icc)
/OwnerPassword ()
/PDFA 0
/PDFACompatibilityPolicy 0
/PDFEndPage -1
/PDFStartPage 1
/PDFX false
/PDFXBleedBoxToTrimBoxOffset [0.0 0.0 0.0 0.0]
/PDFXSetBleedBoxToMediaBox true
/PDFXTrimBoxToMediaBoxOffset [0.0 0.0 0.0 0.0]
/PageCount 0
/PageDeviceName null
/PageOffset [0 0]
/PageSize [612.0 792.0]
/ParseDSCComments true
/ParseDSCCommentsForDocInfo true
/PatternImagemask false
/Permissions -4
/Policies << /PolicyReport {--dup-- /.LockSafetyParams --known-- {/setpagedevice --.systemvar-- /invalidaccess signalerror} --if-- --pop--} /PageSize 0 /PolicyNotFound 1 >>
/PreserveCopyPage true [*]
/PreserveDeviceN true
/PreserveEPSInfo true [*]
/PreserveHalftoneInfo false [*]
/PreserveOPIComments true [*]
/PreserveOverprintSettings true
/PreserveSMask true
/PreserveSeparation true
/PreserveTrMode true
/PrintStatistics false
/ProcessColorModel /DeviceRGB
/ProduceDSC true
/ProofProfile ()
/ReAssignCharacters true
/ReEncodeCharacters true
/RedValues 256
/RenderIntent 0
/RotatePages false
/SeparationColorNames []
/Separations false
/SetPageSize false
/SubsetFonts true
/TextAlphaBits 1
/TextICCProfile ()
/TextIntent 0
/TransferFunctionInfo /Preserve
/UCRandBGInfo /Preserve
/UseCIEColor false
/UseFastColor false
/UseFlateCompression true
/UsePrologue false [*]
/UserPassword ()
/WantsToUnicode true
/sRGBProfile (None) [*]
[*] ノート:
公式ドキュメントによると、現在Ghostscriptで使用されている次の設定(Adobe Acrobat Distillerでサポートされています)を設定して照会できますが、設定しても効果はありません。
/AntiAliasColorImages
/AntiAliasGrayImages
/AntiAliasMonoImages
/AutoPositionEPSFiles
/Binding
/CalCMYKProfile
/CalGrayProfile
/CalRGBKProfile
/CannotEmbedFontPolicy
/ConvertImagesToIndexed
/CreateJobTicket
/DetectBlends
/DoThumbnails
/EmitDSCWarnings
/EndPage
/ImageMemory
/LockDistillerParams
/Optimize
/PreserveCopyPage
/PreserveEPSInfo
/PreserveHalftoneInfo
/PreserveOPIComments
/sRGBProfile
/StartPage
/UsePrologue