页面“x”可能过于复杂而无法打印错误

页面“x”可能过于复杂而无法打印错误

当我使用命令dvipdf dummy.dvi将其从 dvi 转换为 pdf 时,某些页面“x”出现此错误。有人能帮我解决这个问题吗?

答案1

错误消息由dvips(文件scanpage.c)生成:

endofpage:
   if (fontmem > pagecost)
      return(1);
   if (pagecount > 0) {
      return(0);
    }  /* IBM: color */
#ifdef SHORTINT
      fprintf(stderr, "Page %ld may be too complex to print\n", pagenum);
#else   /* ~SHORTINT */
      fprintf(stderr, "Page %d may be too complex to print\n", pagenum);
#endif  /* ~SHORTINT */
/*
 *   This case should be rare indeed.  Even with only 200K of virtual memory,
 *   at 11 bytes per char, you can have 18K characters on a page.
 */
   return(2);

您可以尝试增加内存。它在文件(TDS:dvips/config/config.ps)dvips中配置:config.ps

%   /Times-Roman findfont 30 scalefont setfont 144 432 moveto
%   vmstatus exch sub 40 string cvs show pop showpage
% to determine this number. (It will be the only thing printed.)
m 3500000

来自dvips 文档

`m 数量'

将 num 声明为打印机中可用于字体和字符串的内存。默认值为 180000。如果要使内存节约和文档拆分正常工作,此值必须准确。要确定此值,请将以下文件发送到打印机:

%! Hey, we're PostScript
/Times-Roman findfont 30 scalefont setfont 144 432 moveto
vmstatus exch sub 40 string cvs show pop showpage

此文件打印的数字是总可用内存;通常最好告诉 Dvips 打印机的内存略少,因为许多程序会下载永久宏,从而减少打印机的内存。某些系统或打印机可以动态增加 PostScript 解释器可用的内存,在这种情况下,此文件可能会返回一个非常低的数字;例如,NeXT 计算机和 Ghostscript。在这些情况下,一百万的值就可以了。

相关内容