私はanother questionから取ったこのシンプルなコードを、同じトピック、破損したPDFファイルでここに持っています。iTextSharpは "pdf.pdf"として壊れたPDFを生成しています
other referencesと一緒に上記のソリューションを実装しようとしましたが、まだ成功しませんでした。ここで
は、私の例のPDFを生成する2つの関数は、次のとおりです。
private void ShowPdf (byte[] str)
{
var Response = HttpContext.Current.Response;
Response.ClearContent();
Response.ClearHeaders();
Response.ContentType = "application/pdf";
Response.AddHeader("Content-Disposition", "attachment; filename=" + DateTime.Now);
Response.BinaryWrite(str);
Response.End();
Response.Flush();
Response.Clear();
}
private byte[] CreatePDF2()
{
Document doc = new Document(PageSize.LETTER, 50, 50, 50, 50);
using (MemoryStream output = new MemoryStream())
{
PdfWriter wri = PdfWriter.GetInstance(doc, output);
doc.Open();
Paragraph header = new Paragraph("Test bug") { Alignment = Element.ALIGN_CENTER };
Paragraph paragraph = new Paragraph("test.");
Phrase phrase = new Phrase("testnewline. \nnewline hapenned.");
Chunk chunk = new Chunk("Chucnk cauncuanocnaacoocsinasiocniocsanacsoi chunk.");
doc.Add(header);
doc.Add(paragraph);
doc.Add(phrase);
doc.Add(chunk);
doc.Close();
return output.ToArray();
}
}
その後の要求で、私はちょうどのようにそれを消費:
ShowPdf(CreatePDF2());
問題は、これは "と呼ばれるファイルを生成していることですResponse.pdf.pdf "は破損しており、開けません。
どうすればこの問題を解決できますか?
OBS:私は現在、iTextSharp 4.1.6
、出力変数のためにこれを試してみてくださいを使用しています私はあなたのiTextのコードだけでなく、あなたのASP.Netコードの両方を実行し、期待通りの両方が私は」働いていましたあなたの問題が他の場所にあることをかなり確信しています。あなたのPDFをメモ帳で開き、ファイルの先頭に '%PDF-1.4'の前に、またはファイルの最後に' %% EOF'の後にテキストの内容を表示してみてください。 –
ちょっと@ChrisHaasまず、助けてくれてありがとう。 生成されたPDF上にこれらのテキストが見つかりませんでした。 – Malavos
@ChrisHaasあなたはこの種の問題が私が現在使っているバージョンに関係すると思いますか?私はLGPLライセンスに4.1.6を使用しています。知っているバグや、私が適応しなければならないいくつかの変更がありますか? – Malavos