程序调用Adobe Reader打开pdf文档

isme2013 2012-03-22 02:37:33
是这样的, 我将多个psf文档合并成一个,然后通过stream打印到页面,这些都成功了。但是当点击打印的时候,如果这个pdf文件过大的话,就会卡死(IE死掉了),打印也不会成功。
所以,我现在的想法是,在程序中调用Adobe Reader来打开这个已经合并好了的pdf(用的是MemoryStream来存取到内存中的)文件,但是不知道怎样调用Adobe Reader? 怎样指定要打开的文件??
请高手赐教,谢谢!!!
(急,在线等…………)
...全文
778 18 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
isme2013 2012-03-24
  • 打赏
  • 举报
回复
12楼,13楼的二位,你们的方法都是要先保存文件到本地,而我需要的是直接从服务器上得到文件流,然后输出,所以,二位的方法我这里可能就不适用了,谢谢你们,不知道是否还有其他的可行的方法,谢谢各位!!!!
crackdung 2012-03-24
  • 打赏
  • 举报
回复
http://www.radpdf.com/install/release-notes/
crackdung 2012-03-24
  • 打赏
  • 举报
回复
我說用專業控件,你又說版權,又說金錢,慢慢等啊
porschev 2012-03-23
  • 打赏
  • 举报
回复

asp.net?用object标签显示PDF文件就行



<object classid="clsid:CA8A9780-280D-11CF-A24D-444553540000" height="700px" width="755px">
<param name="_Version" value="65539">
<param name="_ExtentX" value="20108">
<param name="_ExtentY" value="10866">
<param name="_StockProps" value="0">
<param name="SRC" value="XXX.pdf">
</object>

bobob 2012-03-23
  • 打赏
  • 举报
回复
C++的代码,自己转成C#吧。
CAcroApp *pAcroApp = new CAcroApp;
COleException e;
pAcroApp->CreateDispatch("AcroExch.App", &e);
pAcroApp->Show();

CAcroAVDoc *pAvdoc= new CAcroAVDoc;
pAvdoc->CreateDispatch("AcroExch.AVDoc", &e);
if(!pAvdoc->Open("c:\\test.pdf", NULL))
AfxMessageBox("Error in opening a PDF file.");

long num = pddoc.GetNumPages();
// print it
BOOL rc = m_pAvdoc->PrintPages((long)0, (long)(num-1), 2L, (long) 0, (long) 0); // true not working

pAcroApp->CloseAllDocs();
pAcroApp->Hide();
pAcroApp->Exit();

// clean memory
delete pAcroApp;
pAcroApp = NULL;
delete pAvdoc;
pAvdoc = NULL;
isme2013 2012-03-22
  • 打赏
  • 举报
回复
是这样的, 我将多个psf文档合并成一个,然后通过stream打印到页面,这些都成功了。但是当点击打印的时候,如果这个pdf文件过大的话,就会卡死(IE死掉了),打印也不会成功。
所以,我现在的想法是,在程序中调用Adobe Reader来打开这个已经合并好了的pdf(用的是MemoryStream来存取到内存中的)文件,但是不知道怎样调用Adobe Reader? 怎样指定要打开的文件??
请高手赐教,谢谢!!!
(急,在线等…………)
isme2013 2012-03-22
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 crackdung 的回复:]

ok,ni 認為好就得,,但是我告訴你注意語言字體
[/Quote]

语言?字体? 不是太明白你的意思。
isme2013 2012-03-22
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 q___p 的回复:]

B/S程序中WEB打印的完美解决方案


方案一:ScriptX打印组件
方案二:WsReport打印组件


参考地址:http://hi.baidu.com/see7di/blog/item/7dca1a238bd3594f93580742.html
[/Quote]

这是页面打印,我需要的是打印文件,还是批量打印文件,而且只能打印pdf文件。所以比较难办……
crackdung 2012-03-22
  • 打赏
  • 举报
回复
ok,ni 認為好就得,,但是我告訴你注意語言字體
isme2013 2012-03-22
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 terminator_lzq 的回复:]

引用 4 楼 qixing_gan 的回复:

引用 2 楼 crackdung 的回复:

真傻,用這個,如果客戶不安裝這個,,,你怎辦?



目前这是最好的解决方案了,同时,客户是外企,Adobe Reader是必装软件。

不妨把你的方案也说一下,希望能得以借鉴,谢谢!!!

OFFICE总应该有吧 取大众化的必备软件很重要
[/Quote]

需要的功能是批量打印pdf文件,从服务器获取需要打印的文件批量打印,还不去把这些文件保存到本地,所以……
传递正能量 2012-03-22
  • 打赏
  • 举报
回复
B/S程序中WEB打印的完美解决方案


方案一:ScriptX打印组件
方案二:WsReport打印组件


参考地址:http://hi.baidu.com/see7di/blog/item/7dca1a238bd3594f93580742.html
CalvinR 2012-03-22
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 qixing_gan 的回复:]

引用 2 楼 crackdung 的回复:

真傻,用這個,如果客戶不安裝這個,,,你怎辦?



目前这是最好的解决方案了,同时,客户是外企,Adobe Reader是必装软件。

不妨把你的方案也说一下,希望能得以借鉴,谢谢!!!
[/Quote]
OFFICE总应该有吧 取大众化的必备软件很重要
isme2013 2012-03-22
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 crackdung 的回复:]

真傻,用這個,如果客戶不安裝這個,,,你怎辦?
[/Quote]


目前这是最好的解决方案了,同时,客户是外企,Adobe Reader是必装软件。

不妨把你的方案也说一下,希望能得以借鉴,谢谢!!!
isme2013 2012-03-22
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 q___p 的回复:]

如果你的文件保存到了磁盘上,你可以

Process.Start("pdf程序的位置", "参数");

Process.Start("Adobe Reader 需要通过查询得到物理位置", "文件的位置");

如果文件在内存中,那么你参看下 Adobe Reader提供的api文档吧
[/Quote]

我所生成的文件保存在内存中,现在是通过IE呈现出来的,但是打印时候会造成IE死掉,所以就希望能直接使用Adobe Reader打开。

希望能给出一些比较好的解决方案或可行的代码,谢谢!!!
crackdung 2012-03-22
  • 打赏
  • 举报
回复
真傻,用這個,如果客戶不安裝這個,,,你怎辦?
传递正能量 2012-03-22
  • 打赏
  • 举报
回复
如果你的文件保存到了磁盘上,你可以

Process.Start("pdf程序的位置", "参数");

Process.Start("Adobe Reader 需要通过查询得到物理位置", "文件的位置");

如果文件在内存中,那么你参看下 Adobe Reader提供的api文档吧

62,242

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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