Как сохранить каждую страницу, кроме первой, в формате PDF в C# - PullRequest
0 голосов
/ 11 марта 2020

Требование: у меня есть файл PDF, который находится в диапазоне от 3 до 8 страниц, и мне нужно удалить первую страницу, чтобы сохранить как один файл PDF, а затем сохранить остальные страницы во вторичном файле. , Хотя мне удалось сохранить первую страницу успешно, остальные страницы сохраняются как одна страница на файл PDF, и мне нужны все страницы в одном файле PDF.

Текущий код:

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


namespace Dividir_PDF
{
    class Program
    {
        static void Main(string[] args)
        {
            extercaopdf();
            MergePdf(, @"C:\Users\Usuario\Documents\Fichaclinica\");
            Console.WriteLine("Done");
            Console.ReadKey();
        }

        static void extercaopdf()
        {
            PdfReader pdfReader = new PdfReader(@"C:\Users\Usuario\Documents\ProntuarioCompleto\aso-mesclado.pdf");
            Document document = new Document();

            if (pdfReader.NumberOfPages > 0)
            {
                // Here it saves the first page as a single PDF File.
                PdfCopy pdfCopyASO = new PdfCopy(document, new FileStream(Path.Combine(@"C:\Users\Usuario\Documents\ASO\", string.Format("pagina_{0}.pdf", 1)), FileMode.Create));
                document.Open();
                pdfCopyASO.AddPage(pdfCopyASO.GetImportedPage(pdfReader, 1));

                // Here it saves all pages as individual PDF files, instead of a single one with all pages
                for (int i = 2; i <= pdfReader.NumberOfPages; i++)
                {
                    PdfCopy pdfCopyFicha = new PdfCopy(document, new FileStream(Path.Combine(@"C:\Users\Usuario\Documents\Fichaclinica\", string.Format("ficha_{0}.pdf", i)), FileMode.Create));
                    document.Open();
                    pdfCopyFicha.AddPage(pdfCopyFicha.GetImportedPage(pdfReader, i));

                }
                document.Close();

            }
            else return;


        }

    }
}

1 Ответ

1 голос
/ 11 марта 2020

Вы говорите это сделать ... с помощью string.Format ("ficha_ {0} .pdf", i)

PdfCopy pdfCopyFicha = new PdfCopy(document, new FileStream(
    Path.Combine(@"C:\Users\Usuario\Documents\Fichaclinica\", string.Format("ficha_{0}.pdf", i)), 
FileMode.Create));

Просто укажите тот же файл

PdfCopy pdfCopyFicha = new PdfCopy(document, new FileStream(Path.Combine(@"C:\Users\Usuario\Documents\Fichaclinica\", "ficha_rest.pdf"), FileMode.Create));  
document.Open();              
for (int i = 2; i <= pdfReader.NumberOfPages; i++)  
{                    
    pdfCopyFicha.AddPage(pdfCopyFicha.GetImportedPage(pdfReader, i));
}
document.Close()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...