私はそれが簡単な解決策になるだろうと確信していますが、私の問題について助けを見つけることはできません。私はpdfファイルを作成しています。それを開く前にユーザーが保存しなければなりません。しかし、ユーザーがそれを保存するかどうかを決定する前に、そのファイルを開く必要があります。しかし、私はiTextに新しいタブでそれを開くように指示する方法を見つけることができません。私は何をすればよいですか?iTextで新しいブラウザタブで新しいPDFファイルを開く方法Java
私のコードですが、私はこのメソッドを "document.close();の直後に呼び出します。 :
public void openPDF(String nomDoc, String nomFichier) throws IOException {
FacesContext facesContext = FacesContext.getCurrentInstance();
ExternalContext externalContext = facesContext.getExternalContext();
HttpServletResponse response = (HttpServletResponse) externalContext
.getResponse();
// File file = new File(getFilePath(), getFileName());
File file = new File(nomFichier);
BufferedInputStream input = null;
BufferedOutputStream output = null;
try {
input = new BufferedInputStream(new FileInputStream(file),
DEFAULT_BUFFER_SIZE);
response.reset();
response.setHeader("Content-Type", "application/pdf");
response.setHeader("Cache-Control",
"must-revalidate, post-check=0, pre-check=0");
response.setHeader("Content-Length", String.valueOf(file.length()));
// response.setHeader("Content-Disposition", "inline; filename=\"" +
// nomFichier + "\"");
response.setHeader("Content-Disposition", "form-data;filename=\""
+ nomDoc + "\"");
output = new BufferedOutputStream(response.getOutputStream(),
DEFAULT_BUFFER_SIZE);
byte[] buffer = new byte[DEFAULT_BUFFER_SIZE];
int length;
while ((length = input.read(buffer)) > 0) {
output.write(buffer, 0, length);
}
output.flush();
} finally {
close(output);
close(input);
}
facesContext.responseComplete();
}
私のコマンドボタン:
<p:commandButton process="checkboxContrats"
icon="ui-icon-file-pdf" value="Editer les fiches de paie"
action="#{paieAgentView.printPaieAgent()}" update="@form"
escape="false" ajax="false" />
マイビュー:
public void creerPDF(List<FichePaie> listFdP, Date dateDebut, Date dateFin) throws DocumentException,
IOException {
ServletContext servletContext = (ServletContext) FacesContext
.getCurrentInstance().getExternalContext().getContext();
String nomRelatif = servletContext.getRealPath(NOMFICHIER);
Date dtt = new Date();
Phrase para = new Phrase("Date d'édition : " + sdf.format(dtt),
FontFactory.getFont(FontFactory.HELVETICA, 8, Font.NORMAL));
Document document = this.getDocumentPortraitSmallMargin(nomRelatif,
para);
document.open();
document.add(new Chunk(""));
document.close();
openPDF(filename, nomRelatif);
}
はあなたの助けをいただき、ありがとうございます。
「Content-Disposition」ヘッダーを削除することはありますか? – Henry
私はコンテンツの配置をインラインに変更し、現在のタブで開きます。それは始まりです – coshikipix
そして私はUmais Gillaniのヒントを追加しました^^ – coshikipix