Delphi如何实现Word转换PDF后,文件保存在指定路径?

yfq101 2011-02-28 07:32:15
用以下代码已经可以实现Word转PDF的功能,但要用户选择PDF存放位置后才能完成转换。
我想在程序里写明存放位置,这样就不用人工选择。但遇到以下问题,请大家帮忙看一下:谢谢

var
msword : OleVariant;

begin
msword:=createoleobject('word.application');
msword.documents.open('c:\test.doc');
msword.ActivePrinter := 'Adobe PDF';
msword.PrintOut;


1、用以下方法,可以在C盘生成pdf文件,但无法打开
msword.PrintOut(0, 0, 0,'c:\test.pdf');

2、用以下方法,运行时直接提示“类型不匹配”
msword.PrintOut(
OutputFileName,
Range,
Item,
Copies,
Pages,
PageType,
ManualDuplexPrint,
Collate,
Background,
PrintToFile,
PrintZoomColumn,
PrintZoomRow,
PrintZoomPaperWidth,
PrintZoomPaperHeight
)

3、用以下方法,运行时直接提示“参数值已超出可接受的范围”
msword.PrintOut(Background,
Append,
Range,
filename,
from,
to_,
Item,
Copies,
Pages,
PageType,
PrintToFile,
Collate,
FileName,
EmptyParam,
ManualDuplexPrint);

我想查PrintOut函数的参数到底有几个参数?我在csdn上找了2天也没有找到准确的说法,
我把查到的一个个试了,都不成功,会报错:如“类型不匹配”、“参数值已超出可接受的范围”。
...全文
483 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
wsgqp 2012-10-18
  • 打赏
  • 举报
回复
楼主我也碰到这个问题,请问要设置哪些参数啊,麻烦赐教
yfq101 2011-03-04
  • 打赏
  • 举报
回复
感谢大家,我的问题已经通过设置打印机的方法解决
原来PDF打印机里,有很多项与一般打印机不同的设置。
例如可以设置输出位置等等
yfq101 2011-03-03
  • 打赏
  • 举报
回复
再请教大家2
yfq101 2011-03-02
  • 打赏
  • 举报
回复
再请教大家
lqfcu2 2011-03-01
  • 打赏
  • 举报
回复
你确定你用过虚拟打印机?Zan Image 这个虚拟打印机是可以设置存放路径的
yfq101 2011-03-01
  • 打赏
  • 举报
回复
谢谢各位,这些方法我都试过了,都是那些错误.继续请教
kye_jufei 2011-03-01
  • 打赏
  • 举报
回复
Adobe Acrobat Professional 5.0中文版
Solid Converter PDF(Solid Converter PDF 2.0

var
wdo,wdoc,wdocs : OleVariant;
begin
wdo := CreateOleObject('Word.Application');
wdocs := wdo.Documents;
wdo.ActivePrinter := 'Acrobat PDFWriter';
wdoc := wdocs.Open('e:\test.doc');
wdoc.PrintOut(0, 0, 0,'e:\test.pdf');
end;

Adobe Acrobat 5.0.1 or
Adobe PageMaker 7

Then open your WORD, select print, select Distiller to print the file that you want to convert, the system will ask you to Save As......, type a name you want, then you get it.

You could also use GhostScript, it is a free softwere.(It can download everywhere on Internet)
hongqi162 2011-03-01
  • 打赏
  • 举报
回复

试试
var
msword,msdoc : OleVariant;
begin
msword:=createoleobject('word.application');
msdoc := msword.Documents;
msdoc.ActivePrinter := 'Adobe PDF';
msdoc.documents.open('c:\test.doc');
msdoc.PrintOut(0, 0, 0,'e:\test.pdf');
end;
kye_jufei 2011-03-01
  • 打赏
  • 举报
回复
WordApplication1.PrintOut(emptyparam,emptyparam,emptyparam,emptyparam,emptyparam
,emptyparam,emptyparam,copies,pages,emptyparam,
emptyparam,emptyparam,emptyparam,emptyparam);
yfq101 2011-03-01
  • 打赏
  • 举报
回复
我装了PDF后,在打印机里面就自动增加了个PDF的打印机,请问这个是不是您所说的虚拟打印机?
我看到这个打印机设置的路径是"我的文档",可我在转换完成后,他会弹出存放位置的窗口,默认的位置就是
"我的文档".我现在就是不想让他弹出这个窗口,在程序里指定路径.
请教可有好方法?谢谢.
亮剑_ 2011-02-28
  • 打赏
  • 举报
回复
查一下PDF虚拟打印机中是否可以设置默认输出目录,Foxit PDF Printer 是可以的

2,498

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧