1
我创建了一个pdf文件并通过电子邮件发送。电子邮件发送得很好,但打开PDF文件,我不断收到以下错误:“打开此文档时出错,文件已损坏,无法修复”。这是代码。我不知道我做错了......创建pdf错误信息(...文件已损坏,无法修复)
Document myDoc = new Document(PageSize.LETTER, 20f, 20f, 18f, 20f);
using (MemoryStream ms = new MemoryStream())
{
PdfWriter pWriter = PdfWriter.GetInstance(myDoc, ms);
myDoc.Open();
PdfPTable table = new PdfPTable(2);
table.WidthPercentage = 100;
table.SpacingAfter = 10;
float[] widths = new float[] { 1f, 2f };
table.SetWidths(widths);
table.HorizontalAlignment = 0;
table.SpacingBefore = 20f;
table.SpacingAfter = 30f;
Font regularFont = new Font(iTextSharp.text.Font.FontFamily.HELVETICA, 12);
Font boldFont = new Font(iTextSharp.text.Font.FontFamily.HELVETICA, 14, 1);
Font headerFont = new Font(iTextSharp.text.Font.FontFamily.HELVETICA, 18, 1);
PdfPCell cell = new PdfPCell();
cell.BorderWidth = 1;
cell = new PdfPCell(new Phrase("HEADER", headerFont));
cell.Colspan = 2;
cell.HorizontalAlignment = 1;
table.AddCell(cell);
cell.Colspan = 1;
cell.HorizontalAlignment = 0;
cell.Phrase = new Phrase("CONTENT:", boldFont);
table.AddCell(cell);
cell.Phrase = new Phrase("content", regularFont);
table.AddCell(cell);
myDoc.Add(table);
MailMessage msg = new MailMessage();
msg.From = new MailAddress("[email protected]", "CONTENT Report");
msg.To.Add(new MailAddress("[email protected]"));
msg.Subject += "Content Report";
msg.Body += "Message.<br> :)";
msg.IsBodyHtml = true;
ms.Position = 0;
msg.Attachments.Add(new Attachment(ms, "test.pdf", "application/x-pdf"));
SmtpClient client = new SmtpClient("10.1.1.15");
client.Send(msg);
生成的文件大小有多大?它可能不会将内容清理到流中。除此之外,我建议检查“PdfWriter”的文档并详细检查示例。您也可以尝试在本地编写文件以进行调试。 – 2011-04-21 18:04:18
@NickLarsen - pdf是一个测试文件,只是8B – MrM 2011-04-21 18:12:44
@ user54197:你可以在本地打开它吗? 8B听起来很小。就像我这么小,它不可能存储你列出的所有信息。 – 2011-04-21 18:14:51