using PdfSharp.Pdf;
using PdfSharp.Pdf.IO;
using System.Collections.Generic;
namespace SteamWare
{
///
/// Utilities gestione PDF tramite PdfSharp
///
public class pdfUtils
{
///
/// Init classe
///
public pdfUtils()
{
}
///
/// Effettua il merge di più files pdf in un UNICO file pdf di output, restituendo NUMERO di files effettivamente trovati e mergiati...
///
/// Nome del file da creare (full path)
/// Elenco files pdf da includere (full path)
///
public static int mergePdfFiles(string pdfOutFilename, List pdfInFileList)
{
int answ = 0;
PdfDocument currPdfIn;
// merge!
using (PdfDocument outPdf = new PdfDocument())
{
// copio ogni SINGOLA pagina
foreach (var fileName in pdfInFileList)
{
try
{
currPdfIn = PdfReader.Open(fileName, PdfDocumentOpenMode.Import);
CopyPages(currPdfIn, outPdf);
answ++;
}
catch
{ }
}
// salvo!
outPdf.Save(pdfOutFilename);
}
//restituisco!
return answ;
}
///
/// Effettua copia di ogni singola pagina pdf (from --> to)
///
///
///
protected static void CopyPages(PdfDocument from, PdfDocument to)
{
for (int i = 0; i < from.PageCount; i++)
{
to.AddPage(from.Pages[i]);
}
}
}
}