用以下代码已经可以实现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天也没有找到准确的说法,
我把查到的一个个试了,都不成功,会报错:如“类型不匹配”、“参数值已超出可接受的范围”。

解决方案 »

  1.   

    该方法可打印指定文档的全部或部分。expression.PrintOut(Background, Append, Range, OutputFileName, From, To, Item, Copies, Pages, PageType, PrintToFile, Collate, FileName, ActivePrinterMacGX, ManualDuplexPrint, PrintZoomColumn, PrintZoomRow, PrintZoomPaperWidth, PrintZoomPaperHeight)
    expression      必需。该表达式返回上述对象之一。Background      Variant 类型,可选。如果将该参数设为 True,则 Microsoft Word 在打印文档时继续运行宏。Append      Variant 类型,可选。如果将该参数设为 True,则将指定文档添至由 OutputFileName 参数所指定的文件中。如果将该参数设为 False,则覆盖 OutputFileName 参数所指定文件的内容。Range     Variant 类型,可选。该参数表示页面范围。可以是任意 WdPrintOutRange 常量。wdPrintAllDocument 
    wdPrintCurrentPage 
    wdPrintFromTo 
    wdPrintRangeOfPages 
    wdPrintSelection OutputFileName      Variant 类型,可选。如果 PrintToFile 的值为 True,则该参数指定输出文件的路径和文件名。From      Variant 类型,可选。如果将 Range 设为 wdPrintFromTo,则该参数指定起始页码。To      Variant 类型,可选。如果将 Range 设为 wdPrintFromTo,则该参数指定结束页码。Item     Variant 类型,可选。该参数表示要打印的项目。可以是任意 WdPrintOutItem 常量。wdPrintAutoTextEntries 
    wdPrintComments 
    wdPrintDocumentContent 
    wdPrintDocumentWithMarkup 
    wdPrintEnvelope 
    wdPrintKeyAssignments 
    wdPrintMarkup 
    wdPrintProperties 
    wdPrintStyles Copies      Variant 类型,可选。该参数代表要打印的份数。Pages      Variant 类型,可选。该参数表示要打印的页码和页码范围,以逗号分隔各项。例如,“2, 6-10”表示打印第 2 页和第 6 至 10 页。PageType     Variant 类型,可选。该参数表示要打印的页面类型。可以是任意 WdPrintOutPages 常量。wdPrintAllPages 
    wdPrintEvenPagesOnly 
    wdPrintOddPagesOnly PrintToFile      Variant 类型,可选。如该参数值为 True,则将打印指令发送到文件。请确认使用 OutputFileName 参数指定文件名。Collate      Variant 类型,可选。在打印文档的多份副本时,如果该参数值为 True,则完成打印所有页面后再打印下一份副本。FileName      Variant 类型,可选。该参数表示要打印的文档的路径和文件名。如果忽略该参数,Word 将打印活动文档。(仅应用于 Application 对象)ActivePrinterMacGX      Variant 类型,可选。该参数仅应用于 Microsoft Office Macintosh 版本。有关该参数的详细信息,请参阅 Microsoft Office Macintosh 版本中的语言参考“帮助”。ManualDuplexPrint     Variant 类型,可选。如果该参数值为 True,则表示要在无双面打印组件的打印机上打印双面文档。如果该参数值为 True,则忽略 PrintBackground 和 PrintReverse 属性。使用 PrintOddPagesInAscendingOrder 和 PrintEvenPagesInAscendingOrder 属性可在手动双面打印时控制输出。由于选择或安装的语言支持不同,(例如,美国英语),该参数可能无法使用。PrintZoomColumn      Variant 类型,可选。该参数表示 Word 在一页纸上水平放置的页数。可以是 1、2、3 或 4。与 PrintZoomRow 参数一同使用可在单张纸上打印多页文档。PrintZoomRow      Variant 类型,可选。该参数表示 Word 在一页纸上垂直放置的页数。可以是 1、2、3 或 4。与 PrintZoomColumn 参数一同使用可在单张纸上打印多页文档。PrintZoomPaperWidth      Variant 类型,可选。该参数表示 Word 将打印页面缩放到的宽度,以缇为单位(20 缇 = 1 磅;72 磅 = 1 英寸)。PrintZoomPaperHeight      Variant 类型,可选。该参数表示 Word 将打印页面缩放到的高度,以缇为单位(20 缇 = 1 磅;72 磅 = 1 英寸)。
      

  2.   

    我装了PDF后,在打印机里面就自动增加了个PDF的打印机,请问这个是不是您所说的虚拟打印机?
    我看到这个打印机设置的路径是"我的文档",可我在转换完成后,他会弹出存放位置的窗口,默认的位置就是
    "我的文档".我现在就是不想让他弹出这个窗口,在程序里指定路径.
    请教可有好方法?谢谢.
      

  3.   

    你安装个 ZAN IMAGE虚拟打印机。。它是可以设置保存路径的
      

  4.   

    to:lqfcu2
    谢谢回复,我装完adobe后,在打印机里新增的那个pdf打印机跟 你说的虚拟打印机是不是一回事啊?
    这里也不知道怎么贴图,我找不到哪里有设置路径的地方,能详细点告知吗?
      

  5.   

    感谢大家,我的问题已经通过设置打印机的方法解决
    原来PDF打印机里,有很多项与一般打印机不同的设置。
    例如可以设置输出位置等等