Как объединить PDF-файлы в PDF-портфолио? - PullRequest
1 голос
/ 23 марта 2012

Я ищу функциональность, которая создает портфолио PDF:

Multiple PDFs packaged into one

На рисунке показано бесплатное приложение Adobe Reader, которое можно загрузить с Adobe (да!Когда я открывал этот конкретный PDF-файл, я был удивлен, что в нем есть все эти функции Layout, Files and Attachment.Это определенно не обычное «слияние PDF».Это больше похоже на пакет с несколькими PDF-файлами.

Может ли itextsharp сделать это?Что является поисковым термином для этой функциональности PDF?

Ответы [ 2 ]

5 голосов
/ 23 марта 2012

Вы ищете термин Портфолио PDF . Вы можете создавать PDF-файлы, как это с iTextSharp. Вот пара примеров C # из iText book :

Если вы решили загрузить файл результатов KubrickMovies, измените расширение на «.pdf». Просто заметил это сейчас - постараюсь исправить ошибку в эти выходные.

0 голосов
/ 23 марта 2012

Вот простой пример, показывающий, как мы можем прикрепить файлы к новому файлу PDF:

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

namespace PDFAttachment
{
    class Program
    {
        static void Main(string[] args)
        {
            using (var pdfDoc = new Document(PageSize.A4))
            {
                var pdfWriter = PdfWriter.GetInstance(pdfDoc, new FileStream("Test.pdf", FileMode.Create));               
                pdfDoc.Open();

                pdfDoc.Add(new Phrase("Test"));

                var filePath = @"C:\path\logo.png";
                var fileInfo = new FileInfo(filePath);
                var pdfDictionary = new PdfDictionary();
                pdfDictionary.Put(PdfName.MODDATE, new PdfDate(fileInfo.LastWriteTime));
                var fs = PdfFileSpecification.FileEmbedded(pdfWriter, filePath, fileInfo.Name, null, true, null, pdfDictionary);
                pdfWriter.AddFileAttachment("desc.", fs);
            }

            Process.Start("Test.pdf");
        }
    }
}

Или в существующий файл PDF:

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

namespace PDFAttachment
{
    class Program
    {
        static void Main(string[] args)
        {
            var reader = new PdfReader("Test.pdf");
            using (var stamper = new PdfStamper(reader, new FileStream("newTest.pdf", FileMode.Create)))
            {
                var filePath = @"C:\path\logo.png";
                addAttachment(stamper, filePath, "desc.");
                stamper.Close();
            }

            Process.Start("newTest.pdf");
        }

        private static void addAttachment(PdfStamper stamper, string filePath, string description)
        {
            var fileInfo = new FileInfo(filePath);
            var pdfDictionary = new PdfDictionary();
            pdfDictionary.Put(PdfName.MODDATE, new PdfDate(fileInfo.LastWriteTime));
            var pdfWriter = stamper.Writer;
            var fs = PdfFileSpecification.FileEmbedded(pdfWriter, filePath, fileInfo.Name, null, true, null, pdfDictionary);
            stamper.AddFileAttachment(description, fs);
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...