我试图在我的HTML页面上显示PDF,但显示了它。 我的servlet代码:
try {
String text = "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
Document document = new Document();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
PdfWriter.getInstance(document, baos);
document.open();
document.add(new Paragraph(text));
document.close();
response.setHeader("Expires", "0");
response.setHeader("Cache-Control","must-revalidate, post-check=0, pre-check=0");
response.setHeader("Pragma", "public");
response.setContentType("application/pdf");
response.setContentLength(baos.size());
OutputStream os = response.getOutputStream();
baos.writeTo(os);
os.flush();
os.close();
}
catch(DocumentException e) {
throw new IOException(e.getMessage());
}
HTML代码:
<object id="mypdfobject" type="application/pdf" style="background-color: orange;color: black">
</object>
JavaScript代码:
$.post("../paymailcontroller?uid="+uId,function(pdata){
var objectPDF = document.getElementById("mypdfobject");
objectPDF.data=pdata;
});
我使用的浏览器是Google chrome。如果我呼叫该页面,则没有PDF,也不知道在哪里寻找。
如何在任何浏览器中显示创建的pdf?
当前输出是这样的,基本上是原始PDF:
%PDF-1.4%����2 0 obj <>流x�+ r r26S�00SI�2P�5�1���BҸ4>>> /父3 0 R / MediaBox [0 0 595 842] >> endobj 1 0 obj <> endobj 3 0 obj <> endobj 5 0 obj <> endobj 6 0 obj <> endobj xref 0 7 0000000000 65535 f 0000000333 00000 n 0000000015 00000 n 0000000421 00000 n 0000000176 00000 n 0000000484 00000 n 0000000529 00000 n尾部<] /根5 0 R /大小7 >> startxref 659 %% EOF
答案 0 :(得分:0)
您必须设置内容处置。有两种可能性:
(1)在浏览器中显示PDF
data/assets
(2)打开下载文件以下载文件
package_data={
'xmlboiler.core': ['data/assets/*', 'data/assets/**/*'],
}
更新: 我认为您的JScript不正确。例如。这样做:
python -m pip install --no-index --find-links=build/dist mapscript
对于其余参数,我们设置以下选项:
response.setHeader("Content-Disposition", "inline; filename=\"" + filename + "\";");