模仿Adobe Acrobats“;“打印成PDF格式”;使用鬼影脚本

模仿Adobe Acrobats“;“打印成PDF格式”;使用鬼影脚本,pdf,pdf-generation,ghostscript,Pdf,Pdf Generation,Ghostscript,我正在编写一个批处理文件,以模拟使用Acrobat打开文件夹中的每个PDF并打印为PDF的手动任务 手动任务的目标是获得统一的8-1/2 x 11页面大小,以及扁平的压缩文件大小 到目前为止,我所写的工作还不错,但是在一些较大的PDF上,脚本的结果比打印到PDF的结果要大得多 以下是我到目前为止的情况: ECHO attempting compression subroutine... >>"%log%" cd %GS_DIR% gswin64c.exe ^ -o "%dr

我正在编写一个批处理文件,以模拟使用Acrobat打开文件夹中的每个PDF并打印为PDF的手动任务

手动任务的目标是获得统一的8-1/2 x 11页面大小,以及扁平的压缩文件大小

到目前为止,我所写的工作还不错,但是在一些较大的PDF上,脚本的结果比打印到PDF的结果要大得多

以下是我到目前为止的情况:

 ECHO attempting compression subroutine... >>"%log%"
 cd %GS_DIR%

gswin64c.exe ^
  -o "%drive%%filepath%%name%-c.pdf"       ^
  -sDEVICE=pdfwrite                        ^
  -sPAPERSIZE=letter                       ^
  -dFitPage                                ^
  -dCompressPages=true                     ^
  -dCompressFonts=true                     ^
  -dDownsampleColorImages=true             ^
  -dDownsampleGrayImages=true              ^
  -dDownsampleMonoImages=true              ^
  -dColorImageResolution=300               ^
  -dGrayImageResolution=300                ^
  -dMonoImageResolution=300                ^
  -dColorImageDownsampleThreshold=1.0      ^
  -dGrayImageDownsampleThreshold=1.0       ^
  -dMonoImageDownsampleThreshold=1.0       ^
  -dProcessColorModel=/DeviceGray          ^
  -dColorConversionStrategy=/Gray          ^
  -dColorConversionStrategyForImages=/Gray ^
  -dCompatibilityLevel=1.4                 ^
  -dEmbedAllFonts=false                    ^
  -c ".setpdfwrite <</AlwaysEmbed [ ] /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] /ColorImageFilter /DCTEncode /GrayImageFilter /DCTEncode /MonoImageFilter /CCITTFaxEncode /OutputICCProfile (None)>> setdistillerparams" ^
  -f %fullpath%

ECHO compression complete, cleaning up files... >>"%log%"

有没有更好的参数来模拟打印到PDF行为的想法?

不要设置任何参数。默认值被选择为正常,添加任何其他内容都会迫使代码进行额外的检查,并可能进行额外的工作(例如对图像进行下采样),这需要时间。当然,由于您这样做似乎是为了减小文件大小,这对您来说可能是一个重要参数,但这会降低您的性能…您还(例如)将所有内容转换为灰色,这意味着检查和更改每个图像的每个像素,这真的很令人惊讶吗?将PDF打印成PDF,或者称为“refring”,可能是实现目标的最糟糕方式。你最好使用一个真正的PDF API来实现这一点。他不是真的在打印它,而是通过一个PDF解释器来运行它,使用一系列命令来改变内容的各个方面,然后以PDF格式发布。虽然我并不特别认为这是个好主意,但它并不是真正的“打印”。为了了解为什么文件比“打印到PDF”大(你真的是从Acrobat打印到虚拟打印机吗?)我们需要更多地了解“打印到PDF”的配置方式,至少需要一个示例问题文件来查看。不要设置任何参数。默认值被选择为正常,添加任何其他内容都会迫使代码进行额外的检查,并可能进行额外的工作(例如对图像进行下采样),这需要时间。当然,由于您这样做似乎是为了减小文件大小,这对您来说可能是一个重要参数,但这会降低您的性能…您还(例如)将所有内容转换为灰色,这意味着检查和更改每个图像的每个像素,这真的很令人惊讶吗?将PDF打印成PDF,或者称为“refring”,可能是实现目标的最糟糕方式。你最好使用一个真正的PDF API来实现这一点。他不是真的在打印它,而是通过一个PDF解释器来运行它,使用一系列命令来改变内容的各个方面,然后以PDF格式发布。虽然我并不特别认为这是个好主意,但它并不是真正的“打印”。为了了解为什么文件比“打印到PDF”大(你真的是从Acrobat打印到虚拟打印机吗?)我们需要更多地了解“打印到PDF”的配置方式,至少需要一个示例问题文件来查看。
Can't find (or can't open) font file %rom%Resource/Font/ArialMT.
Can't find (or can't open) font file ArialMT.
Can't find (or can't open) font file %rom%Resource/Font/ArialMT.
Can't find (or can't open) font file ArialMT.
Querying operating system for font files...
Didn't find this font on the system!
Substituting font Helvetica for ArialMT.
Loading NimbusSanL-Reg font from %rom%Resource/Font/NimbusSanL-Reg... 4826216 3500251 7703168 6115407 3 done.
Can't find (or can't open) font file %rom%Resource/Font/Arial-BoldMT.
Can't find (or can't open) font file Arial-BoldMT.
Can't find (or can't open) font file %rom%Resource/Font/Arial-BoldMT.
Can't find (or can't open) font file Arial-BoldMT.
Didn't find this font on the system!
Substituting font Helvetica-Bold for Arial-BoldMT.
Loading NimbusSanL-Bol font from %rom%Resource/Font/NimbusSanL-Bol... 5025328 3699533 7797072 6194808 3 done.