JavaサーブレットからストリーミングされたPDFをソースとするかろうじて表示されるiframeを含むWebページ(SSL)があります。かろうじて表示されるiframeの目的は、ページが読み込まれるとすぐに印刷ダイアログボックスを開くPDFをレンダリングすることです。
このプロセスは散発的に機能しています。多くの場合、ページが読み込まれると、PDF印刷ダイアログボックスが正しく表示されます。ただし、ページの読み込み時にPDF印刷ダイアログボックスが表示されない場合があります。PDFが呼び出し元のページに正しくストリーミングされていることをログから確認できるため、Javaサーブレットでは問題ではないことがわかります。ページが読み込まれたときにPDF印刷ダイアログが常に開く可能性がある場合は、99.9999 .......%の信頼性を実現する方法を見つける必要があります。だから、私はこれが起こることを確実にする方法についてのヒントを探しています。
これは、Internet Explorer(特にバージョン8)で機能する必要があります。
これは、PDFiframeを含むページを開くJavaScriptです。
function openPrintCheckWindow(){
pc=window.open("/print_check.jsp", "pc", "toolbar=no,scrollbars=no,resizable=no");
pc.resizeTo(1000,700);
pc.moveTo(80,80);
}
PDFiframeを含むページのソースは次のとおりです。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
<TITLE></TITLE>
<style>
#createpdf {
position:absolute;
top:0;
right:0;
}
.micr {
font-family: "MICR Encoding", sans-serif;
font-size: 0.2in;
}
</style>
<script type="text/javascript">
function doAlert(msg){
if(msg.length>0){
alert(msg);
}
}
//doesn't block the load event
function createIframe(){
var i = document.createElement("iframe");
i.src = "/PrintCheckServlet";
i.width = "2px";
i.height = "2px";
document.getElementById("createpdf").appendChild(i);
};
// Check for browser support of event handling capability
if (window.addEventListener)
window.addEventListener("load", createIframe, false);
else if (window.attachEvent)
window.attachEvent("onload", createIframe);
else
window.onload = createIframe;
</script>
</HEAD>
<BODY BGCOLOR="#DFD9D0" TEXT="#000066" onLoad="doAlert('')">
<FORM METHOD="POST" TARGET="main_window" ACTION="ControllerServlet">
<P ALIGN="LEFT">
<INPUT TYPE="BUTTON" NAME="CLOSE" VALUE="Close"
onClick="this.form.submit();window.close();window.opener.focus();window=null;">
<br />
<H3 id="print_message">A print dialog box will show momentarily</H3>
</P>
<div id="createpdf"></div>
</FORM>
</BODY>
</HTML>