VC如何调用Adobe Acrobat将office转pdf

paodan 2009-09-02 06:28:09
VC如何调用Adobe Acrobat将office(word,excel,ppt)转pdf,java实现也可以。
...全文
472 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
paodan 2009-09-04
  • 打赏
  • 举报
回复
过两天结贴
paodan 2009-09-03
  • 打赏
  • 举报
回复
还有一个现象是打印为pdf文件完成后,后连续显示两次转化后的pdf文件,这个好像是Adobe Acrobat的问题,要是直接使用Adobe PDF打印机,右击打印word文件,完成后也出现这个现象,不知道如何避免
paodan 2009-09-03
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 hanwangabc 的回复:]
引用 6 楼 paodan 的回复:
我转化后生成的pdf文件打开时说格式错误,这是怎么回事
Doucument.Printout(...);生成的是ps文件,需要Acrobat Distiller把ps转换为pdf格式,网上找了一些资料,你看一下http://topic.csdn.net/t/20031106/13/2433410.html,我也没做过
[/Quote]我试验了一下,

//_Document m_doc;
m_doc.PrintOut (
/*[in] VARIANT * Background = &vtMissing*/ &vFalse ,
/*[in] VARIANT * Append = &vtMissing*/&vFalse ,
/*[in] VARIANT * Range = &vtMissing*/ &vRange ,
/*[in] VARIANT * OutputFileName = &vtMissing*/&vFileName,
/*[in] VARIANT * From = &vtMissing*/ &vOptional,
/*[in] VARIANT * To = &vtMissing*/ &vOptional,
/*[in] VARIANT * Item = &vtMissing*/ &vOptional,
/*[in] VARIANT * Copies = &vtMissing*/&vCopies ,
/*[in] VARIANT * Pages = &vtMissing*/ &vOptional,
/*[in] VARIANT * PageType = &vtMissing*/&vOptional ,
/*[in] VARIANT * PrintToFile = &vtMissing*/ &vFalse,
/*[in] VARIANT * Collate = &vtMissing*/ &vOptional,
/*[in] VARIANT * FileName = &vtMissing*/ &vOptional,
/*[in] VARIANT * ActivePrinterMacGX = &vtMissing*/ &vOptional,
/*[in] VARIANT * ManualDuplexPrint = &vtMissing*/&vOptional,
&vOptional,&vOptional,&vOptional); //word2003需要18个参数

则打印出的是ps,假如不指定vFileName的话,即改为vOptional,那么程序运行时会弹出保存pdf文件的对话框,需要手工选择路径,这样能够正确生成pdf文件,但是比较麻烦,怎样自动保存到指定路径?
hanwangabc 2009-09-03
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 paodan 的回复:]
我转化后生成的pdf文件打开时说格式错误,这是怎么回事
[/Quote]Doucument.Printout(...);生成的是ps文件,需要Acrobat Distiller把ps转换为pdf格式,网上找了一些资料,你看一下http://topic.csdn.net/t/20031106/13/2433410.html,我也没做过
paodan 2009-09-03
  • 打赏
  • 举报
回复
我转化后生成的pdf文件打开时说格式错误,这是怎么回事
paodan 2009-09-03
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 oyljerry 的回复:]
   
  m_pWord->ActivePrinter  =  (_bstr_t)"Adobe  PDF"; 
   
  m_pWord->PrintOut  (...)
 
[/Quote]试了一下,应该是Application.SetActivePrinter("Adobe PDF");//设置打印机
Doucument.Printout(...);
paodan 2009-09-03
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 oyljerry 的回复:]
variant_t  vFileName(m_strPdfFile); 
  _variant_t  vOptional((long)DISP_E_PARAMNOTFOUND,VT_ERROR); 
  _variant_t  vTrue(VARIANT_TRUE); 
  _variant_t  vFalse(VARIANT_FALSE); 
  _variant_t  vCopies((short)1); 
  _variant_t  vRange((short)0); 
   
  m_pWord->ActivePrinter  =  (_bstr_t)"Adobe  PDF"; 
   
  m_pWord->PrintOut  ( 
  /*[in]  VARIANT  *  Background  =  &vtMissing*/  &vFalse  , 
  /*[in]  VARIANT  *  Append  =  &vtMissing*/&vFalse  , 
  /*[in]  VARIANT  *  Range  =  &vtMissing*/  &vRange  , 
  /*[in]  VARIANT  *  OutputFileName  =  &vtMissing*/&vFileName  , 
  /*[in]  VARIANT  *  From  =  &vtMissing*/  &vOptional, 
  /*[in]  VARIANT  *  To  =  &vtMissing*/  &vOptional, 
  /*[in]  VARIANT  *  Item  =  &vtMissing*/  &vOptional, 
  /*[in]  VARIANT  *  Copies  =  &vtMissing*/&vCopies  , 
  /*[in]  VARIANT  *  Pages  =  &vtMissing*/  &vOptional, 
  /*[in]  VARIANT  *  PageType  =  &vtMissing*/&vOptional  , 
  /*[in]  VARIANT  *  PrintToFile  =  &vtMissing*/  &vFalse, 
  /*[in]  VARIANT  *  Collate  =  &vtMissing*/  &vOptional, 
  /*[in]  VARIANT  *  FileName  =  &vtMissing*/  &vOptional, 
  /*[in]  VARIANT  *  ActivePrinterMacGX  =  &vtMissing*/  &vOptional, 
  /*[in]  VARIANT  *  ManualDuplexPrint  =  &vtMissing*/&vOptional)  ; 

[/Quote]m_pWord是什么类型的指针?_Application?Documents?_Document?这三个我都查了,没有ActivePrinter这个属性
oyljerry 2009-09-02
  • 打赏
  • 举报
回复
variant_t vFileName(m_strPdfFile);
_variant_t vOptional((long)DISP_E_PARAMNOTFOUND,VT_ERROR);
_variant_t vTrue(VARIANT_TRUE);
_variant_t vFalse(VARIANT_FALSE);
_variant_t vCopies((short)1);
_variant_t vRange((short)0);

m_pWord->ActivePrinter = (_bstr_t)"Adobe PDF";

m_pWord->PrintOut (
/*[in] VARIANT * Background = &vtMissing*/ &vFalse ,
/*[in] VARIANT * Append = &vtMissing*/&vFalse ,
/*[in] VARIANT * Range = &vtMissing*/ &vRange ,
/*[in] VARIANT * OutputFileName = &vtMissing*/&vFileName ,
/*[in] VARIANT * From = &vtMissing*/ &vOptional,
/*[in] VARIANT * To = &vtMissing*/ &vOptional,
/*[in] VARIANT * Item = &vtMissing*/ &vOptional,
/*[in] VARIANT * Copies = &vtMissing*/&vCopies ,
/*[in] VARIANT * Pages = &vtMissing*/ &vOptional,
/*[in] VARIANT * PageType = &vtMissing*/&vOptional ,
/*[in] VARIANT * PrintToFile = &vtMissing*/ &vFalse,
/*[in] VARIANT * Collate = &vtMissing*/ &vOptional,
/*[in] VARIANT * FileName = &vtMissing*/ &vOptional,
/*[in] VARIANT * ActivePrinterMacGX = &vtMissing*/ &vOptional,
/*[in] VARIANT * ManualDuplexPrint = &vtMissing*/&vOptional) ;
大熊猫侯佩 2009-09-02
  • 打赏
  • 举报
回复

没搞过,adobe官网应该有SDK吧?

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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