PDFMarks初始视图放大到FitPage

时间:2016-07-06 23:38:11

标签: pdf-generation ghostscript

我使用ghost脚本将我的postscript文件转换为PDF / A.

以下是生成PDF / A文件的命令

gs -q -dPDFA=2 -dBATCH -dNOPAUSE -dNOOUTERSAV -sProcessColorModel=DeviceGray \
   -sDEVICE=pdfwrite -dFastWebView=true -dPSFitPage  -dDOPDFMARKS \
   -sOutputFile=NewPDF.pdf PDFA_def.ps abc.ps pdfmarks

PDFMarks文件如下所示:

[ /Title (Document title)
  /DOCINFO pdfmark

[ /Page 1 /Title (COVER PAGE) /OUT pdfmark
[ /PageMode /UseOutlines /View [/FitPage]/Page 1 /DOCVIEW pdfmark
[ {Catalog} <</ViewerPreferences<</DisplayDocTitle true>>/PageLayout/OneColumn>> /PUT pdfmark

仍然在生成PDF / A时,放大属性设置为仅默认。我需要将它设置为FitPage。

我尝试过使用/ Fit,/ FitB,/ FitH等,但似乎都没有。

1 个答案:

答案 0 :(得分:2)

没有&{39; FitPage&#39;,使用此选项会导致Acrobat在打开生成的PDF文件时发出警告(Ghostscript不会尝试完全验证pdfmark操作数)

Fit使用CropBox来确定缩放,你还没有指定一个CropBox,所以除非你的其他PostScript这样做,否则就不会有一个。您提到的其他选项可能存在类似的问题。

PUT pdfmark也不正确,&#39; <>&#39;应该是&#39; <<&#39;。

您不需要(也不应该使用)-dNOOUTERSAVE

我不会使用-dFastWSebView,除非你有充分的理由,它只需要更长的时间来处理并生成一个更大的文件,这是没有充分理由的。

如果您没有指定固定的媒体尺寸(},则{p> PSFitPage不会做任何有用的事情。

您不需要-dDOPDFMARKS,仅用于PDF输入(并且无论如何都默认为true)。

如果您希望PDF / A文件为灰色,则应设置-sColorConversionStrategy=DeviceGray而不是插入ProcessColorModel

我使用了一个简单的空PostScript程序并添加了:

[ /PageMode /UseOutlines /View [/FitV] /Page 1 /DOCVIEW pdfmark

生成的PDF文件按预期显示。