Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在ASP.NET MVC中创建PDF文件的副本_C#_Asp.net_Asp.net Mvc_Pdf - Fatal编程技术网

C# 如何在ASP.NET MVC中创建PDF文件的副本

C# 如何在ASP.NET MVC中创建PDF文件的副本,c#,asp.net,asp.net-mvc,pdf,C#,Asp.net,Asp.net Mvc,Pdf,我正在读一个PDF文件,在上面写一个字符串,如下所示: public ActionResult Index(HttpPostedFileBase file) { byte[] pdfbytes = null; BinaryReader rdr = new BinaryReader(file.InputStream); pdfbytes = rdr.ReadBytes((int)file.ContentLength); PdfReader myReader =

我正在读一个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 fs = new FileStream(newFile, FileMode.Create, FileAccess.Write);
我正在尝试向
FileStream
传递一个新文件,如下所示:

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 fs = new FileStream(newFile, FileMode.Create, FileAccess.Write);

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

如果您有权访问更新的字节数组,请将其传递到
文件。writealBytes
。或者您可能有一个PdfDocument或PdfWriter实例,它通常也允许将文档保存到磁盘上的文件中。希望有帮助

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

以下是读取现有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();
                }
            }
        }
    }
}
使用iTextSharp.text;
使用iTextSharp.text.pdf;
使用System.IO;
名称空间控制台EAPP1
{
班级计划
{
静态void Main(字符串[]参数)
{
string originalFile=“c:\\Users\\Admin\\Desktop\\receivemod 3.pdf”;
字符串copyOfOriginal=“c:\\Users\\Admin\\Desktop\\newFile.pdf”;
使用(变量读取器=新的PDF读取器(原始文件))
{
使用(var fileStream=newfilestream(copyofooriginal,FileMode.Create,FileAccess.Write))
{
var document=新文档(reader.GetPageSizeWithRotation(1));
var writer=PdfWriter.GetInstance(文档、文件流);
document.Open();

对于(var i=1;i,以下是读取现有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();
                }
            }
        }
    }
}
使用iTextSharp.text;
使用iTextSharp.text.pdf;
使用System.IO;
名称空间控制台EAPP1
{
班级计划
{
静态void Main(字符串[]参数)
{
string originalFile=“c:\\Users\\Admin\\Desktop\\receivemod 3.pdf”;
字符串copyOfOriginal=“c:\\Users\\Admin\\Desktop\\newFile.pdf”;
使用(变量读取器=新的PDF读取器(原始文件))
{
使用(var fileStream=newfilestream(copyofooriginal,FileMode.Create,FileAccess.Write))
{
var document=新文档(reader.GetPageSizeWithRotation(1));
var writer=PdfWriter.GetInstance(文档、文件流);
document.Open();
对于(var i=1;i试试这个。
该程序将所有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);
            }
        }
试试这个。 该程序将所有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);
            }
        }

使用pdfbytes构建内存流,然后使用memorystream WriteTo方法使用pdfbytes构建内存流,然后使用memorystream WriteTo方法哦,对不起,刚才我理解了你的问题。你需要复制一份来编辑吗?真的很抱歉。我输入的代码只复制pdf文件哦,对不起,刚才我理解了你的问题。y你需要复制一份来编辑吗?真的很抱歉。我输入的代码只复制pdf文件