iTextSharp在Winforms项目中无法正常工作

3

环境

C# 2008 Express Edition,Windows Forms,iTextSharp 5.4.0。

我将iTextSharp.dll放在我的项目的bin文件夹中,在项目中添加了对它的引用,使用了命名空间using iTextSharpiTextSharp.textiTextSharp.text.pdf,并尝试了以下代码块,但没有创建任何内容且没有错误信息。

这是第一个代码块:

Document doc1 = new Document();
string path = "C:/Temp/Testing";
PdfWriter.GetInstance(doc1, new FileStream(path + "first.pdf", FileMode.Create));
doc1.Open();
doc1.Add(new Paragraph("Test"));
doc1.Close();

这是第二个区块:

FileStream fs = new FileStream("C:\\Temp\\Testing" + "Test.pdf", FileMode.Create);
Document doc = new Document();
PdfWriter writer = PdfWriter.GetInstance(doc, fs);
doc.Open();
doc.Add(new Paragraph("Hello"));
doc.Close();
writer.Close();
fs.Close();

请在除 C 盘以外的任何其他驱动器上尝试您的代码。 - Shaharyar
2
您可能正在寻找文件 c:\Temp\Testing\Test.pdf。文件名似乎保存为 C:\Temp\TestingTest.pdf。 - Crispy
在 C:\Temp\Testing 的末尾添加 \ 就解决了问题。 - KFP
1个回答

0
这个例子打开一个对话框,用户可以保存文件。使用代码转换器将VB代码转换为C#代码。
Using ms As New System.IO.MemoryStream()
Using doc As New iTextSharp.text.Document(iTextSharp.text.PageSize.A4)
Using w As iTextSharp.text.pdf.PdfWriter = iTextSharp.text.pdf.PdfWriter.GetInstance(doc, ms)

Dim FileName As String = "Name.pdf"


Here create your document end close it

Response.Clear()
Response.ContentType = "application/octet-stream"
Response.AddHeader("content-disposition", "attachment;filename= " & FileName)
Response.Buffer = True
Response.Clear()
Dim bytes = ms.ToArray()
Response.OutputStream.Write(bytes, 0, bytes.Length)
Response.OutputStream.Flush()


End Using
End Using
End Using

我已经转换了它并添加了 using System.Web.UI,但 Response 无法识别。这是针对 Windows 窗体而不是 Web 的。 - KFP

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接