如何将从pdf接收的字节数组转换为另一个pdf? [英] How to convert Byte array received from a pdf to another pdf?
本文介绍了如何将从pdf接收的字节数组转换为另一个pdf?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
byte [] bytes = System.IO.File.ReadAllBytes( @ C:\ SGO3-1.pdf);
// MemoryStream outPDF = new MemoryStream();
FileStream outPDF = new FileStream( @ C:\ pdf1.pdf,FileMode.Create);
// byte [] outBytes;
PdfReader pdfr = new PdfReader(字节);
凭证doc = new 文档(PageSize.LETTER);
Document.Compress = true ;
PdfWriter writer = PdfWriter.GetInstance(doc,outPDF);
doc.Open();
PdfContentByte cb = writer.DirectContent;
cb.SaveState();
PdfImportedPage页面;
for ( int i = 1 ; i < pdfr.NumberOfPages + 1 ; i ++)
{
page = writer.GetImportedPage(pdfr,i);
cb.AddTemplate(page,PageSize.LETTER.Width / pdfr.GetPageSize(i).Width, 0 , 0 ,PageSize.LETTER.Height / pdfr.GetPageSize(i).Height, 0 , 0 < /跨度>);
doc.NewPage();
Console.WriteLine( 创建pdf);
}
我正在尝试另一个pdf文件正在创建。但是在打开pdf时它会显示错误消息文件已损坏或无法修复
解决方案
使用BinaryReader和BinaryWriter
示例:
字节 [] DocDataStream;
使用(FileStream stream = File.Open(OriginalPDFFileName,FileMode.Open))
{
使用(BinaryReader br = new BinaryReader(stream))
{
DocDataStream = br.ReadBytes (( int )stream.Length);
}
}
// PDF现在作为内存中的字节数组<使用( var filestream = File.OpenWrite(NewPDFFileName) {
BinaryWriter bw = new BinaryWriter(filestream);
bw.Write(DocDataStream, 0 ,( int )DocDataStream.Length);
bw.Close();
}
// 您的文件已被重写! 跨度>
byte[] bytes = System.IO.File.ReadAllBytes(@"C:\SGO3-1.pdf");
// MemoryStream outPDF = new MemoryStream();
FileStream outPDF = new FileStream(@"C:\pdf1.pdf", FileMode.Create);
// byte[] outBytes;
PdfReader pdfr = new PdfReader(bytes);
Document doc = new Document(PageSize.LETTER);
Document.Compress = true;
PdfWriter writer = PdfWriter.GetInstance(doc, outPDF);
doc.Open();
PdfContentByte cb = writer.DirectContent;
cb.SaveState();
PdfImportedPage page;
for (int i = 1; i < pdfr.NumberOfPages + 1; i++)
{
page = writer.GetImportedPage(pdfr, i);
cb.AddTemplate(page, PageSize.LETTER.Width / pdfr.GetPageSize(i).Width, 0, 0, PageSize.LETTER.Height / pdfr.GetPageSize(i).Height, 0, 0);
doc.NewPage();
Console.WriteLine("creating pdf");
}
I am trying this another pdf file is being created.But while opening pdf it gives error message File is damaged or could not be repaired
解决方案
Use BinaryReader and BinaryWriter
example:
Byte[] DocDataStream; using (FileStream stream = File.Open(OriginalPDFFileName, FileMode.Open)) { using (BinaryReader br = new BinaryReader(stream)) { DocDataStream = br.ReadBytes((int)stream.Length); } } // The PDF is now as Byte Array in memory using (var filestream = File.OpenWrite(NewPDFFileName)) { BinaryWriter bw = new BinaryWriter(filestream); bw.Write(DocDataStream, 0, (int)DocDataStream.Length); bw.Close(); } // And your file is rewritten!
这篇关于如何将从pdf接收的字节数组转换为另一个pdf?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文