2017-04-12 56 views
0

我读一个PDF文件就可以了写一个字符串是这样的:如何在ASP.NET MVC创建一个PDF文件的副本

public ActionResult Index(HttpPostedFileBase file) 
{ 


    byte[] pdfbytes = null; 
    BinaryReader rdr = new BinaryReader(file.InputStream); 
    pdfbytes = rdr.ReadBytes((int)file.ContentLength); 
    PdfReader myReader = new PdfReader(pdfbytes); 

,我试图通过一个新的文件到FileStream这样的:

FileStream fs = new FileStream(newFile, FileMode.Create, FileAccess.Write); 

但我不知道如何复制新的文件传递给fs对象。你能帮助我吗?谢谢。

+0

建立与pdfbytes内存流,然后使用的MemoryStream的writeTo方法 –

回答

1

如果您有权访问更新的字节数组,将它传递给File.WriteAllBytes。或者你可能有一个PdfDocument或PdfWriter的实例,它通常允许将文档保存到磁盘上。希望能帮助到你!

1

下面是例子是阅读现有的PDF文件,将其复制到新的,并增加新的串线:

using iTextSharp.text; 
using iTextSharp.text.pdf; 
using System.IO; 

namespace ConsoleApp1 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      string originalFile = "c:\\Users\\Admin\\Desktop\\receipt mod 3.pdf"; 
      string copyOfOriginal = "c:\\Users\\Admin\\Desktop\\newFile.pdf"; 

      using (var reader = new PdfReader(originalFile)) 
      { 
       using (var fileStream = new FileStream(copyOfOriginal, FileMode.Create, FileAccess.Write)) 
       { 
        var document = new Document(reader.GetPageSizeWithRotation(1)); 
        var writer = PdfWriter.GetInstance(document, fileStream); 

        document.Open(); 

        for (var i = 1; i <= reader.NumberOfPages; i++) 
        { 
         document.NewPage(); 

         var baseFont = BaseFont.CreateFont(BaseFont.HELVETICA_BOLD, BaseFont.CP1252, BaseFont.NOT_EMBEDDED); 
         var importedPage = writer.GetImportedPage(reader, i); 

         var contentByte = writer.DirectContent; 
         contentByte.BeginText(); 
         contentByte.SetFontAndSize(baseFont, 12); 

         var LineString = "Hello World!"; 

         contentByte.ShowTextAligned(10,LineString,50,50,0); 

         contentByte.EndText(); 
         contentByte.AddTemplate(importedPage, 0, 0); 
        } 

        document.Close(); 
        writer.Close(); 
       } 
      } 
     } 
    } 
} 
0

试试这个。 该程序将所有pdf文件从一个位置复制到另一个位置。

protected void Button1_Click(object sender, EventArgs e) 
     { 

    string sourceDirectory = @"D:\project training\source"; 

      string targetDirectory = @"D:\project training\destiny"; 

      Copy(sourceDirectory, targetDirectory); 
     } 
     public static void Copy(string sourceDirectory, string targetDirectory) 
     { 
      DirectoryInfo diSource = new DirectoryInfo(sourceDirectory); 
      DirectoryInfo diTarget = new DirectoryInfo(targetDirectory); 

      CopyAll(diSource, diTarget); 
     } 
     public static void CopyAll(DirectoryInfo source, DirectoryInfo target) 
     { 



      Directory.CreateDirectory(target.FullName); 
      foreach (FileInfo fi in source.GetFiles()) 
      { 
       if (fi.Extension.Equals(".pdf")) 
       { 
        fi.CopyTo(Path.Combine(target.FullName, fi.Name), true); 
       } 
      } 


      foreach (DirectoryInfo diSourceSubDir in source.GetDirectories()) 
      { 
       DirectoryInfo nextTargetSubDir = 
        target.CreateSubdirectory(diSourceSubDir.Name); 
       CopyAll(diSourceSubDir, nextTargetSubDir); 
      } 
     } 
+0

哦,我很抱歉刚才我明白你的问题。你需要做一个副本来编辑?真对不起 。我输入的代码只是复制PDF文件 – vinoth

相关问题