使用ITextSharp创建Pdf文件并从内存中打开PDF文档 [英] Creating Pdf file with ITextSharp and open PDF document from memory
本文介绍了使用ITextSharp创建Pdf文件并从内存中打开PDF文档的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我编写了以下代码来创建pdf文件并使用ITextSharp保存pdf文件。
使用iTextSharp;
使用iTextSharp.text;
使用iTextSharp.text.pdf;
使用System.IO;
折叠|复制代码
SaveFileDialog dlg = new SaveFileDialog();
dlg.Filter =PDF文件| * .pdf;
dlg.FilterIndex = 0;
string fileName = string.Empty;
if(dlg.ShowDialog()== DialogResult.OK)
{
fileName = dlg.FileName;
文件myDocument = new Document(iTextSharp.text.PageSize.A4,10,10,42,35);
PdfWriter.GetInstance(myDocument,new FileStream(fileName,FileMode.Create));
myDocument.Open();
myDocument.Add(new Paragraph(ID:+ TextBox1.Text)); pre>
myDocument.Close();
}
我想从内存中打开文件,而不是打开我用opendialog保存的文件。我怎么能这样做?
谢谢
解决方案
使用(MemoryStream) myMemoryStream = new MemoryStream())
{
Document myDocument = new Document();
PdfWriter myPDFWriter = PdfWriter.GetInstance(myDocument,myMemoryStream);
myDocument.Open();
//在这里添加到PDF的内容...
PdfPTable table = new PdfPTable(2);
PdfPCell header = new PdfPCell(new Phrase(Your Heading));
header.Colspan = 2;
header.HorizontalAlignment = 1; // 0 =左,1 =中心,2 =右
table.AddCell(header);
table.AddCell(ID:+ Textbox1.Text);
myDocument.Add(table);
myDocument.Close();
byte [] content = myMemoryStream.ToArray();
//从内存流中写出PDF。
using(FileStream fs = File.Create(C:\\Test.pdf))
{
fs.Write(content,0,(int)content.Length) ;
}
}
当您关闭表单时,您可以删除该文件
File.Delete(C:\\ Test.pdf);
< blockquote>
var file = Path.GetTempFileName();
string filepath = Path.GetTempPath();
string strFilename = Path.GetFileName(file);
using(MemoryStream ms = new MemoryStream())
{
Document doc = new Document();
//PdfWriter.GetInstance(doc,ms);
PdfWriter writer = PdfWriter.GetInstance(doc,new FileStream(Path.Combine(filepath,strFilename),FileMode.Create));
doc.AddTitle(文件标题);
doc.Open();
doc.Add(新段落(我的段落.Bla Bla测试));
doc.Close();
}
axAcroPDF1.src = Path.Combine(filepath,strFilename);
解决方案没问题,为我工作。感谢。
I have written the following code to create a pdf file and save the pdf file using ITextSharp.
using iTextSharp; using iTextSharp.text; using iTextSharp.text.pdf; using System.IO; Collapse | Copy Code SaveFileDialog dlg = new SaveFileDialog(); dlg.Filter = "PDF Files|*.pdf"; dlg.FilterIndex = 0; string fileName = string.Empty; if (dlg.ShowDialog() == DialogResult.OK) { fileName = dlg.FileName; Document myDocument = new Document(iTextSharp.text.PageSize.A4, 10, 10, 42, 35); PdfWriter.GetInstance(myDocument, new FileStream(fileName, FileMode.Create)); myDocument.Open(); myDocument.Add(new Paragraph("ID:" + TextBox1.Text));pre> myDocument.Close(); }
I want to open the file from the memory instead of opening the file that I saved with an opendialog. How can I do that?
Thank you
解决方案
using (MemoryStream myMemoryStream = new MemoryStream()) { Document myDocument = new Document(); PdfWriter myPDFWriter = PdfWriter.GetInstance(myDocument, myMemoryStream); myDocument.Open(); // Add to content to your PDF here... PdfPTable table = new PdfPTable(2); PdfPCell header = new PdfPCell(new Phrase("Your Heading")); header.Colspan = 2; header.HorizontalAlignment = 1; //0=Left, 1=Centre, 2=Right table.AddCell(header); table.AddCell("ID:" + Textbox1.Text); myDocument.Add(table); myDocument.Close(); byte[] content = myMemoryStream.ToArray(); // Write out PDF from memory stream. using (FileStream fs = File.Create("C:\\Test.pdf")) { fs.Write(content, 0, (int)content.Length); } }
When you close your form you can delete the file
File.Delete(C:\\Test.pdf);
var file = Path.GetTempFileName(); string filepath = Path.GetTempPath(); string strFilename = Path.GetFileName(file); using (MemoryStream ms = new MemoryStream()) { Document doc = new Document(); //PdfWriter.GetInstance(doc, ms); PdfWriter writer = PdfWriter.GetInstance(doc, new FileStream(Path.Combine(filepath, strFilename), FileMode.Create)); doc.AddTitle("Document Title"); doc.Open(); doc.Add(new Paragraph("My paragraph. Bla Bla Test")); doc.Close(); } axAcroPDF1.src = Path.Combine(filepath, strFilename);
The solution is ok , worked for me. Thanks.
这篇关于使用ITextSharp创建Pdf文件并从内存中打开PDF文档的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文