有些时候我们要在IE上显示一个PDF, 例如服务器上生成的PDF. 但是不想让用户保存下来.
本质上来说这是实现不了的, 因为显示PDF用的是客户端的acrobat的ActiveX控件.
既然数据已经到了客户端, 想要找到数据的内容总是可以找到的.
下面提供一种方法, 可以把acrobat控件的工具栏隐藏起来.让用户不那么容易把PDF保存下来.
<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> -->
<
html
>
<
head
>
<
title
>
viewpdf
</
title
>
<
script
language
="vbscript"
>
<
!
--
Sub
window_onload()
acro.setShowToolbar(
False
)
end sub
Sub
printAll()
acro.printAll()
end sub
-->
</
script
>
</
head
>
<
body
onload
="window_onload()"
>
<
button
onclick
="printAll()"
>
印刷
</
button
></
br
>
<
OBJECT
id
="acro"
classid
="clsid:CA8A9780-280D-11CF-A24D-444553540000"
WIDTH
="1000"
HEIGHT
="800"
>
<
PARAM
name
="src"
value
="./304100621001JY01802-0-01.pdf"
/>
</
OBJECT
>
</
body
>
</
html
>
原理就是直接调用ActiveX控件中的方法把工具栏隐藏起来, 打印也是调用ActiveX的方法.
那么具体的AcrobatReader的ActiveX中还有哪些其他的方法吗?
由于没有文档, 只能用OleView看一下. 具体怎么我用也不清楚.
[
uuid(3B813CE7-7C10-4F84-AD06-9DF76D97A9AA),
helpstring("IAcroAXDocShim Interface"),
dual,
nonextensible
]
dispinterface IAcroAXDocShim {
properties:
methods:
[id(0x00000001), propget, helpstring("property src")]
BSTR src();
[id(0x00000001), propput, helpstring("property src")]
void src([in] BSTR rhs);
[id(0x00000002), helpstring("method LoadFile")]
VARIANT_BOOL LoadFile([in] BSTR fileName);
[id(0x00000003), helpstring("method setShowToolbar")]
void setShowToolbar([in] VARIANT_BOOL On);
[id(0x00000004), helpstring("method gotoFirstPage")]
void gotoFirstPage();
[id(0x00000005), helpstring("method gotoLastPage")]
void gotoLastPage();
[id(0x00000006), helpstring("method gotoNextPage")]
void gotoNextPage();
[id(0x00000007), helpstring("method gotoPreviousPage")]
void gotoPreviousPage();
[id(0x00000008), helpstring("method setCurrentPage")]
void setCurrentPage([in] long n);
[id(0x00000009), helpstring("method goForwardStack")]
void goForwardStack();
[id(0x0000000a), helpstring("method goBackwardStack")]
void goBackwardStack();
[id(0x0000000b), helpstring("method setPageMode")]
void setPageMode([in] BSTR pageMode);
[id(0x0000000c), helpstring("method setLayoutMode")]
void setLayoutMode([in] BSTR layoutMode);
[id(0x0000000d), helpstring("method setNamedDest")]
void setNamedDest([in] BSTR namedDest);
[id(0x0000000e), helpstring("method Print")]
void Print();
[id(0x0000000f), helpstring("method printWithDialog")]
void printWithDialog();
[id(0x00000010), helpstring("method setZoom")]
void setZoom([in] single percent);
[id(0x00000011), helpstring("method setZoomScroll")]
void setZoomScroll(
[in] single percent,
[in] single left,
[in] single top);
[id(0x00000012), helpstring("method setView")]
void setView([in] BSTR viewMode);
[id(0x00000013), helpstring("method setViewScroll")]
void setViewScroll(
[in] BSTR viewMode,
[in] single offset);
[id(0x00000014), helpstring("method setViewRect")]
void setViewRect(
[in] single left,
[in] single top,
[in] single width,
[in] single height);
[id(0x00000015), helpstring("method printPages")]
void printPages(
[in] long from,
[in] long to);
[id(0x00000016), helpstring("method printPagesFit")]
void printPagesFit(
[in] long from,
[in] long to,
[in] VARIANT_BOOL shrinkToFit);
[id(0x00000017), helpstring("method printAll")]
void printAll();
[id(0x00000018), helpstring("method printAllFit")]
void printAllFit([in] VARIANT_BOOL shrinkToFit);
[id(0x00000019), helpstring("method setShowScrollbars")]
void setShowScrollbars([in] VARIANT_BOOL On);
[id(0x0000001a), helpstring("method GetVersions")]
VARIANT GetVersions();
[id(0x0000001b), helpstring("method setCurrentHightlight")]
void setCurrentHightlight(
[in] long a,
[in] long b,
[in] long c,
[in] long d);
[id(0x0000001c), helpstring("method setCurrentHighlight")]
void setCurrentHighlight(
[in] long a,
[in] long b,
[in] long c,
[in] long d);
[id(0x0000001d), helpstring("method postMesage")]
void postMessage([in] VARIANT strArray);
[id(0x0000001e), propget, helpstring("property messageHandler")]
VARIANT messageHandler();
[id(0x0000001e), propput, helpstring("property messageHandler")]
void messageHandler([in] VARIANT rhs);
[id(0x0000001f), helpstring("method execCommand")]
void execCommand([in] VARIANT strArray);
};