2017-04-12 55 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

相關問題