Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.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# 使用PdfStamper/PdfReader复制pdf页面_C#_.net_Pdf Generation_Itextsharp - Fatal编程技术网

C# 使用PdfStamper/PdfReader复制pdf页面

C# 使用PdfStamper/PdfReader复制pdf页面,c#,.net,pdf-generation,itextsharp,C#,.net,Pdf Generation,Itextsharp,我有一个包含多个装运标签的文件,每页2个(我不能选择这种格式)。我正在尝试修改该文件,以便每个标签都可以在4x6标签打印机上打印 我在将pdf页面的内容复制到另一个页面时遇到了一个问题,这样我就可以裁剪具有不同区域的每个页面,生成两个页面,其中一个页面具有原始页面的每个标签。我目前拥有的代码如下: string filename = "Package.pdf"; using (var existingFileStream = new FileStream(filename, F

我有一个包含多个装运标签的文件,每页2个(我不能选择这种格式)。我正在尝试修改该文件,以便每个标签都可以在4x6标签打印机上打印

我在将pdf页面的内容复制到另一个页面时遇到了一个问题,这样我就可以裁剪具有不同区域的每个页面,生成两个页面,其中一个页面具有原始页面的每个标签。我目前拥有的代码如下:

 string filename = "Package.pdf";
        using (var existingFileStream = new FileStream(filename, FileMode.Open))
        {
            var pdfReader = new PdfReader(existingFileStream);

            using (FileStream output = new FileStream("Mod_package.pdf", FileMode.Create, FileAccess.Write))
            {
                using (PdfStamper pdfStamper = new PdfStamper(pdfReader, output))
                {
                    int originalpages = pdfReader.NumberOfPages;
                    for(int page = 1; page <=originalpages; page++)
                    {
                        Rectangle rect = pdfReader.GetCropBox(page);
                        pdfStamper.InsertPage(page * 2, rect);
                    }
                    for(int page = 2; page <=pdfReader.NumberOfPages; page=page+2)
                    {

                        //I want to insert the content from pdf page 1 into
                        //page 2, page 3 into page 4 etc etc.
                    }
                    for (int page = 1; page <= pdfReader.NumberOfPages; page++)
                    {
                        //The basic jyst of how I'm cropping
                        //This will be modified to use an even/odd page scheme
                        Rectangle rect = pdfReader.GetCropBox(page);
                        rect.Bottom = rect.Bottom / 2;
                        pdfReader.GetPageN(page).Put(PdfName.CROPBOX, new PdfRectangle(rect));
                        rect = pdfReader.GetCropBox(page);
                        rect.Top = rect.Top / 2;
                        pdfReader.GetPageN(page).Put(PdfName.CROPBOX, new PdfRectangle(rect));
                    }
                }
            }
            pdfReader.Close();
        }
string filename=“Package.pdf”;
使用(var existingFileStream=newfilestream(filename,FileMode.Open))
{
var pdfReader=新的pdfReader(现有文件流);
使用(FileStream output=newfilestream(“Mod_package.pdf”,FileMode.Create,FileAccess.Write))
{
使用(PdfStamper PdfStamper=新PdfStamper(pdfReader,输出))
{
int originalpage=pdfReader.NumberOfPages;

对于(int page=1;page它表明,只要我花时间发布问题,我就会找到答案。在上述代码中,我插入了以下内容:

pdfStamper.ReplacePage(pdfReader, page - 1, page);

在第二个for循环中,第1页的内容被转移到第2页、第3页到第4页等等。

这叫做橡皮鸭。很高兴能帮上忙。哈哈……我会记住的。谢谢!