sas输出到pdf而不覆盖它

时间:2015-01-16 03:01:34

标签: sas

我想将一些图表输出到现有的pdf(4页)。我需要在第5页添加这些图(全部在同一页面中)。

ods pdf file="\\path\Ex..pdf" startpage=no;

proc sgplot 

ods pdf close;

通常我使用上面的代码创建pdf。但它会删除以前的内容然后创建新的东西。

1 个答案:

答案 0 :(得分:1)

SAS无法附加到当前创建的PDF。如果在SAS中创建了其他PDF,则可以使用proc文档重新组织输出以创建单个PDF文件。

您可以使用Adobe Professional或其他PDF应用程序附加PDF文件。如果需要自动化,则可以在SAS中创建和运行VB脚本,但仍需要Adobe Professional或其他PDF应用程序并在外部调用。

编辑: 最简单的方法是更改​​ODS CLOSE所在的位置,以便立即写入PDF。

第二种方法是将每个表包装在ODS文档语句中以创建文档对象,然后在稍后重放它,聚合同一位置的所有表。

此处的代码: http://support.sas.com/kb/35/375.html

/* Use a LIBNAME statement or directory appropriate for your SAS session */
libname docs "c:\temp";

/* Route the PROC REPORT table to a document item store named FIRST in the DOCS library */
ods document name=docs.first;
proc report nowd data=sashelp.class(obs=10);
   title "first";
run;

/* Close the document itemstore */
ods document close;

/* Create a new document item store in which to save the second PROC REPORT table.
   This ODS DOCUMENT NAME= / ODS DOCUMENT CLOSE logic can be included in
   the original SAS session or a separate SAS session. */
ods document name=docs.second;

proc report nowd data=sashelp.vtable(obs=20);
   title "Second";
   column libname memname nobs nvar crdate;
run;

ods document close;

ods document name=docs.third;

proc report nowd data=sashelp.class;
   title "Third";
run;

ods document close;

/* In the same SAS session or a new SAS session, combine the results 
   of the three document item stores with PROC DOCUMENT.  */
libname docs "c:\temp";
ods pdf file="combined_2.pdf";

proc document name=docs.first;
   replay;
run;
quit;

proc document name=docs.second;
   replay;
run;
quit;

proc document name=docs.third;
   replay;
run;
quit;

ods pdf close;