PDFMarks 初始视图放大到 FitPage

Posted

技术标签:

【中文标题】PDFMarks 初始视图放大到 FitPage【英文标题】:PDFMarks Initial View Magnification to FitPage 【发布时间】:2016-07-06 23:38:11 【问题描述】:

我正在使用 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】:

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

Fit 使用 CropBox 来确定缩放比例,并且您没有指定 CropBox,因此除非您的其他 PostScript 这样做,否则不会有一个。您提到的其他选项可能存在类似问题。

PUT pdfmark 也不正确,“&lt;&gt;”应该是“&lt;&lt;”。

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

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

PSFitPage 如果您不指定固定的媒体大小(您没有指定),则不会做任何有用的事情。

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

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

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

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

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

【讨论】:

以上是关于PDFMarks 初始视图放大到 FitPage的主要内容,如果未能解决你的问题,请参考以下文章

放大和缩小时的Mapkit注释类型?

arcmap布局视图下,怎么只放大数据而不放大页面?

solidworks如何画装配体剖视图展视内部结构

如何在路由器上注册单个视图(不是视图集)?

JAVA:放大/缩小时,圆圈被绑定到图像视图中的一个位置

mapkit 地图视图幻灯片滑动到并放大效果?